|
47fc356b
|
2024-04-09T11:20:07
|
|
GCC: move warm up tasks out of anonymous namespace
GCC anonymous namespace is set per file. So forward declaring in the
anonymous namespace of .h will not be valid in the .cpp file.
Bug: chromium:40565911
Change-Id: I10bd94f035761602d69e59a94dfde5dc774a6776
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5475346
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
d2e5eeef
|
2024-04-23T17:47:03
|
|
Vulkan: UNASSIGNED-CoreValidation-DrawState-InvalidImageLayout
Supress the above VVL error.
What happened is that the test creates a single buffer context. Since it
only has one buffer for both render and present, we always immediately
put it in VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR. Then when we render to it,
we got the above VVL error. According to vulkan spec
6) What should the layout of the shared presentable image be?
RESOLVED: After acquiring the shared presentable image, the application
must transition it to the VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR layout
prior to it being used. After this initial transition, any image usage
that was requested during swapchain creation can be performed on the
image without layout transitions being performed.
And we always include VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT usage flags
when creating swapchain images, so this should be okay.
Bug: b/336652255
Change-Id: I8a04f94c9a7b6dcc1818697f45630cb0a6ee8811
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5479840
Commit-Queue: Charlie Lao <cclao@google.com>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
|
|
c74d2634
|
2024-04-19T12:19:51
|
|
Vulkan: Update mSurfaceCaps with per-present mode caps.
Vulkan spec says "The per-present mode image counts may be less-than or
greater-than the image counts returned when VkSurfacePresentModeEXT is
not provided". Riht now we are using the generic surfaceCaps information
which has smaller minImageCount. This triggers VVL error
VUID-VkSwapchainCreateInfoKHR-presentMode-02839.. This CL updates
mSurfaceCaps and mMinImageCount with per-present mode caps and create
swapChain with proper minImageCount.
Bug: angleproject:8672
Change-Id: I6061d2db8e98032dcb2c3225f2976013a99336a9
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5467850
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Charlie Lao <cclao@google.com>
|
|
6fe8a399
|
2024-04-22T18:11:30
|
|
Metal: Fix rewritten out variables with underscores
Fix compilation in case of output variables start with underscores.
Make name emission always emit MSL name ANGLE_{name}, so that GLSL `_e`
and `e` cannot clash. This regressed in angleproject:8558.
Bug: chromium:335744344
Change-Id: Ibae4dba4a24888acc1461582e69d48218ba11176
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5473412
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Auto-Submit: Kimmo Kinnunen <kkinnunen@apple.com>
Commit-Queue: Kimmo Kinnunen <kkinnunen@apple.com>
Reviewed-by: Kimmo Kinnunen <kkinnunen@apple.com>
|
|
2905a6a6
|
2024-04-19T15:09:41
|
|
Vulkan: Fix read pixel to cached non-coherent memory
The bug here is that when we use cached non-coherent memory for image
read, we must wait until DMA to finish before calling invalidate().
Otherwise CPU pre-fetching might end up populate the cache line again
with old data between invalidate and DMA and causes CPU reads get the
stale data from cache. This CL moves invalidate() call after we wait for
copy to finish and removes requireCachedBitForStagingBuffer feature
flag.
Bug: b/335937565
Bug: b/315836169
Bug: b/324953979
Change-Id: Ie8a1854e17a5fe9c534c5102b2e0d51bd35c131a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5468597
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Charlie Lao <cclao@google.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
|
|
36ae4553
|
2024-04-21T05:18:17
|
|
Vulkan: Remove unnecessary member from ProgramExecutableVk
Bug: None
Change-Id: I896cd67c0ca41d146d8f1cd5494404bbd30b8264
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5469555
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
23b8a833
|
2024-04-19T18:03:17
|
|
Suppress VUID-VkSwapchainCreateInfoKHR-presentMode-02839
Breaks experimental Pixel 6 Android U bot
https://ci.chromium.org/ui/p/angle/builders/ci/android-arm64-exp-test/4979/overview
Bug: angleproject:8672
Change-Id: I2968dd1ed4ed7e2bc636d762b6d1fb884733a264
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5466741
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Auto-Submit: Yuly Novikov <ynovikov@chromium.org>
|
|
cc770518
|
2024-03-28T18:05:00
|
|
CL/VK: Implement flush & finish
Bug: angleproject:8632
Change-Id: I139e463c0b1c947cee68e65c40503e52f01e988b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5406615
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Austin Annestrand <a.annestrand@samsung.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
c75b03ad
|
2024-04-18T16:09:48
|
|
Vulkan: Remove duplicated fallback entry in vk_format_map.json
Bug: b/335496851
Change-Id: Id5fe805a15ae4fa4b09ffbf05fcf7b6d3d79b1ab
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5463921
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
|
|
d4abe622
|
2024-04-03T17:46:38
|
|
CL/VK: Implement enqueue NDRangeKernel & Task
Adding support for:
clEnqueueNDRangeKernel
clEnqueueTask
Bug: angleproject:8631
Change-Id: If57002be3ea00a55215e89ca47ab8fe9a422c6e7
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5406614
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Austin Annestrand <a.annestrand@samsung.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
48132950
|
2024-04-17T17:05:07
|
|
Vulkan: Optimize DescriptorSetLayoutDesc layout
Separate out immutable samplers into its own array so we can remove
padding from PackedDescriptorSetBinding which reduces the size of that
struct from 16 bytes to 4 bytes.
Bug: angleproject:2462
Change-Id: I79d1ab584178202c9b7f34b0c7926edced4e21a8
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5464162
Commit-Queue: mohan maiya <m.maiya@samsung.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
|
|
80c8b6f0
|
2024-04-17T10:06:45
|
|
Revert "Vulkan: Only enable DS dynamic state if there is DS attachment."
This reverts commit 471b50407d7d1c22491d066df77060cb8b9b2f89.
The reverted change does not correctly handle UtilsVk functions, leading
to validation failures. UtilsVk could be made to not set dynamic state
when the depth/stencil attachments are missing, but instead the change
is reverted because:
- The original issue that prompted this is easily fixable (and fixed in
this change)
- Disabling depth/stencil dynamic state is not necessarily a performance
improvement; every time a pipeline in such a render pass is bound, the
driver would have to make sure to no-op the relevant state change if
static, which is also costly. Instead, dynamic state may need to be
set only once in the entire render pass.
Bug: b/223456677
Bug: b/315353258
Bug: angleproject:8242
Change-Id: I8282b87857d6b9285dbcf307c3c6ecf69df5fadb
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5462079
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
|
|
d0b01c81
|
2024-04-17T14:40:10
|
|
Remove duplicated fallback entry in vk_format_table_autogen
Bug: b/335496851
Change-Id: Iff6a095aaffac099779b093e02b1a818b510dc0a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5464161
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Charlie Lao <cclao@google.com>
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Auto-Submit: Yuxin Hu <yuxinhu@google.com>
|
|
4109a90e
|
2024-04-16T17:31:11
|
|
LinkedUniform: avoid frequent GLenum -> index conversion
Certain functions such as getElementComponents() are frequently called
in driver_overhead benchmark, causing repeated GLenum -> index
conversion of the uniform type which shows up in profiling
(driver_overhead_2 trace)
Change LinkedUniform.pod.type to LinkedUniform.pod.typeIndex storing the
UniformTypeInfo index with conversion helpers.
Bug: b/335295728
Change-Id: Iae5cd58f4e2703589d23b8e52991fc4b97c5fb08
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5458741
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Roman Lavrov <romanl@google.com>
Reviewed-by: Charlie Lao <cclao@google.com>
|
|
00fa9af9
|
2024-04-18T10:55:34
|
|
Disable the BasicNoOpMutex test
It's flaky by nature, and the flake rate turned out to be much higher
than anticipated (i.e. it cannot be ignored).
Bug: b/335541479
Change-Id: Ic29c549aa761230e1d8aa8156c66e78aae939e53
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5463920
Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Roman Lavrov <romanl@google.com>
Commit-Queue: Roman Lavrov <romanl@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
6861da63
|
2024-04-17T15:52:27
|
|
Vulkan: Don't cache staging buffers on PowerVR
Seeing flakiness in simple tests. Narrowed it down to cached
coherent memory. There is likely something ANGLE is doing wrong
but broaden the workaround until it is root caused.
Test: angle_end2end_tests
Bug: b/315836169
Bug: b/324953979
Change-Id: I15e50781f746ffb24b0a12b1e28df04a3822b556
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5464283
Auto-Submit: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
|
|
b2aad1bb
|
2024-04-17T06:12:14
|
|
Vulkan: Track valid descriptor set layouts
Instead of looping through kMaxDescriptorSetLayoutBindings in
`DescriptorSetLayoutDesc::unpackBindings` track valid descriptor set
layouts in `DescriptorSetLayoutDesc::update`
Bug: angleproject:2462
Change-Id: I1ca2ba72875d9306b6059b14cde39c5d16250be6
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5464160
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: mohan maiya <m.maiya@samsung.com>
|
|
d71b8ee0
|
2024-04-17T10:00:27
|
|
Vulkan: Fix dynamic depth/stencil in UtilsVk when unused
Dynamic state still needs to be set even if depth/stencil test is
disabled.
Bug: angleproject:8151
Bug: b/323708819
Change-Id: Ic470fabd84c71b026152b6bee2e6a2c803514106
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5462059
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
03c88d33
|
2024-04-17T03:03:17
|
|
Revert "Vulkan: Suppress VUID-VkSwapchainCreateInfoKHR-pNext-07781"
This reverts commit 99ac37cf7bad44d43f0c18da0410bde1073b62ea.
Reason for revert: Fixed upstream
https://github.com/KhronosGroup/Vulkan-ValidationLayers/pull/7851
Original change's description:
> Vulkan: Suppress VUID-VkSwapchainCreateInfoKHR-pNext-07781
>
> Only failing on windows x86. Unknown if ANGLE bug, VVL bug, or an
> inherently racy check as it happens only in the window resize tests.
>
> Bug: angleproject:8668
> Change-Id: I0f928883647a4dc701d58e2df99e647e1397c773
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5453692
> Reviewed-by: Roman Lavrov <romanl@google.com>
> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Bug: angleproject:8668
Change-Id: I8831b5011ed3a7f5bf48af25f8933d50b5c4e1ca
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5459521
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
|
|
e92b8e8d
|
2024-04-16T13:27:19
|
|
Manual roll VK-GL-CTS from 491cfc2dbec9 to b529676d0523 (1 revisions)
https://chromium.googlesource.com/external/github.com/KhronosGroup/VK-GL-CTS.git/+log/491cfc2dbec9..b529676d0523
2024-03-29 yuxinhu@google.com Move external/openglcts/data into a new
subdirectory
If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/vk-gl-cts-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
Change-Id: I5e07217cca190ec243f1b700348cde0384dbf052
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5457892
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
1264c9cc
|
2024-04-16T13:22:16
|
|
Manual roll VK-GL-CTS from caf989d22e07 to 393ca590ec21 (5 revisions)
https://chromium.googlesource.com/external/github.com/KhronosGroup/VK-GL-CTS.git/+log/caf989d22e07..393ca590ec21
2024-03-29 marcin.hajder@mobica.com Port KC-CTS tests to VK-GL-CTS
(transform_feedback3), PART 4
2024-03-29 marcin.zajac@mobica.com Test depth with
VK_EXT_fragment_density_map
2024-03-29 lorenzo@khronosgroup.org Merge vk-gl-cts/vulkan-cts-1.3.8
into vk-gl-cts/main
2024-03-28 skr@nvidia.com Consider layer index when retrieving decoded
frame
2024-03-26 rgarcia@igalia.com Share test configuration between case and
instance in EDS tests
If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/vk-gl-cts-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
Change-Id: I562b77d2dab2e949a2562c1bb0e655e1ed8bb5df
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5459012
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Commit-Queue: Yuxin Hu <yuxinhu@google.com>
Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
97cb3eb8
|
2024-04-16T10:25:49
|
|
Split ASSERT and logs into separate header
This is because SimpleMutex.h wants to ASSERT, which was defined in
debug.h. That file has a function that returns a reference to a mutex
that would eventually be changed to SimpleMutex.
The circular dependency cannot be resolved with a forward declaration
with SimpleMutex being defined with `using`.
Bug: angleproject:8667
Change-Id: I9a3acb6d07c6702048b47a72d8411b0fc2166922
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5458631
Reviewed-by: Roman Lavrov <romanl@google.com>
Commit-Queue: Roman Lavrov <romanl@google.com>
Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
d9d583bf
|
2024-04-15T00:24:47
|
|
Implement a lock/unlock-only mutex based on futex
Pthread mutexes are expensive due to their numerous features. When a
mutex only needs to support lock and unlock, its implementation can be
much simpler. The implementation in this change is "inspired" by a
similar mutex in mesa.
Expected uses of this mutex are:
- Allowing some OpenGL calls to avoid the share group lock and instead
lock the specific shared object they operate on.
- Replacing SpinLock in the OpenCL implementation (spin-lock in user
space is a bad idea [1])
- Generally anywhere we use std::mutex just to do lock/unlock
Tests based on patch authored by Igor Nazarov <i.nazarov@samsung.com>
[1]:https://www.realworldtech.com/forum/?threadid=189711&curpostid=189723
Bug: angleproject:8667
Change-Id: I52278c9d19616338c499bbcef6684746caead6ca
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5446558
Reviewed-by: Roman Lavrov <romanl@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
6557da03
|
2024-03-22T05:49:59
|
|
Implement TextureWgpu::getAttachmentRenderTarget()
Most of this is copied from TextureVk::getAttachmentRenderTarget() with
parts removed to make it simpler to start.
Need to check what happens when running a clear test.
Bug: angleproject:8582
Change-Id: Ia3b1f057add7714c7b192af1a3bf0edb41ccb649
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5388077
Reviewed-by: Liza Burakova <liza@chromium.org>
Commit-Queue: Matthew Denton <mpdenton@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
041b0a4d
|
2024-04-15T13:42:17
|
|
Begin initializing caps for webgpu
Bug: angleproject:8457
Change-Id: Idde0673297ec675a13bd3e4fd4d220ec47392153
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5391987
Reviewed-by: Matthew Denton <mpdenton@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Liza Burakova <liza@chromium.org>
|
|
2218db2b
|
2024-04-10T13:41:17
|
|
Add error callback for webgpu device
Bug: angleproject:8547
Change-Id: I9946311a1f93cc5f49fb0e17e65c92789bdb3b6a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5443428
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Liza Burakova <liza@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
f4d3041a
|
2024-04-13T22:37:11
|
|
Remove double-serialization for glGetProgramBinary
The applications get the binary length first, and then get the binary
itself. Prior to this change, ANGLE was serializing the program binary
twice.
What's more, if the blob cache is enabled, ANGLE serialized the program
binary yet another time for that.
With this change, the program binary is serialized only once. If the
application queries the program binary, serialization is done the first
time needed, is cached and then discarded as soon as the binary itself
is returned.
Bug: angleproject:7393
Change-Id: If6e3011097ca4d4a1cdcd2dcc23496901196d999
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5448090
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
24ba48eb
|
2024-04-13T23:07:11
|
|
Do not cache program binary in blob cache redundantly with app
If the application has specified the GL_PROGRAM_BINARY_RETRIEVABLE_HINT
hint, let the application itself cache the program binary and skip
ANGLE's implicit caching. This saves time in serializing the binary,
and memory and disk space storing these binaries.
If the application sets the hint, but does not actually restore the
binary, they will suffer instead. This change also adds a perf warning
for applications that retrieve the binary without setting this hint.
Bug: angleproject:7393
Change-Id: I05aa880a31fa2fbbd61447c257c990a57137e1e8
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5448089
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
99ac37cf
|
2024-04-15T09:38:07
|
|
Vulkan: Suppress VUID-VkSwapchainCreateInfoKHR-pNext-07781
Only failing on windows x86. Unknown if ANGLE bug, VVL bug, or an
inherently racy check as it happens only in the window resize tests.
Bug: angleproject:8668
Change-Id: I0f928883647a4dc701d58e2df99e647e1397c773
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5453692
Reviewed-by: Roman Lavrov <romanl@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
e229afad
|
2024-04-12T16:15:42
|
|
Vulkan: Disable setting_sync_queue_submit
In this CL we basically ignored all SyncVal errors from VkQueueSubmit.
https://chromium-review.googlesource.com/c/angle/angle/+/5137081 But
this validation is still enabled. This validation is super slow right
now (tracked by
https://github.com/KhronosGroup/Vulkan-ValidationLayers/issues/7285).
There is no need to waset bots time to do this validation and then
ignore its result.
Bug: b/316013423
Bug: b/334183919
Change-Id: I1f6c53f484c088e684d2686422f33539b31b8b7a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5450955
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
08d9d5cc
|
2024-04-12T16:04:34
|
|
Vulkan: VK_EXT_validation_features was deprecated
and is replaced with VK_EXT_layer_settings. This allows all VVL settings
to be controlled programmatically. See more detail in
https://vulkan.lunarg.com/doc/sdk/1.3.280.0/windows/khronos_validation_layer.html
Bug: angleproject:5290
Bug: b/334183919
Change-Id: I7dce52711260ee874bbd70bc0d351e5aa840dffa
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5450954
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
67fc293a
|
2024-04-05T13:25:12
|
|
WebGPU: Add shader translation and program linking stubs.
Add a TranslatorWGSL which outputs the same translated shaders every
time.
Implement the compile and link tasks.
Bug: angleproject:8662
Change-Id: I62bbd6c528e1d671d0f4becc38f15f1eceb0336c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5428807
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Matthew Denton <mpdenton@chromium.org>
|
|
5e790bfb
|
2024-04-11T14:58:58
|
|
Remove unnecessary D3D include
Bug: b/329414677
Change-Id: If96e10f3762fe849485f52783565658889491c97
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5444810
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
f4485224
|
2024-04-05T10:29:23
|
|
WebGPU: Implement glBufferData and glBufferSubData
Define several usages for WebGPU buffers that map to wgpu buffer usage
flags. Maintain a set of buffers by usage and a serial of the one with
the most recent data.
Defer creation of the buffer as long as possible to take advantage of
the WebGPU mapAtCreation flag for data upload. If we ever have to unmap
these buffers, staging buffers must be used to upload afterwards.
Add some helpers for getting Device and Instance from a gl::Context.
Bug: angleproject:8654
Change-Id: Ibb8147119af8a98738fc4d579830a02ccaa1d7c5
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5426813
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Liza Burakova <liza@chromium.org>
|
|
e088af30
|
2024-03-28T15:30:59
|
|
Parsing very long array declarations crash
Avoid stack overflow crash when parsing arrays with a huge number of
dimensions.
Limits the number of array dimensions to `mMaxExpressionComplexity`
(typically 256). Use `YYABORT` to abort parsing.
Bug: angleproject:8610
Change-Id: Icf3914871b167c820b84ae8f3acba80dbd698af3
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5424330
Auto-Submit: Kimmo Kinnunen <kkinnunen@apple.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
1152f9d1
|
2024-04-10T22:05:35
|
|
Remove PPO as observer of its own executable
No messages from PPOs observer come to the PPO for processing anymore.
All messages come from the attached programs.
Bug: angleproject:4559
Bug: angleproject:6358
Change-Id: I55a6884d843655c4dfabd33ea370c61ec27183d1
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5444726
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Commit-Queue: Yuxin Hu <yuxinhu@google.com>
Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
e41286e1
|
2024-04-10T11:05:09
|
|
Vulkan: Fix internal caching missing
Since the backend wait for post-link tasks was made possible [1], the
front-end may never get a chance to internally cache its binary. This
is because the decision to cache the binary was based on the existence
of post-link tasks, and the backend clearing that list made the
front-end confused.
In this change, a specific bool tracks whether binary is cached, and
that is checked at various times to make sure the binary cache is
eventually done.
[1]:https://chromium-review.googlesource.com/c/angle/angle/+/5427001
Bug: angleproject:8297
Change-Id: Iceefd0bca79d570d4910983be3660d6e725684a0
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5445484
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: mohan maiya <m.maiya@samsung.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
bc53f360
|
2024-04-10T16:08:23
|
|
Vulkan: Improve pipeline warmup hit rate without GPL
When VK_EXT_graphics_pipeline_library is not in use, warmup would
practically always hit a perf warning about it mismatching the graphics
desc of the current draw call. This is because the color mask is not
set appropriately, which is what this change does.
Bug: angleproject:8297
Change-Id: Ie84660e493baf4370c09f43d50d57fc911bd1390
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5445483
Reviewed-by: mohan maiya <m.maiya@samsung.com>
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
d9943e44
|
2024-04-09T23:53:48
|
|
Remove Program::syncState
The last bit of responsibility still left in Program::syncState was to
wait for post-link tasks for the sake of EGLBlobCacheTest tests. A new
extension, GL_ANGLE_program_binary_readiness_query is created so that
the wait can be done in the test itself.
This extension is ultimately useful for applications as well, so they
can avoid blocking the CPU by calling glGetProgramBinary prematurely.
Bug: angleproject:8297
Change-Id: Ied6b755cb9b060198f82c7948bfd03441435a578
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5440302
Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: mohan maiya <m.maiya@samsung.com>
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Charlie Lao <cclao@google.com>
|
|
c1397510
|
2024-04-07T21:05:34
|
|
Vulkan: Fix data race in WarmUpGraphicsTask
std::unordered_map doesn't support simultaneous read and write. Cache
placeholder PipelineHelper in WarmUpGraphicsTask and std::move the
newly created PipelineHelper when warm up is complete.
Bug: angleproject:8297
Change-Id: I1cc4b3cd48147d0080666d5669d61de006c2252d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5431830
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
392eca60
|
2024-04-10T15:36:07
|
|
Revert "GL: Support KHR_blend_equation_advanced"
This reverts commit c632fae01ced6712d31c4665288eb306a980fb10.
Reason for revert: Crashes on a few different devices.
Bug: chromium:40277080, chromium:333443447
Original change's description:
> GL: Support KHR_blend_equation_advanced
>
> Combine blend equation setting when they are equal. It is invalid to
> set advanced blend equations for color/alpha separately.
>
> Emit blend equation layout qualifiers.
>
> Bug: angleproject:8660
> Change-Id: I1d8a88594c80027b564eed70d3b540e0b065968d
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5415033
> Commit-Queue: Geoff Lang <geofflang@chromium.org>
> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
> Reviewed-by: Alexey Knyazev <lexa.knyazev@gmail.com>
Bug: angleproject:8660
Change-Id: I27ac64c7343831e42f5412d6c17facd0de8cd9e6
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5443404
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
4af8dafb
|
2024-03-10T20:14:18
|
|
Vulkan: Enable MSRTT emulation tests on swiftshader
Bug: b/309355117
Change-Id: I2d842bc52f9b6af340025654111dfd3f8e9c58a3
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5359654
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
|
|
d1bffdb6
|
2024-04-09T08:22:18
|
|
Vulkan: Bugfix in WarmUpComputeTask
1. An early return caused compute warm up tasks to not be scheduled
2. There are usecases where a program is marked separable post-link.
Perform waitForPostLinkTasksImpl unconditionally during save(...)
Bug: angleproject:8297
Tests: ProgramBinaryES31Test.SeparableProgramLinkedUniforms*
Change-Id: I499f397b938677b4fcdb486001e0a75e202aaf5d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5439732
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
646f5d19
|
2024-04-03T15:28:40
|
|
CL/VK: Implement eventVk routines
Adding routines:
clGetEventInfo [CL_EVENT_COMMAND_EXECUTION_STATUS]
clSetEventCallback
clWaitForEvents [USER_EVENT_STATUS]
We also trigger event callback on exec-status update.
Bug: angleproject:8574
Change-Id: I470d9758de22a552bd9cf9565594b3049e21835d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5421575
Commit-Queue: Austin Annestrand <a.annestrand@samsung.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
0a67bbaf
|
2024-04-08T10:14:45
|
|
SPIR-V: Fix const constructors with single scalar
These constructors may be generated because of
RemoveArrayLengthTraverser.
Bug: chromium:332546345
Change-Id: I5b81ded59ba91b0083b14280f5a61b03b9d4ca43
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5435713
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
84613b97
|
2024-04-09T12:36:55
|
|
Vulkan: Suppress Undefined-Value-ShaderInputNotProduced
If the app doesn't write to an attachment from the shader, it'll get
undefined values.
Bug: angleproject:8401
Change-Id: I60f2bf510f0f0f9779f00dafbeee3b7364283bf4
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5440653
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Roman Lavrov <romanl@google.com>
|
|
0e19adb2
|
2024-04-08T13:21:09
|
|
Validate non-negative vertex attribute offsets.
When robust buffer access is enabled, validat that buffers cannot
be read with a negative index.
Bug: chromium:323699974
Change-Id: I05beb72c60832ab4decbf16c47b3d92bd374286b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5435736
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
d3aaf795
|
2024-04-05T15:57:38
|
|
Vulkan: Early out ImageHelper::updateLayoutAndBarrier when possible
If one image is attached to more than one attach points, when render
pass closes we end up calling ImageHelper::updateLayoutAndBarrier
multiple times. The first one is required since it does the layout
transition etc. But the second call is unnecessarily inserting memory
barriers. This is optimization itself, but will also fix the other
bigger problem when we start using VkEvent instead of PipelineBarrier:
we may end up waiting for an event that has not been set (since setEvent
gets called after we end render pass but waitEvent is before render
pass. Calling this sequence twice on the same image for the same render
pass means second waitEvent is called before setEvent).
Bug: b/333391804
Change-Id: Ic7b409c71806e63cb56c25e10b0bd0bfc9f6086d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5431033
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Charlie Lao <cclao@google.com>
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
|
|
e73c0c6d
|
2024-04-09T11:20:18
|
|
EGLProtectedContentTest: move sleep behind compile-time var
Multiple tests with multiple steps wasting ~20s in automated runs
Bug: b/333113001
Change-Id: I494f6e3ea373945ad79edbc23eb267dfef71ef87
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5440412
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Auto-Submit: Roman Lavrov <romanl@google.com>
|
|
126f8269
|
2024-04-05T22:00:02
|
|
Additional fix for link task worker pool race
See [1] for context. While that change fixed the race condition, it was
not great that the task held on to the worker pool for so long. This
change avoids the race condition as well by releasing the worker pool as
soon as the link task has no further use for it.
[1]:https://chromium-review.googlesource.com/c/angle/angle/+/5428806
Bug: angleproject:8661
Change-Id: Ibcbad0afe518e649a63dfdf938bd566c8f80e368
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5431154
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Roman Lavrov <romanl@google.com>
Commit-Queue: Roman Lavrov <romanl@google.com>
Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
ba208b45
|
2024-04-06T21:08:15
|
|
Vulkan: wait for post-link tasks in resetLayout
Wait for post-link tasks before resetting ProgramExecutableVk. Otherwise
mGraphicsProgramInfos, which post-link tasks use to create pipeline, can
be prematurely invalidated.
Bug: angleproject:8297
Tests: Texture2DTestES3YUV*DisableProgramCaching
Change-Id: Ib84cebad252777ae4c37cb32c455c326911416a2
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5430927
Commit-Queue: mohan maiya <m.maiya@samsung.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
c632fae0
|
2024-04-02T15:03:17
|
|
GL: Support KHR_blend_equation_advanced
Combine blend equation setting when they are equal. It is invalid to
set advanced blend equations for color/alpha separately.
Emit blend equation layout qualifiers.
Bug: angleproject:8660
Change-Id: I1d8a88594c80027b564eed70d3b540e0b065968d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5415033
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Alexey Knyazev <lexa.knyazev@gmail.com>
|
|
d55464ff
|
2024-04-04T14:13:02
|
|
Vulkan: Remove the supportsDepthClipEnable feature
This feature is unused since:
https://chromium-review.googlesource.com/c/angle/angle/+/4545084
Bug: angleproject:3970
Change-Id: I78acfda80d4ae04d1387a452e9f52a55a4298a4c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5426530
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
49e63e07
|
2024-04-03T13:22:30
|
|
Vulkan: Selectively wait for WarmUp tasks
If the GraphicsPipelineDesc used by a draw call differs from the
one being used by the WarmUp tasks there is no need to wait for
their completion.
Bug: angleproject:8297
Change-Id: Ibbf3ee710036936060990455bb8657d83c7b6faf
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5421594
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: mohan maiya <m.maiya@samsung.com>
|
|
ad13fec3
|
2024-03-30T15:31:49
|
|
Vulkan: warmUpGraphicsPipelineCache(...) shouldn't set state
The prepareForWarmUpPipelineCache(...) method would have already setup
all necessary state for the warm up task. Make that intent explicit by
calling into a method that sets no state.
Bug: angleproject:8297
Change-Id: I959d8591045ff05ddb2a410fd0e0eda8dd692d37
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5408796
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: mohan maiya <m.maiya@samsung.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
13829f20
|
2024-03-26T23:03:12
|
|
Vulkan: Optimize depth/stencil resolve with glBlitFramebuffer
Like color resolve, depth/stencil resolve is now also possibly done by
modifying the render pass and attaching a depth/stencil resolve
attachment.
Bug: angleproject:7551
Change-Id: I045e3875e24006d2473a55b6c3856dd768fe8b84
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5398004
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
924b40dc
|
2024-04-04T18:44:21
|
|
Selectively wait for post-link tasks in the frontend
The frontend waits for post-link tasks only for a relink or in
syncState when `disableProgramCaching` feature is not enabled.
Bug: angleproject:8297
Change-Id: If7a3b8a10a2d01f82fd2bebac5c8f378be56e19e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5427001
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: mohan maiya <m.maiya@samsung.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
06472a7e
|
2024-04-04T21:07:02
|
|
Extend ProgramExecutableImpl API
waitForPostLinkTasks(...) will be called into by the frontend.
Backends can now choose to defer or avoid waiting for post-link tasks.
Also, move warmUp task code to ProgramExecutableVk in the Vulkan backend
Bug: angleproject:8297
Change-Id: Ia8a0682923e2f8c6287d62a606eed7f481cda08f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5427000
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
76636ddb
|
2024-04-04T15:39:08
|
|
CL/VK: Update missing reflection ops & DS creation
Adding CLProgramVk routine to allocate DS.
Also adding reflection parsing support for
WGS IDs and PushConstantGlobalSize.
Additionally, we now check VK implementation
if non-semantic reflection data (in SPIR-V) is
supported. If not, we strip that data from binary
(via vk_feature check).
Bug: angleproject:8631
Change-Id: Ife02867c7c30b919abf663865adc92858e1bff8d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5421574
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Austin Annestrand <a.annestrand@samsung.com>
|
|
7a78c2c9
|
2024-04-03T14:32:35
|
|
CL/VK: Add helper to select LWS
In the case where user passes NULL for LWS,
the runtime has the responsibility to select
an appropriate LWS for user.
Bug: angleproject:8631
Change-Id: I89048c57880a5a4f18d4ef46340b73338cee933e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5421573
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Austin Annestrand <a.annestrand@samsung.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
2dc9d0cd
|
2024-04-04T14:38:31
|
|
CL/VK: Add workgroup size/count types
Replacing existing CompiledWorkgroupSize
type with "WorkgroupSize" and "WorkgroupCount".
(since CompiledWorkgroupSize == WorkgroupSize).
Bug: angleproject:8631
Change-Id: I4094d10e6ad5db51a56ae92fe4f2fb4a6e72bdc7
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5425447
Commit-Queue: Austin Annestrand <a.annestrand@samsung.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
ac654931
|
2024-04-04T15:42:47
|
|
ProgramExecutable manages post-link tasks
Post-link tasks are now owned and managed by ProgramExecutable.
Also, update `LinkTask::link` API so backends have a choice to populate
either the linkSubTask or postLinkSubTask containers (but not both).
Bug: angleproject:8297
Change-Id: I5dbed6a070efe851fc1376699e9eccd3a21bd03f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5406487
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: mohan maiya <m.maiya@samsung.com>
Reviewed-by: Charlie Lao <cclao@google.com>
|
|
c0386ad4
|
2024-04-05T11:56:17
|
|
AsyncWorkerPool releases shared_ptr<Closure> before notifying
Parallel compile (MainLinkLoadTask, Program::LinkingState)
is dependent on destructor getting called before the event is notified
Repro: https://crrev.com/c/5425924
More details on the parallel compile case, provided by syoussefi@:
"""
A race condition caused the worker pool to sometimes be destroyed from a
worker thread instead of the main thread.
The race condition triggered in the following scenario:
- The MainLinkLoadTask holds on to the worker pool
- This is necessary for the main task to spawn further tasks
asynchronously
- The reference to the worker pool in MainLinkLoadTask is released by
its destructor
- The worker thread dequeues a task (i.e. MainLinkLoadTask) to execute
and holds a reference to it.
- Once the task is run by the worker thread, the worker thread signals
its completion
- (1) At this point, the scope holding the reference to the task
closes and the task is released. However, this is done after
signaling the task's completion.
- On program destruction, the program ensures that all its tasks are
complete
- This uses the signal coming from the worker thread
- (2) On display destruction, the worker pool is destroyed
(by dereferencing it through the shared_ptr)
- The destructor of the worker pool waits for the worker thread, with
the expectation that this wait is done in the main thread.
The race condition led to the assert firing when (2) was done before
(1). Because the task is already signaled complete, the main thread
considers it done and goes ahead with the destruction of the display.
However, until the scope of the worker thread closes, the task itself
is still not destroyed. Since the task is holding a reference to the
worker pool, that prevents the worker pool from getting destroyed too.
Once the display is destroyed, the worker thread closes its scope,
causing the task to be destroyed. In turn, this leads to the worker
pool itself to be destroyed. On destruction, the worker pool would wait
for the worker thread to end which is a deadlock. Fortunately, this was
caught earlier with an ASSERT that wanted to ensure destruction happens
on the main thread.
In this change, the worker thread ensures it releases the task before
signalling it complete, avoiding this issue. Other possible solutions
would have been:
- Release the worker pool from MainLinkLoadTask as soon as the subtasks
are scheduled
- Explicitly call a "destroy" method on the pool, instead of relying on
the destructor to clean up.
"""
Bug: angleproject:8661
Change-Id: I37c9bc8e8f05bce4062d794df449cc3d2c80a093
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5428806
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Roman Lavrov <romanl@google.com>
|
|
be42f20b
|
2024-03-22T05:45:46
|
|
Start implementing glClear
Currently, because both SurfaceWgpu::getAttachmentRenderTarget() and
TextureWgpu::getAttachmentRenderTarget() are unimplemented, there is
no actual RenderTargetWgpu in the RenderTargetCache to clear.
Bug: angleproject:8582
Change-Id: I9ad33c57d533d81178d7d2a802d35b106ece5848
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5388076
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Liza Burakova <liza@chromium.org>
Commit-Queue: Matthew Denton <mpdenton@chromium.org>
|
|
4a5d47df
|
2024-04-04T16:41:46
|
|
Test that binary is not saved after being loaded
Bug: angleproject:8297
Change-Id: I2e7e2ffb8fff37aba828d25825fe7ab3262406ac
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5426396
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Charlie Lao <cclao@google.com>
Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
35c7e186
|
2024-04-03T14:31:59
|
|
CL: Introduce NDRange object/ops abstraction
Create new FrontEnd type "NDRange" to encapsulate
OpenCL's NDRange items. Update backend implementations
to make use of this new object.
Bug: angleproject:8650
Change-Id: I3c1549c50c85153b3ea77267e104eec04ba1bd93
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5421572
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Austin Annestrand <a.annestrand@samsung.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
cdbc58f1
|
2024-04-04T00:00:00
|
|
Metal: Align texture view constructors with the API
Fully expose Metal API parameters
through texture view constructors.
No behavioral change.
Bug: angleproject:8355
Change-Id: I2a55f1e799d6e06b2528eefdee4bf5936e5b4301
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5426671
Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
|
|
f8bcfc3f
|
2024-04-04T16:03:32
|
|
Tests: avoid double logging to stderr from WARN()
LoggingAnnotator::logMessage calls both plat->logWarning()
(when plat is not nullptr)
and gl::Trace(), and both log the message to stderr
gl::Trace only logs when trace or asserts are enabled, so exclude that
case from TestPlatform_logWarning.
Bug: None
Change-Id: I1649fcc9046f59cbd8f4cfef6be809d3218eddc9
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5426531
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
3b650ffa
|
2024-03-19T09:53:06
|
|
Metal: Assert while using gl_VertexID as ivec
Metal [vertex_id] is uint while gl_VertexID is int. Replacing
gl_VertexID with gl_VertexIDMetal without rewrites of the expressions
would cause invalid expressions.
Fix by casting uint kgl_VertexIDMetal to int kgl_VertexID instead
of replacing variable during compile.
Bug: angleproject:8597
Change-Id: I76acdb2a0ab5982aa05181175925b3359068e901
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5376498
Reviewed-by: Alexey Knyazev <lexa.knyazev@gmail.com>
Auto-Submit: Kimmo Kinnunen <kkinnunen@apple.com>
Commit-Queue: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
|
|
5c6a531e
|
2024-04-03T02:53:13
|
|
Add ContextWgpu methods for managing current render pass
For simplicity ensureRenderPassStarted() just ends the current
render pass and starts a new one.
Bug: angleproject:8582
Change-Id: I929526cf2574fa33309310e7f60191c10ab3bf7a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5388075
Commit-Queue: Matthew Denton <mpdenton@chromium.org>
Reviewed-by: Liza Burakova <liza@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
103c1b53
|
2024-03-29T14:37:23
|
|
Vulkan: Drop MSRTT emulation dependency on independentResolveNone
Usage of VK_RESOLVE_MODE_NONE was removed in [1], but dependency to this
property was accidentally added in [2].
[1]: https://chromium-review.googlesource.com/c/angle/angle/+/2743666
[2]: https://chromium-review.googlesource.com/c/angle/angle/+/3353895.
Bug: angleproject:4836
Change-Id: I25028b5d343686edd794acdac3714c4a6cb5fa17
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5407073
Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
|
|
57eded36
|
2024-04-03T23:02:39
|
|
Vulkan: Fix off-by-one error in compute-based stencil blit
The coordinates used for sampling were calculated based on pixel's
top-left (integer) coordinates and used with a NEAREST sampler. This
resulted in two bugs:
- When X was flipped, the bounds check rejected the first column
- The sampling could pick the wrong pixel as the on-the-edge coordinates
could map to either of 4 pixels that share that corner.
This change moves the sampling coordinates to the pixel's center.
Bug: angleproject:8652
Change-Id: I0b54fa0bad366f52f8e6c17bb0054fa373af8b5c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5420834
Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
58ecad7a
|
2024-04-03T23:12:05
|
|
Remove assertion that program is not linking when bound/unbound
It's valid to link a program, let it happen in parallel and in the
meantime bind and unbind the program in other contexts. The add/release
ref functions were asserting that link is resolved, which is not true in
that case.
Bug: angleproject:8647
Change-Id: I784b5adbb04f062752a873deb1e7a4aaf4527e33
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5420990
Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
dc643d9b
|
2024-04-01T15:59:46
|
|
Vulkan: add feature control for client buffer merge
add feature control for client attribute buffer
merge. default is off to reduce memeory usage for
some application.
Bug: b/328301788
Change-Id: I5bfd39fb1ea656ebb29bd2dc21726b60bbc1a8d2
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5410942
Commit-Queue: Hailin Zhang <hailinzhang@google.com>
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
|
|
ceb3c0e1
|
2024-03-28T00:00:00
|
|
Remove redundant AND from ValidateClear
Component types of disabled draw
buffers are already set to zero.
Bug: angleproject:8618
Change-Id: I193dc6249158c6314076fedc7b4f43261d81f074
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5419708
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
ab6dd5b2
|
2024-03-07T14:19:58
|
|
Avoid asserts when const folding binary ops on void variables
Fix asserts for example with / and % during constant folding when
the operands might be voids.
Bug: angleproject:8592
Change-Id: I22275642dbcdf9066940d3a94114e8daa5cbbe41
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5416376
Auto-Submit: Kimmo Kinnunen <kkinnunen@apple.com>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Kimmo Kinnunen <kkinnunen@apple.com>
|
|
304ea14a
|
2024-04-01T17:24:10
|
|
Start Mac Intel experiment
Bug: chromium:326904538, angleproject:8628
Change-Id: Ib453b4ba0e582d348ec0618b7a5b9c0e69efb86e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5410986
Auto-Submit: Brian Sheedy <bsheedy@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
|
|
ff03a7b1
|
2024-03-19T10:54:22
|
|
CL/VK: Program build_status & mCallback fixes
Was missing saving the build_status in
the program export/binary to disk.
Also, missing dereference for mCallback.
Bug: angleproject:8435
Change-Id: I77f070f5bc1c40454d625abcf13c1a4b70c465b2
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5406613
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Austin Annestrand <a.annestrand@samsung.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
bb70f5d1
|
2024-03-13T06:02:40
|
|
CL/VK: Setup platform as provider of vk::Context
Setup the CLPlatformVk to be the implementer of `vk::Context`.
Initialize the Renderer instance during platform setup. This removes the
dependency on the DisplayVk instance and as a consequence any associated
egl state.
Bug: angleproject:8515
Change-Id: If1848b002d6309911305ca3cb93c316ed7f48965
Signed-off-by: Gowtham Tammana <g.tammana@samsung.com>
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5406612
Commit-Queue: Austin Annestrand <a.annestrand@samsung.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
e4fe461f
|
2024-04-01T16:41:37
|
|
Vulkan: Apply mask during transition search
When checking the transition cache for the shaders subset,
mask transition bits with kShadersTransitionBitsMask
Bug: angleproject:7369
Change-Id: Ic8e4ad00312d5e601dbfc0d84bbc76e809358427
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5410940
Commit-Queue: mohan maiya <m.maiya@samsung.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
64cfbb68
|
2024-04-02T13:22:09
|
|
GL: Fix MultisampledRenderToTexture tests and expectations
Some MSRTT tests were failing on the GL backend due to exact GL_EQUAL
depth tests, others were marked as skipped on all of Android due to old
device issues.
Update the Android expectations for these tests.
Bug: angleproject:8642
Change-Id: I2aad2637773967102a6172fd0a8ae2cb58a420ee
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5413775
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@google.com>
|
|
abf7b612
|
2024-03-28T00:00:00
|
|
Optimize WebGL clear type validation
Use cached component type masks instead of
iterating over all attachments every time.
Fixed: angleproject:8618
Change-Id: I45b83639120c0b4f50027d1d85fe9158f5cf187d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5407657
Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
|
|
a8e9aa26
|
2024-03-11T23:50:18
|
|
CL/VK: Setup GlobalOps for the platform
Setup CLPlatformVk as a provider of vk::GlobalOps, and use the
vk::GlobalOps associated thread pool for async tasks.
Bug: angleproject:8515
Change-Id: I3e1ae069afabeadfdfa02f4a2f99419882f91c6a
Signed-off-by: Gowtham Tammana <g.tammana@samsung.com>
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5403225
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
85b3e967
|
2024-04-01T14:31:17
|
|
Fail link and validation of invalid tessellation program
The GL_EXT_tessellation_shader spec says -
The tessellation control and evaluation shaders are both optional.
If neither shader type is present, the tessellation stage has no
effect. However, if either a tessellation control or a tessellation
evaluation shader is present, the other must also be present.
Fail link and validation if a program contains TCS or TES shader but not
both.
Bug: angleproject:3572
Tests: KHR-GLES32.core.tessellation_shader.single.xfb_captures_data_from_correct_stage
Change-Id: I6799f101a186f3bfae738df442e9aeee691fd91a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5410646
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: mohan maiya <m.maiya@samsung.com>
|
|
47ca7552
|
2024-03-07T14:19:06
|
|
CL/VK: Select Vulkan Angle as platform
Ask for Vulkan Angle platform when setting up the platform. Else it is
picking from the default one, which might not be Vulkan.
Bug: angleproject:8515
Change-Id: I1f43a5de3eb2c72900631695e2b3a5ffef3d966d
Signed-off-by: Gowtham Tammana <g.tammana@samsung.com>
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5403224
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
5d294e6e
|
2024-04-01T11:32:17
|
|
Manual roll VK-GL-CTS from 08c8f6c7aa44 to caf989d22e07 (30 revisions)
https://chromium.googlesource.com/external/github.com/KhronosGroup/VK-GL-CTS.git/+log/08c8f6c7aa44..caf989d22e07
If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/vk-gl-cts-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/332383430
Tbr: yuxinhu@google.com
Change-Id: If0518d4db878990405bf5813ca456eafae0d9970
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5410639
Commit-Queue: Yuxin Hu <yuxinhu@google.com>
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
|
|
4d317b52
|
2024-03-22T15:48:51
|
|
Vulkan: Add MSRTSS preferred usage for tex init
The image create flag related to multisampled render to single-
sampled was used when this feature flag was enabled. However, this
could lead to some platforms allocating extra memory for the image,
even if the image did not use this feature.
In this change, a new feature is added regarding whether to prefer this
flag from the start. If disabled, ANGLE will only use this bit for the
texture if it is actually bound to an MSRTT framebuffer object (through
FramebufferTexture2DMultisampleEXT()).
* Added a new feature: preferMSRTSSFlagByDefault
* If enabled, the MSRTSS is used for all image inits.
* (TextureVk::initImage())
* Otherwise, it will create the image without the flag at first.
* Added member to texture frontend to track if the texture has been
bound to an MSRTT framebuffer.
* mHasBeenBoundToMSRTTFramebuffer
* During TextureVk::syncState(), if the image without the MSRTSS bit
is bound to an MSRTT framebuffer, it is recreated using the
MSRTSS flag.
* Checked in respecifyImageStorageIfNecessary().
Bug: b/329911999
Bug: angleproject:8622
Change-Id: I5e7d43e3828ae272441d65b2be35d09b23b68f84
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5402978
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
|
|
18797bf2
|
2024-03-28T00:00:00
|
|
Metal: Handle incompatible attachments
Metal runtime fails if the attachment pixel
formats are not compatible with the program
outputs or if the corresponding render pass
and pipeline pixel formats do not match.
Added Metal-specific state tracking and forced
draw framebuffer syncronization for such cases.
Cleaned up and reduced Framebuffer::setAttachmentImpl.
Fixed: angleproject:5233
Change-Id: I4ee01889debe0e3cce54635e6cba62dbfdc02722
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5377813
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Quyen Le <lehoangquyen@chromium.org>
Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
|
|
e85bc345
|
2024-03-29T13:43:46
|
|
Account for disableProgramCaching
Blob cache tests rely on implicit caching of programs. Account for
disableProgramCaching frontend feature when saving and retrieving
from cache. Also skip EGLBlobCache tests if the feature is enabled.
Bug: angleproject:8297
Change-Id: Ib101eb5712deb7c04dd19c7092f93a6c6b42cd40
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5408103
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
76113ffb
|
2024-03-27T20:35:46
|
|
Manual roll VK-GL-CTS from fe6e7bd09f53 to 08c8f6c7aa44 (1 revision)
Manual roll requested by solti@google.com
Some local updates were made to the roll, see https://anglebug.com/8636 for
details.
https://chromium.googlesource.com/external/github.com/KhronosGroup/VK-GL-CTS.git/+log/fe6e7bd09f53..08c8f6c7aa44
2024-03-21 marcin.hajder@mobica.com Port KC-CTS tests to VK-GL-CTS
(framebuffer_blit), PART 2
If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/vk-gl-cts-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
Test: presubmit
Bug: angleproject:8636
Bug: b/331390622
Change-Id: I4e754b2a91f8a321e709842a8cf146bbf54a2199
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5402981
Auto-Submit: Solti Ho <solti@google.com>
Commit-Queue: Yuxin Hu <yuxinhu@google.com>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
|
|
321c6b63
|
2024-03-29T10:30:59
|
|
Remove is_always_lock_free assertion from AtomicQueueSerial
Build will fail when compiled on 32 bit architecture. The code will
still function on 32 bit architecture but with performance penalty due
to lock. But we are not really expecting it actually run on 32 bit
platform with vulkan backend (the atomic queue serial is only used by
vulkan backend). We could move AtomicQueueSerial into vulkan backend,
but that will be a much larger change that I try to avoid. This CL
removes the static_assertion and make it 8 bytes aligned as well.
Bug: angleproject:7989
Change-Id: I3c0bd9877c4171485ca1aa9af0cf4621c1c23f56
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5407870
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Charlie Lao <cclao@google.com>
|
|
2b66694d
|
2024-03-28T00:00:00
|
|
Metal: Untangle public draw calls
Do not call public Metal backend
draw commands from itself.
Bug: angleproject:8630
Change-Id: I7c0e016dc0eb3365520cdb39db215e4233e0d9fa
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5401865
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
Auto-Submit: Alexey Knyazev <lexa.knyazev@gmail.com>
|
|
076a5059
|
2024-03-28T10:15:42
|
|
Remove test suppression of dEQP-EGL*robustness on Pixel 6
Previoustly the tests dEQP-EGL*robustness*out_of_bounds_non_robust*
were skipped on Pixel 6, because the test is intentionally testing
in GLES, shader write out of bounds access results in undefined
behavior. In ANGLE vulkan backend, shader write out-of-bounds
access results in vulkan device lost on Pixel 6, which is a valid
undefined vulkan behavior according to spec. However, VVL is
reporting errors when ANGLE cleans up vulkan resources, because
they haven't finished execution on GPU.
With below VVL changes landed:
https://github.com/KhronosGroup/Vulkan-ValidationLayers/commit/9452b82820276eb3eb2102bf49b72e59916d3ea7
https://github.com/KhronosGroup/Vulkan-ValidationLayers/commit/af257b1c55f312b550addeca091265c249c09cf3
VVL now checks if there is a vulkan device lost upon resource
clean-up. If the vulkan device is lost, even if the resource
has not finished execution, treat resource clean up as a safe
vulkan operation and do not report VVL error.
Bug: b/289544394
Change-Id: I9d3532d4d6b0c3a1cdfd8837e13b4527d0dfbd7a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5403212
Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Auto-Submit: Yuxin Hu <yuxinhu@google.com>
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
|
|
b559efa8
|
2024-03-26T22:02:41
|
|
Vulkan: Allow depth and stencil resolve to be separately added
In preparation for optimizing resolve through glBlitFramebuffer for
depth/stencil attachments.
Bug: angleproject:7551
Change-Id: I57650d82c0cc6e56f44591eadfc42ac794cfef09
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5399140
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
|
|
84eb4f73
|
2024-03-26T15:44:48
|
|
Add a few use-after-resolve depth/stencil framebuffer tests
Bug: angleproject:7551
Change-Id: I42c1a6b8fe8714fd9c1568d216b12ee9a001aba5
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5399137
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
|
|
a0fa06f6
|
2024-03-25T14:46:56
|
|
Translator: Disallow samplers in structs in interface blocks
As disallowed by the spec:
> Types and declarators are the same as for other uniform variable
> declarations outside blocks, with these exceptions:
>
> * opaque types are not allowed
Bug: chromium:328859176
Change-Id: Ib94977860102329e520e635c3757827c93ca2163
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5391986
Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
b4cf07c3
|
2024-03-27T15:58:04
|
|
Vulkan: Move the interface pipeline library caches to share group
When linking libraries into a pipeline, the linked pipeline lives in
ProgramExecutableVk and may be shared between contexts in a share group.
The caches for the vertex input and fragment output libraries thus
cannot live in the context, but should remain alive until all contexts
in the share group are destroyed.
This change moves these caches to the share group.
Bug: angleproject:8629
Change-Id: I2f7edf44d676505cf5e7e24640c6850c67f8b5e3
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5401514
Commit-Queue: Charlie Lao <cclao@google.com>
Reviewed-by: Charlie Lao <cclao@google.com>
Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
c71a67de
|
2024-03-27T15:50:00
|
|
Vulkan: Move pipeline cache graph dump to renderer
In preparation for moving some caches to the share group.
Bug: angleproject:6565
Bug: angleproject:8629
Change-Id: I1a06a18417502e499da0edb9abb0d510e3ad99ce
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5401513
Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Charlie Lao <cclao@google.com>
Reviewed-by: mohan maiya <m.maiya@samsung.com>
|
|
0e9254bd
|
2024-03-25T16:37:51
|
|
Vulkan: Optimize color invalidates
By not flushing the render pass when there is an invalidate.
Previously, the tracking of invalidation, write to attachments,
management of load/store ops, and whether image contents are defined or
not have all been unified between color and depth/stencil images.
As such, it is possible to not close the render pass when a color image
is invalidated just as is not done for depth/stencil images. Together
with the optimization to resolve attachments [1], it is now finally
possible to efficiently do MSAA rendering with ANGLE.
Note that the optimization to use resolve attachments for depth/stencil
is not yet implemented. For color only, the perf test added in [2]
shows the following improvement on Pixel 6:
- Single sampled rendering: ~2.73ms
- Resolve + invalidate (before optimizations): ~3.54ms
- Resolve + invalidate (after this change): ~2.85ms
[1]: https://chromium-review.googlesource.com/c/angle/angle/+/5388492
[2]: https://chromium-review.googlesource.com/c/angle/angle/+/5392548
Bug: angleproject:7551
Change-Id: I008adf9f53df97ab464b0a0399f0b312bf4d0d3f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5391905
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
3c8b3f6b
|
2024-03-26T17:07:39
|
|
Start Mac AMD experiment
Bug: chromium:327017900, angleproject:8628
Change-Id: I7b108c724eaa6f5ff7b8098c256c6e4a47578b5e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5399719
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Auto-Submit: Brian Sheedy <bsheedy@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
|