|
65d674b0
|
2024-12-02T18:36:11
|
|
Vulkan: Must run UnlockedTailCall from flush and finish
`glFlush` and `glFinish` may call `WindowSurfaceVk::swapImpl()`
implicitly when the current Window Surface is in the single buffer mode.
The `WindowSurfaceVk::swapImpl()` in turn may add unlocked tail call in
order to perform CPU throttling. It seems, that CPU throttling is only
possible if also enable the `EGL_FRONT_BUFFER_AUTO_REFRESH_ANDROID`
attribute (using `VK_PRESENT_MODE_SHARED_CONTINUOUS_REFRESH_KHR`).
Without this attribute (`VK_PRESENT_MODE_SHARED_DEMAND_REFRESH_KHR`)
`vkQueuePresentKHR()` performs implicit waiting for GPU, making ANGLE's
throttling uncessary (the serial is already finished).
This fix allows running the tail call from `glFlush` and `glFinish`
(because these APIs are not performance critical). Alternative solution
may instead perform the CPU throttling immediately if the
`WindowSurfaceVk::swapImpl()` is called from the
`WindowSurfaceVk::onSharedPresentContextFlush()`.
Additionally, added "ASSERT(!any())" at the beginning of each entry
point. This is to catch scenarios, if some API adds the unlocked tail
call and for some reason exit without checking the assert of running
the call.
Test: angle_end2end_tests --gtest_filter=EGLAndroidAutoRefreshTest.SwapCPUThrottling/ES3_Vulkan_NoFixture
Bug: angleproject:42266581
Change-Id: I418c552f6e95b4cfc01db738c9989533377f1050
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6063719
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Igor Nazarov <i.nazarov@samsung.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>
|
|
7070a9e9
|
2024-11-20T00:21:16
|
|
Remove draw buffer validation clauses from PLS
It was cumbersome to implement all this validation browser side for
WebGL.
Rather than making it an error to update blend and color mask on
reserved PLS draw buffers, glBeginPixelLocalStorageANGLE() can just
implicitly disable blend, and enable the color mask on overridden draw
buffers. Later calls to enable blend or change the color mask on
overridden planes are silently ignored until
glEndPixelLocalStorageANGLE().
Bug: angleproject:40096838
Change-Id: Ic7e1c5113e7d3fad3b80d0178075df646540d743
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6045421
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Chris Dalton <chris@rive.app>
|
|
f7cac0bb
|
2024-03-07T18:05:27
|
|
Start Win NVIDIA experiment
On Windows 10 22H2 with 31.0.15.4601 driver.
Suppress test failures on the new platform.
Use-Permissive-Angle-Pixel-Comparison: True
Bug: chromium:40805707, angleproject:42267037, angleproject:381211730
Bug: angleproject:377923479
Change-Id: I1b457e11de10daa081bb0dac9f564b6cce97164a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5352750
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Yuly Novikov <ynovikov@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>
|
|
d57b1d30
|
2024-11-28T11:09:53
|
|
Vulkan: Support GL_OES_required_internalformat
Only export 'GL_OES_required_internalformat' in GLES extension.
Bug: angleproject:364069034
Change-Id: I6198b7b79fc2853c7585ebff183016ee110a25e5
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6055198
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
e7eb8e27
|
2024-11-29T13:10:18
|
|
Skip TextureFixedRateCompressionTest.Invalidate on Pixel 6
Fails on AP1A.240405.002 Vulkan
Bug: angleproject:352364583
Change-Id: Ie9d1e5998cb8692c68fe015dc76ee629b2e2f70f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6055168
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Auto-Submit: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
|
|
a2d76f03
|
2024-11-28T00:00:00
|
|
Add GetTexLevelParameterTest.Levels end2end test
Bug: angleproject:376497150
Change-Id: Id14663f6fb1fd64edc439e695953d4a4a3b9f853
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6056029
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>
|
|
3f312d98
|
2024-11-04T14:04:50
|
|
ES31: GetTexLevelParameter{if} validation for TEXTURE_2D_MULTISAMPLE
GL_INVALID_VALUE is generated if target is GL_TEXTURE_2D_MULTISAMPLE,
GL_TEXTURE_2D_MULTISAMPLE_ARRAY, or GL_TEXTURE_BUFFER, and level is
not zero.
Bug: angleproject:376497150
Change-Id: Ib05ef30a04699e590804d1059387a6920c38971c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5982239
Reviewed-by: Alexey Knyazev <lexa.knyazev@gmail.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
5d3d299d
|
2024-11-25T16:35:51
|
|
Expose the required GLES1.0/1.1 extensions in ANGLE
Exposed below extensions:
GL_OES_texture_mirrored_repeat
GL_OES_blend_subtract
Bug: angleproject:380704155
Change-Id: Ib095f9bfaabda92bb2c588d633f1512e118f066e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6038450
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@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>
|
|
0f9c146b
|
2024-11-28T09:47:35
|
|
Roll Chromium from c957bc3555b2 to b640856c0ed4 (1228 revisions)
Update VK-GL-CTS's _XOPEN_SOURCE version on Apple from 600 to 700 due to
https://github.com/llvm/llvm-project/issues/117630
https://chromium.googlesource.com/chromium/src.git/+log/c957bc3555b2..b640856c0ed4
If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/chromium-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 Chromium:
https://bugs.chromium.org/p/chromium/issues/entry
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
Changed dependencies
* build: https://chromium.googlesource.com/chromium/src/build.git/+log/77bbb5dc9c..7ed11c6746
* buildtools: https://chromium.googlesource.com/chromium/src/buildtools.git/+log/38a60f7635..9a87238031
* testing: https://chromium.googlesource.com/chromium/src/testing/+log/f1ccfe587d..b05f90caa7
* third_party/abseil-cpp: https://chromium.googlesource.com/chromium/src/third_party/abseil-cpp/+log/be9e355580..a79aaef505
* third_party/android_build_tools: https://chromium.googlesource.com/chromium/src/third_party/android_build_tools/+log/e4eee387b5..52438668cc
* third_party/android_build_tools/error_prone/cipd: nAUL9xKY6JWQyjoK2O_mKTqLakmTU69EX-FROc-rzNEC..n2Qwqs0Jr17AMpoYGTDACFHIM0aPsdm8g3X0jBjfDQoC
* third_party/android_build_tools/lint/cipd: qft_MiuWKisqUw9hZCFTuJKi5jBZaexi7LbGkgRmrpkC..Hd1-tpL2M67CYclO3F_3WjBf70hE_XYr7tEXt0wQyvgC
* third_party/android_build_tools/manifest_merger/cipd: CIvskXU9WjZMXUINb-D8kgUKUDSf6G1G1QmCja7qOa4C..zC9JbLx2HVKIMFxavlF00isXwHx72vIkFlRCLvH0rIkC
* third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/497f6b7429..6a0960fe97
* third_party/depot_tools: https://chromium.googlesource.com/chromium/tools/depot_tools.git/+log/584e8366be..bd7f36598e
* third_party/libc++/src: https://chromium.googlesource.com/external/github.com/llvm/llvm-project/libcxx.git/+log/291ce60cce..76cb1e3b4a
* third_party/llvm-libc/src: https://chromium.googlesource.com/external/github.com/llvm/llvm-project/libc.git/+log/9aff6762a3..e6303c7ffe
* third_party/r8/cipd: lrcfrwv2WpEoHAk051sZiwXxKxnNIUTYYEwM3oBDlhMC..GaYs9HP0ijqgwtd-Zv0Ee7R8HCzWR4LUzNNxBoTxdQUC
* third_party/rust: https://chromium.googlesource.com/chromium/src/third_party/rust/+log/92e2247154..cecd4aabb2
* tools/android: https://chromium.googlesource.com/chromium/src/tools/android/+log/5510558641..1ff4269915
* tools/clang: https://chromium.googlesource.com/chromium/src/tools/clang.git/+log/6834b3fdbb..768236a7b2
* tools/perf: https://chromium.googlesource.com/chromium/src/tools/perf/+log/c84318b6c0..d6a5c65a46
No update to Clang.
Bug: angleproject:364069034
Change-Id: I1cff11e0ebb80eae2a1f62be842796cb29e45a8a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6056956
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Yuly Novikov <ynovikov@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>
|
|
4aaeffd8
|
2024-11-25T11:33:30
|
|
Metal: Limit simulator texture size to 8k
Regressed in commit d44204893a1725a74cd20b332fbb6f595b0975c3.
Bug: angleproject:380712807
Change-Id: Ic5e298412b35451e87b76f70d5b1b253ed1406cb
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6039222
Reviewed-by: Quyen Le <lehoangquyen@chromium.org>
Auto-Submit: Kimmo Kinnunen <kkinnunen@apple.com>
Commit-Queue: Kimmo Kinnunen <kkinnunen@apple.com>
|
|
2dc072ec
|
2024-11-22T16:14:52
|
|
Vulkan: Switch PipelineLayout from AtomicBind* to AtomicSharedPtr
AtomicSharedPtr/SharedPtr has better semantics and safer to use. This
will allow deleting BindingPointer in later CL.
Bug: angleproject:372268711
Change-Id: Ife20f68b2277a1913b06be0de153770214ac964a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6044326
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Commit-Queue: Charlie Lao <cclao@google.com>
|
|
87d61997
|
2024-11-21T14:20:55
|
|
Vulkan: Switch ShaderModule to use SharedPtr
This CL gets rid of many vk::RefCounted<vk::ShaderModule> usage which is
risky due to it allows you to direct manipulate reference count. Switch
to vk::SharedPtr manages the reference counting automatically.
Bug: angleproject:372268711
Change-Id: I14f5c509bcbd9ea7d17101637e033652a68710a0
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6039117
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Charlie Lao <cclao@google.com>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
|
|
6451a893
|
2024-11-27T16:06:09
|
|
Fix minimum caps for texture gather offsets.
Bug: angleproject:40096373
Change-Id: Ia5480a37eba4efa40cb602d279feaaddfa9c59c8
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6053597
Reviewed-by: Stephen White <senorblanco@chromium.org>
Reviewed-by: Stephen White <senorblanco@google.com>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
6f28cb15
|
2024-11-26T15:59:21
|
|
Fix minimum caps for draw buffers and compute invocations.
Framebuffer and blend state code asserts that draw buffers > 0 so
unconditionally set it to 1. It's increased to 4 in the ES3 block.
Fix the value of MAX_COMPUTE_WORK_GROUP_INVOCATIONS, it was incorrectly
copied from the spec.
Bug: angleproject:40096373
Change-Id: I471fa7e8dddd9bca755daf8ce5834ed60ec4e629
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6052094
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Stephen White <senorblanco@chromium.org>
|
|
5288ed36
|
2024-11-26T00:00:00
|
|
GL: Enable ANGLE_texture_multisample on OpenGL ES
Trivially enabled on supported device contexts.
Improved readablility of conditions
for implicit GLSL version upgrades.
Fixed: angleproject:381113379
Change-Id: I843f7119da2a3cffb255af97f654d714add9f482
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6055117
Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
b6b826b3
|
2024-11-27T09:57:18
|
|
Add stubs for GL_EXT_EGL_image_storage_compression
Bug: angleproject:352345943
Change-Id: I993a7908e868019852c0d682bf2131e46a2cf304
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6051521
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
8597a5fd
|
2024-11-27T13:54:25
|
|
Skip TextureMultisampleTest.MaskedDrawWithSampleID on S22
Bug: angleproject:380475003
Change-Id: Id55f6a38d3cb8ec44ecbcd2f8eeabe80a7aeb220
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6055418
Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Auto-Submit: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
|
|
9c7ad319
|
2024-11-27T13:43:10
|
|
Revert "Delay EGLQueryContext render buffer change"
This reverts commit 233d9ee5c3525cc8290b3af52385ed59973438b4.
Reason for revert: ASSERT triggered on Linux NVIDIA 535.183.01
https://ci.chromium.org/ui/p/angle/builders/ci/linux-exp-test/1469/overview
Original change's description:
> Delay EGLQueryContext render buffer change
>
> According to the EGL spec, EGL_RENDER_BUFFER of a context
> should change after eglSwapBuffers is called if
> eglSurfaceAttrib changes. Refine ANGLE implemnetation
> to delay the render buffer change.
>
> Bug: angleproject:375528202
> Change-Id: Ida7736a09e3a83223a529dbfad48e0f952f91a38
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5982241
> Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Bug: angleproject:375528202
Change-Id: I08fc76b1b764e57639e2c0708cb155d392f82f22
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6055417
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
|
|
2e25ea1e
|
2024-11-13T13:59:51
|
|
Add a new mutex in CommandQueue to protect Vulkan Command Pool
Before this change, the CommandQueue::mMutex protects both:
1. Members of CommandQueue class, e.g. mInFlightCommands.
2. Operations on the same command pool and command buffers allocated
from the same command pool.
If one thread accesses resources 1, the other thread is doing operations
in 2, they could be blocked by each other. For example, if thread 1
calls eglClientWaitSync() to check if certain commands finish execution
(accessed resources in 1.), while thread 2 calls
eglMakeCurrent() to flush commands (issue operations in 2.), thread 1
could be blocked by thread 2. This is against the egl spec where
eglClientWaitSync() should return immediately when timeout passed to
the call is 0.
To fix the problem, this change creates a new class CommandPoolAccess
that wraps operations in 2, and protects command pool and command buffer
operations with a new mutex mCmdPoolMutex. With this new mutex, thread 1
and thread 2 would take different locks and not blocked by each other.
Bug: b/362604439
Change-Id: Iccf0ae65809ccb0f593c5e318fde03e89e0c0fa3
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6020895
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Yuxin Hu <yuxinhu@google.com>
|
|
c796c571
|
2024-11-26T15:05:10
|
|
Disable BasicUniformUsageTest.* on Linux Intel WGPU for now
Bug: angleproject:376553328, angleproject:360083331
Change-Id: I03d2722d4e7754e38ec6d616b983bb6e5a71f845
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6043406
Reviewed-by: Roman Lavrov <romanl@google.com>
Auto-Submit: Matthew Denton <mpdenton@chromium.org>
Commit-Queue: Matthew Denton <mpdenton@chromium.org>
|
|
ea6e6b9f
|
2024-11-25T00:00:00
|
|
Capture/Replay: Fix GetTexLevelParameterivANGLE buffer size
That function returns only one value.
Bug: angleproject:42264181
Change-Id: I9cc53ba48de0b98aa5ecce8593466c0f523ba322
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6049082
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
|
|
239ef680
|
2024-11-21T00:00:00
|
|
Metal: Support ANGLE_texture_multisample
* Added explicit multisample texture creation support
* Added support for SAMPLE_MASK frontend state
* Adjusted Metal backend caps
Fixed: angleproject:380475003
Change-Id: I90250e14da52869cb954b5a61d9c670e958a526c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6048958
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
|
|
c56867ec
|
2024-10-28T17:18:19
|
|
Refine sRGB support
GetNonLinearFormat should return the format itself
if format is non-linear. Also, for linear colorspace,
sRGB render target should be supported.
Bug: angleproject:377144464
Change-Id: I1179a3dbf67b619bae276e607bc61a85c1639c17
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5982242
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: mohan maiya <m.maiya@samsung.com>
|
|
233d9ee5
|
2024-10-24T18:24:14
|
|
Delay EGLQueryContext render buffer change
According to the EGL spec, EGL_RENDER_BUFFER of a context
should change after eglSwapBuffers is called if
eglSurfaceAttrib changes. Refine ANGLE implemnetation
to delay the render buffer change.
Bug: angleproject:375528202
Change-Id: Ida7736a09e3a83223a529dbfad48e0f952f91a38
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5982241
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
7a1da65f
|
2024-11-25T00:00:00
|
|
Fix GetTexLevelParameter validation
* Adjusted ValidTextureTarget and ValidTexLevelDestinationTarget
helpers to allow multisample 2D array target on unextended
OpenGL ES 3.2 contexts.
* Adjusted ValidTexLevelDestinationTarget helper to disallow
2D array, 2D multisample, and 3D texture targets when the
corresponding functionality is not available.
* Removed redundant texture object validation from
ValidateGetTexLevelParameterBase.
* Adjusted ValidateGetTexLevelParameterBase to disallow
parameters not available in the current context.
Fixed: angleproject:380291920
Change-Id: Id2fcd1e2c81be25f1d545d213bd2508185592f20
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6049081
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
|
|
cecefe53
|
2024-11-21T22:11:17
|
|
Vulkan: Improve recreateSwapchain() error handling
The `WindowSurfaceVk::recreateSwapchain()` method may fail in many
points. After failing, state of `WindowSurfaceVk` may become invalid,
causing undefined behavior.
Invalid state examples:
- Skip adding `cleanupData` into the `mOldSwapchains` while
`mPresentHistory already cleared (resource leak).
- `mSwapchain` may remain `VK_NULL_HANDLE` after the failure.
- `lastSwapchain` may be not retired, causing subsequent swapchain
creation to fail.
Change adds `mLastSwapchain` member to continue tracking last created
swapchain during the `mSwapchain` recreation process until it is
retired. This process now may span multiple API calls. The `mSwapchain`
pointer is invalidated as soon as recreate starts - to indicate that we
do not have usable swapchain and still need to create one.
Notable difference with the old code is that old swapchain and present
history are now collected into the `mOldSwapchains` after new swapchain
is created (or old swapchain is retired in case of a failure). Because
of this, code can now be simplified and easily refactored into a
separate method. The `kMaxOldSwapchains` is now also checked after old
swapchain is collected - this is to prevent resource leak if `finish()`
fails. Added `cleanUpOldSwapchains()` call to reduce a chance of hitting
the `kMaxOldSwapchains` limit.
Change also renamed `presentOutOfDate` parameter where it does not
always make sense. As a side effect, fixed a bug when calling
`prepareForAcquireNextSwapchainImage()` with true, is then replaced
with false in the `computePresentOutOfDate()` call.
Bug: angleproject:380234227
Change-Id: Ie6d85c1b9760cda68c8fc9368235756659a9bdac
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6040159
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
f458f865
|
2024-11-12T16:52:42
|
|
Vulkan: Update AcquireNextImageUnlocked() implementation
Main goal of this change is to simplify acquire next image operation
state change tracking.
Key members before this change:
1. `mAcquireOperation.needToAcquireNextSwapchainImage`
2. `unlockedAcquireResult.acquireSemaphore`
Possible states:
1: 2:
false NULL -> image is acquired or no need
true ANY -> need to prepare for and do unlocked ANI
false HANDLE -> need to process ANI result
Only `mAcquireOperation.state` is used after this change.
Possible states:
Ready -> image is acquired or no need
NeedToAcquire -> need to prepare for and do unlocked ANI
NeedToProcessResult -> need to process ANI result
Value of `unlockedAcquireResult.acquireSemaphore` is now only used
as semaphore in the post process and not as boolean, indicating that
result needs processing.
Change adds a lot of ASSERTs to protect from invalid scenarios. In order
for these ASSERTs to work as expected, `deferAcquireNextImage()` is now
called regardless if swapchain is out-of-date or not.
Another functional change is that `postProcessUnlockedAcquire()` does
not mark image as processed at the start and then defers ANI in case of
a failure (so the next ANI fail again), but instead keeps the current
state (NeedToProcessResult) allowing failure to be processed again
without repeating ANI call in case if there will be no swapchain
recreation. State is set to `Ready` only after processing is successful.
Bug: angleproject:42265346
Bug: angleproject:42266579
Change-Id: I4a6a66fa3b6f25a788a8959eff5848b7ec5bdd27
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6018094
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
|
|
ea86503c
|
2024-11-20T19:47:49
|
|
Vulkan: Remove vkAcquireNextImageKHR multi-threading support
Currently, it is not possible to call `TryAcquireNextImageUnlocked()`
from multiple threads. However, original implementation added
multi-threading support for future use.
Possible future use:
- First thread (where Surface is current) calls
`eglPrepareSwapBuffersANGLE()` which will call
`TryAcquireNextImageUnlocked()` in the unlocked tail call (without the
share group lock).
- Other thread (where shared Context is current) calls some EGL/GLES
API under the share group lock, that may cause calling
`doDeferredAcquireNextImage()` on the Surface from the first thread.
Calling this method may call `TryAcquireNextImageUnlocked()` under the
share group lock, while it is also called from the first thread in the
unlocked tail call. Calling `doDeferredAcquireNextImage()` may also
cause swapchain recreation.
Taking into account above scenario, current implementation has following
bugs:
1. Possibility to recreate the swapchain from other thread, while first
thread is going to or calling the `TryAcquireNextImageUnlocked()`
function:
a) Other thread may call `prepareForAcquireNextSwapchainImage()`
because `NeedToProcessAcquireNextImageResult()` is still false
until first thread finishes `TryAcquireNextImageUnlocked()` call.
Also, checking `NeedToProcessAcquireNextImageResult()` from other
thread is not thread safe.
b) Other thread finished `TryAcquireNextImageUnlocked()` first, but
with `VK_ERROR_OUT_OF_DATE_KHR` error. First thread still did not
get the chance to call this function because of OS's thread
scheduling delays. Other thread will set
`needToAcquireNextSwapchainImage = true` and will start to
recreate a swapchain. At this time, first thread will start
executing `TryAcquireNextImageUnlocked()`, and because bool is
true - it will actually perform ANI during recreate from other
thread.
2. Possibility to call `TryAcquireNextImageUnlocked()` with old
swapchain. This is similar to (1), but this time call is delayed
after swapchain is recreated.
Since above scenario currently is not possible and the described future
scenario is unlikely to ever happen, instead of fixing above problems
this CL removes the multi-threading support to simplify the code and
make these bugs N/A.
Change removes word "try" from structures, members, and functions
because without multithreading there is no need for that and just adds
unnecessary complication.
It also removes most of the "share group lock" mentions because now this
information is irrelevant and may cause confusion. What is relevant is
that `AcquireNextImageUnlocked()` MUST only be called from a thread
where Surface is current and only CAN access members that is only ever
accessed from this thread (regardless if the lock is taken or not).
For example, if in the future `unlockedAcquireResult` will be accessed
from other thread but with the share group lock held, while
`AcquireNextImageUnlocked()` will still only be called from the current
thread - then this will be a race condition.
Bug: angleproject:42265346
Bug: angleproject:42266579
Change-Id: Ie9be408c0a3b3c1f37ec80727ce5ad2cb8932dad
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6018093
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
b94d7853
|
2024-11-14T00:00:00
|
|
Fix TextureMultisampleTest.CheckSamplePositions end2end test
The test should query positions only
for the supported sample counts.
Added capture support for GetMultisamplefv
and GetMultisamplefvANGLE functions.
Fixed: angleproject:380216733
Change-Id: I97456055ac60ada94dd75e10d7427e4448aee5e8
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6042141
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
bfa03a84
|
2024-11-19T13:32:31
|
|
Metal: Fix vec swizzles to bvecs on AMD
Constructing bvecs explicitly from swizzles would produce double
swizzles, and this would fail validation at validateNoSwizzleOfSwizzle.
Fix by folding the expression passed to coersion bvec constructor.
Cannot test more in isolation for now, since AddExplicitTypeCasts uses
Metal specific SymbolEnv.
Bug: angleproject:379758210
Change-Id: I175941747ef1c7acb8c88683c1188843a154aa8a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6034935
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Auto-Submit: Kimmo Kinnunen <kkinnunen@apple.com>
|
|
c02e0184
|
2024-11-22T17:21:38
|
|
Add GL_ARM_rgba8
* It is a subset of GL_OES_rgb8_rgba8.
Bug: angleproject:352352894
Change-Id: I07f031157344385c847cd229a85ebf59cc6dfcfc
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6044333
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
89f7fd8b
|
2024-11-24T21:46:12
|
|
CL/Vulkan: Skip crashing tests
Bug: angleproject:380712807
Change-Id: I34d550a1a6e216f34840910e952f64a487f81e73
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6042525
Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org>
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Commit-Queue: 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>
|
|
cb31b886
|
2024-11-22T13:15:57
|
|
Vulkan: pruneDefaultBufferPools when there is excessive garbage
What commonly happens with game (and traces) is that we upload a lot of
textures before first frame is drawn. These texture uploads uses a lot
of buffer memory and creates peak memory usage moment if not clean up
quickly. This CL adds back the check if there is excessive suballocation
memory gets destroyed, don't wait until frame boundary to prune empty
buffer blocks. Do the prune immediately so that these memory could be
reused for other purpose for the first frame rendering.
Bug: angleproject:372268711
Change-Id: Ie548245b5ce108be0e2c19b296a28025bface395
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6043405
Commit-Queue: Charlie Lao <cclao@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
|
|
a5dec6fe
|
2024-11-22T15:58:02
|
|
Tests: ANGLETestBase subclasses non-zero initialize primitives
For example, a class member
GLuint mPipeline;
would get initialized to 0x7f7f7f7f, ~2e9, to avoid potential reliance
on the value being 0 which happens often, but not always, resulting in
hard-to-debug scenarios.
Large number to trigger checks such as https://crrev.com/c/6042185
ANGLE tests are generally subclasses of ANGLETest <- ANGLETestBase and
often use GL primitive class members, so this should apply broadly and
catch newly introduced cases.
This only sets the initial bytes of the allocated memory.
Non-primitives or explicitly initialized members overwrite these bytes
during their construction.
Bug: angleproject:380296979
Change-Id: I4df47a85580548f409a7c890853050cc127cbab1
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6044560
Commit-Queue: Roman Lavrov <romanl@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
52fa6779
|
2024-11-14T00:00:00
|
|
Refactor indexed parameter query validation
* Moved indexed parameter validation to queryutils.
* Fixed indexed blend state enums being disallowed
on unextended OpenGL ES 3.2 contexts.
* Replaced redundant validations with assertions.
Fixed: angleproject:380291906
Change-Id: I4d5a9c01be5a00cd834504b38a3ddaeb5fa4edb9
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6043710
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
|
|
6b9b8239
|
2024-11-21T15:56:40
|
|
Vulkan: fix un-initialized mCompatiblePresentModes
When VK_EXT_swapchain_maintenance1 is supported but
VK_EXT_surface_maintenance1 is not, mCompatiblePresentModes has no
chance to be initialized.
So need to set it up in such case.
Bug: None
Change-Id: I38ac6d9da3d6cebf2effcdcd74084a53d68a32c2
Signed-off-by: Jiawei Gu <gujiawei.will@bytedance.com>
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6040834
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
03380548
|
2024-11-22T11:43:30
|
|
CL/Vulkan: Fix nullptr case for async build task
Bug: angleproject:380411632
Signed-off-by: Gowtham Tammana <g.tammana@samsung.com>
Change-Id: Ib56c6828f59cca0d38b36ae54015c5d464753e21
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6043797
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Austin Annestrand <a.annestrand@samsung.com>
|
|
9c202275
|
2024-11-14T00:00:00
|
|
Fix SAMPLE_MASK_VALUE indexed query validation
The SAMPLE_MASK_VALUE enum must be accepted
when ANGLE_texture_multisample is enabled.
Fixed: angleproject:380291919
Change-Id: Ieb834ca4c78982fbf1a121c0a70db7413574679a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6038524
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
|
|
b856059e
|
2024-11-22T09:58:13
|
|
Tests: linux-trace logs return code with OOM note
In case on the bug the replay was terminated with an empty stdout
and signal handler wouldn't trigger, making it difficult to
diagnose. This happened due to OOM killer (system low on memory) sending
SIGKILL to the process, which can't be handled and results in
termination with exit code -9. Add a note to the logs when this happens.
Bug: angleproject:380296979
Change-Id: Id4db4b12c680701511430d90eee847baded03bcb
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6042183
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
21d747de
|
2024-11-20T11:54:15
|
|
Vulkan: Use vk::SharedPtr for SharedDescriptorSetCacheKey
This CL switches SharedDescriptorSetCacheKey from using c++
std::shared_ptr to our internal version of vk::SharedPtr. Also get rid
of an extra pointer indirection that SharedDescriptorSetCacheKey is a
reference counted of actual cache key instead of std::unique_ptr of
cache key.
Bug: angleproject:372268711
Change-Id: Id9af5070d24f67711d6decc3a30a260b8d4062d9
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6036302
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Charlie Lao <cclao@google.com>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
|
|
0757254b
|
2024-11-22T10:21:29
|
|
Tests: Add crash callback to test Replay (e.g. linux-trace)
Prints a backtrace on trapped signals. Didn't help with the issue on the
bug as it was an OOM -> SIGKILL which can't be trapped but generally
nice to have.
Also adds stdout flushes to the signal handler as stdout redirection is
by default _not_ line-buffered, so without a flush the printfs just go
into the buffer and don't actually show up in the redirected output
(including on bots). This might be the reason we were missing backtraces
in some other cases.
Bug: angleproject:380296979
Change-Id: I9fbba35e3bf4e6d863139ceb533f51973fe2f98d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6044040
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
a3452c24
|
2024-11-14T00:00:00
|
|
Fix SAMPLE_MASK toggle validation
The SAMPLE_MASK enum must be accepted when
ANGLE_texture_multisample is enabled.
Bug: angleproject:380291919
Change-Id: I6aeb11dfbb65e6c05e493d1053679c7547c009c9
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6039158
Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
6544daec
|
2024-11-14T00:00:00
|
|
Fix indentation in GetQueryParameterInfo
No functional changes.
Bug: None
Change-Id: I4807dbdb14997cddfc12147f13d9614c429a663f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6041983
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
2f7feccd
|
2024-11-21T17:21:45
|
|
Tests: Fix EGLSurfaceTest.SwapWithoutAnyDraw test
Bug: b/275624771
Change-Id: I17516dcc44b58b8dfa659ab099327b25ac88a167
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6038163
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
bc09b178
|
2024-11-15T13:11:04
|
|
CL: Run a subset of CTS tests on linux
Bug: angleproject:372722560
Change-Id: I33980df1850384762f0a5715cc3a04314f77d60a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6026508
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
0c7c14eb
|
2024-11-22T10:31:45
|
|
Capture: add a sanity check to InitializeReplay4 args
In the case on the bug we were getting
maxProgramPipeline = 1684105299
due to an unitialized memory read, which then led to Replay OOM crash
as it allocates an array of this size. This is difficult to diagnose in
Replay as OOM leads to SIGKILL which cannot be trapped so we can't have
a backtrace. Adding a sanity check during capture.
Fix the other tests where we hit this
(https://anglebug.com/380296979#comment6)
One of them visible on red tests on a previous patchset in this CL:
https://ci.chromium.org/ui/p/angle/builders/try/linux-trace/9871/overview
https://ci.chromium.org/ui/p/angle/builders/try/win-trace/10795/overview
Bug: angleproject:380296979
Change-Id: I2879c1947742a9751a122545c8ba8da23ab243cb
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6042185
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Roman Lavrov <romanl@google.com>
|
|
8ba71e66
|
2024-06-26T13:37:42
|
|
CL/Vulkan: Update few device caps based on VK caps
-1- Device fence caps flags
The spec requires below fence capabilities to be preset
- CL_DEVICE_ATOMIC_ORDER_RELAXED
- CL_DEVICE_ATOMIC_ORDER_ACQ_REL
- CL_DEVICE_ATOMIC_SCOPE_WORK_GROUP
-2- Add missing param names in program query
The params CL_PROGRAM_SCOPE_GLOBAL_{CTORS,DTORS}_PRESENT are missing
from program query. Adding them.
-3- Set max sampler and image buffer to spec min
Set the max samplers and image buffer size to minimum for now. These
will be changed once the image support is complete.
Bug: angleproject:366412386
Change-Id: Iee2c11319c6c5b2f3a1565e06f1f09c5f770a07c
Signed-off-by: Gowtham Tammana <g.tammana@samsung.com>
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6004685
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Austin Annestrand <a.annestrand@samsung.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
b18b0b02
|
2024-11-22T13:40:47
|
|
Skip couple non-deterministic angle_restricted_trace_gold_tests
on Win Intel Vulkan.
aztec_ruins
aztec_ruins_high
produce slightly different images once in a while.
Bug: angleproject:353690308
Change-Id: Ib8043d8662b07a48ae86d731d7538153da517122
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6038527
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
|
|
8e9dc1a6
|
2024-11-19T11:08:31
|
|
Validate anonymous struct names with namespace
Consider GLSL:
struct { vec4 e; } g;
struct sbbf { vec4 f; };
The struct name validation would fail if user chosen struct name would
clash with a symbol name that ANGLE internally gave to an anonymous
struct.
Fix by importing Name abstraction from MSL backend. A symbol name is
a pair (namespace, string).
Move operator<<(std::ostream &os, const ImmutableString &str)
to sh namespace because that is more natural for operator overloading
name resolution. MSVC works with this.
Bug: angleproject:379758201
Change-Id: Icc9b02aa8cb532e1d925e2fba4c45468f01b9144
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6035029
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Auto-Submit: Kimmo Kinnunen <kkinnunen@apple.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Kimmo Kinnunen <kkinnunen@apple.com>
|
|
8409b41e
|
2024-11-20T14:38:30
|
|
Report error on unsized interface block array
GLSL of forms:
uniform S{...} a[];
in R{...} b[];
out Q{...} c[];
Should produce error unless the shader is tesselation or geometry
shader.
Fix the errors for VS and FS. GS and TS likely need more work.
Bug: angleproject:379996129
Change-Id: Ib31c9a81717a8cd1c984eb4ce2e993d563bb3c4f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6038333
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Auto-Submit: Kimmo Kinnunen <kkinnunen@apple.com>
Commit-Queue: Kimmo Kinnunen <kkinnunen@apple.com>
|
|
10c2dc7a
|
2024-11-14T10:55:55
|
|
CL: Remove logic restricting CL version of passthrough backend
When the passthrough backend is enabled, the OpenCL version
would be manually set to <= 1.2, causing issues for
workloads that specify the version number.
This change enables OpenCL versions > 1.2 during passthrough.
Bug: angleproject:378754053
Change-Id: I7e84ae7b492d68ba441d0c71b75847799f4b99a0
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6022547
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Austin Annestrand <a.annestrand@samsung.com>
|
|
a58b35bc
|
2024-08-07T15:01:56
|
|
CL/Vulkan: Implement image creation from buffer object
Add support for creation of image from buffer object for types
image1d_buffer. At the kernel side setup texel buffer descriptor sets
for these kernel arguments.
Bug: angleproject:378103913
Change-Id: I600692cd003b75396afd45dcc93c568bcf390b96
Signed-off-by: Gowtham Tammana <g.tammana@samsung.com>
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6005389
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
94eebab5
|
2024-11-21T17:04:54
|
|
Tests: fix ProgramPipelineTest31 unitialized memory read
Specifically mPipeline was being set to 1684105299 on linux-trace CI,
which then got captured as maxProgramPipeline=1684105299 leading to OOM
crash of the replay attempting to initialize an array of this size*4
(~6Gb). Some tests, like BindProgramPipelineTest do not use mPipeline so
it remains unitialized, and since GLuint is a C++ primitive there is no
default zero-initialization.
Bug: angleproject:380296979
Change-Id: I2398666f15a36d3e5ccd8aa163cc83682039b7d0
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6042556
Commit-Queue: Roman Lavrov <romanl@google.com>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
|
|
70d1ef67
|
2024-11-20T11:34:39
|
|
Vulkan: Ensure onFramebufferBoundary is called for offscreen
There is peak memory regression observed from crrev.com/c/6022549. What
I suspect happening is that for offscreen or single buffered case,
glFlush/glFinish is called but bail out because it already submitted or
deferred. So we end up not calling onFramebufferBoundary(). This CL
ensures we always call onFramebufferBoundary from these two functions
for single buffer or offscreen.
Also fixed a bug when onSharedPresentContextFlush is called we may end
up calling onFramebufferBoundary.
To make API names consistent, existing flushImpl() is renamed to
flushAndSubmitCommands() and a new flushIMpl is added to wrap around
most logic inside flush().
Bug: angleproject:372268711
Change-Id: I54eed8a81f4153d52ab962f213cacc87a73b89ac
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6037491
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Charlie Lao <cclao@google.com>
|
|
0dfe0a75
|
2024-08-30T18:59:54
|
|
CL/VK: Add writeBuffer to staging/transfer routine
Adding enqueueWriteBuffer staging/transfer
code/routine for the non-blocking conditions.
Bug: angleproject:377545840
Change-Id: Ia2f97588a887e9ec30f8f1715b0e33b56ff97867
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6023865
Commit-Queue: Austin Annestrand <a.annestrand@samsung.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
8e0178fb
|
2024-11-19T13:31:45
|
|
Vulkan: Switch SamplerBinding to Use SharedPtr
Another step to remove vk::BindingPointer. SharedPtr is used and
SamplerBinding is renamed to SharedSamplerPtr. This also removed
RefCountedSampler to avoid direct expose of RefCounted<SamplerHelper>
which is risky due to ability of change reference count directly.
Bug: angleproject:372268711
Change-Id: Ia6f352186a4f75ab9ce3396f298e33f70cd61a1b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6036294
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Commit-Queue: Charlie Lao <cclao@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
a41b798e
|
2024-11-21T11:07:34
|
|
WebGPU: Ensure mDefaultBindGroup is created
mDefaultBindGroup would not be created if the program has no uniforms
because they are not dirty. Mark all stages as dirty after linking.
Bug: angleproject:376553328
Change-Id: I1663791fa1642be052948c5acb8e403fa8b844f9
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6039006
Reviewed-by: Matthew Denton <mpdenton@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
8f07cdde
|
2024-11-14T00:00:00
|
|
Fix NegativeTextureMultisampleTest
The test checks that unextended ES 3.0 contexts
reject commands related to multisample textures
but it did not create an unextended context and
therefore was skipped on most backends because
they expose the extension.
Fixed: angleproject:380088822
Change-Id: I2aab2876539fb48954e5c0055f510ca4db429245
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6038826
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
e1fd42db
|
2024-09-02T12:53:22
|
|
CL/Vulkan: Add parent dependencies and image layout transitions
In the case of memory objects derived from parent object, the
dependencies need to be set for parent objects as well. Setting up those
dependencies.
In the case of images, there might be a layout transition needed when
using them. Adding an appropriate barrier command to do layout
transitions.
Also, refactored all the common code of setting up dependencies in a
utility function.
Bug: angleproject:380188569
Change-Id: Ia46f8a7fe647bf38c86f1ea28f99d44b0416c334
Signed-off-by: Gowtham Tammana <g.tammana@samsung.com>
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6005390
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
ec773865
|
2024-11-19T14:46:29
|
|
Qualifier in const for sampler2D fails validation
The commit 039660a0757e8e5b661c1850747b688b6642f56d failed to special
cased "const in".
Fix by special casing also on EvqParamConst.
Bug: angleproject:379762012
Change-Id: Ife6966ea536972874645ae22b504712249817638
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6035505
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Auto-Submit: Kimmo Kinnunen <kkinnunen@apple.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
99d5d4d5
|
2024-11-21T09:02:32
|
|
Tests: fix replay failure handling in linux/win-trace
Bug: angleproject:42264614
Change-Id: I752fb914b82222392bf88b51351217cd4d063cd6
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6039443
Reviewed-by: Cody Northrop <cnorthrop@google.com>
|
|
594a11ac
|
2024-11-20T16:55:06
|
|
Tests: Add Need For Speed: No Limits trace
Test: angle_trace_tests --gtest_filter="*need_for_speed_no_limits"
Bug: b/380107298
Change-Id: I216574367e8e495a69c63de2ec04a6c9e3c73ff4
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6037637
Reviewed-by: Mark Łobodziński <mark@lunarg.com>
Commit-Queue: Mark Łobodziński <mark@lunarg.com>
|
|
770242db
|
2024-11-20T17:03:07
|
|
Translator: Remove the `gimage1D` base type
This is a desktop GL type, whose removal was left out of b16d105fc6.
Bug: angleproject:370937467
Change-Id: I0bda5453b95ddf924ba0583de346902b333603a6
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6037776
Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
1f0ac74a
|
2024-11-20T16:43:50
|
|
Translator: Remove SubpassInputMS
ANGLE never generates multisampled input attachments, because it cannot
know if the shader will be used with a single-sampled or multisampled
framebuffer.
The SPIR-V transformer takes care of changing the type and ops to be
multisampled if needed.
Bug: angleproject:37093746
Change-Id: Ic9c3057536c0a5d543512dbd3c347033453a29f4
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6039437
Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
|
|
c4533e0a
|
2024-11-20T16:21:40
|
|
Translator: Remove the `double` base type
This is a desktop GL type, whose removal was left out of b16d105fc6.
Bug: angleproject:37093746
Change-Id: I185beef71099aafc3e350efc3dad019e2a72c0e6
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6039436
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
|
|
3515113e
|
2024-06-24T15:10:28
|
|
CL/Vulkan: Remove redundant state in CLImageVk
Much of the image state can be queried from the front-end object.
Removing all the redundant state from CLImageVk.
Bug: angleproject:378103913
Change-Id: I7783674da891d1af768375e5d8efd1937c4a4177
Signed-off-by: Gowtham Tammana <g.tammana@samsung.com>
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6004687
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
10e073a2
|
2024-06-07T11:04:02
|
|
CL/Vulkan: Capture an event for async build task
Capture an event that could be waited on for the async build events.
Bug: angleproject:378103914
Change-Id: I19fcc20a4fe034a8f0429edd56c84cf3269201ba
Signed-off-by: Gowtham Tammana <g.tammana@samsung.com>
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6005392
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
ce53aff0
|
2024-11-05T16:57:57
|
|
Vulkan: Add per descriptorSet LRU cache eviction
Before this CL, the descriptor set cache eviction is at the pool level.
Either the entire pool is deleted or not. It is also not LRU based.
This CL adds a per descriptor set cache eviction and reuse evicted
descriptorSet before allocating a new pool. This eviction is LRU based
so that it is more precise. The mCurrentFrameCount is passed into
various API so that it can make eviction decision based on the frame
number. In this CL, anything not been used in last 10 frames will be
evicted and recycled before allocate a new pool.
Since eviction is based on individual descriptor set, not by pool,
ProgramExecutableVk no longer needs to track the DescriptorSetPool
object. mDescriptorPools has been removed from ProgramExecutableVk
class.
As measured by crrev.com/c/5425496/133 This LRU linked list maintenance
does not add any measurable time difference, but reduces total
descriptorSet pool count by one third (from 75 down to 48).
running test name: "TracePerf", backend: "_vulkan", story:
"batman_telltale"
Before this CL:
cacheMissCount: 200, averageTime:23998 ns
cacheHitCount: 1075445, averageTime:626 ns
descriptorSetEvicted: 0, descriptorSetPoolCount:75
Average frame time 3.9262 ms
After this CL:
cacheMissCount: 200, averageTime:23207 ns
cacheHitCount: 1025415, averageTime:602 ns
descriptorSetEvicted: 102708, descriptorSetPoolCount:48
Average frame time 3.9074 ms
BYPASS_LARGE_CHANGE_WARNING
Bug: angleproject:372268711
Change-Id: I84daaf46f4557cbbfdb94c10c5386001105f5046
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5985112
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Commit-Queue: Charlie Lao <cclao@google.com>
|
|
ecfa4874
|
2024-11-20T00:41:03
|
|
Assert no GL errors at the end of image tests
Bug: angleproject:42265697
Change-Id: Iac9241d0fbe384b10fc0b0f6b2f764efca674ac3
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6032805
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Commit-Queue: Yuxin Hu <yuxinhu@google.com>
Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
3b3783bc
|
2024-11-18T16:42:47
|
|
Reland "Possibly fix FixedQueue.ConcurrentPushPop flakiness"
This is a reland of commit 84b175546ec95af14b6a85def7d5b2e81ae5a88a
Reverted CL increased flakiness because of incorrect `ASSERT`
expressions present in the original code and which should have been also
corrected. The fix itself had no new issues.
This CL additionally fixes these `ASSERT` expressions.
Suspected source of flakiness in both tests is the possibility to call
`q.pop()` while `q.empty()` is true. Original fix added check for
`enqueueThreadFinished` to break from the loop.
New fix instead of checking for `enqueueThreadFinished` to break from
the loop, checks if `q.empty()` is true. This change allows processing
already pushed values even if the enqueue thread already finished. It is
applied to both tests.
Additional changes not related to fixing the flakiness:
- `std::time()` replaced with `angle::GetCurrentSystemTime()` because
`std::time_t` may be integer (Android) while `timeOut` is double. This
is confusing. For example, if set `timeOut = 0.5` - actual timeout
will still be one second.
- fix enqueue thread to actually reach the maximum capacity.
- improve dequeue thread to prevent updating to the same of greater
capacity.
- add extra `ASSERT` checks.
- make code in both tests consistent with each other.
Original change's description:
> Possibly fix FixedQueue.ConcurrentPushPop flakiness
>
> Queue may be empty when `enqueueThreadFinished` become true.
>
> This is same as the previous fix for `ConcurrentPushPopWithResize`:
> https://chromium-review.googlesource.com/c/angle/angle/+/5823039
>
> Change also removes always true expressions from the
> `ConcurrentPushPopWithResize` test.
>
> Bug: b/302739073
> Change-Id: I82ee294208d918b7007d85b2cd90e2642fc1e54f
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6030517
> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
> Commit-Queue: Igor Nazarov <i.nazarov@samsung.com>
> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Bug: b/302739073
Change-Id: I8f3840326f3fceed044fa188245772a5ff7b638d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6038334
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Igor Nazarov <i.nazarov@samsung.com>
|
|
99aac4b9
|
2024-11-20T09:24:07
|
|
Capture/Replay: Remove implied exts from RequiredExtensions
Support for the EXT_compressed_ETC1_RGB8_sub_texture extension can
be implied from the presence of OES_cmpressed_ETC1_RGB8_texture,
so remove it from the trace's RequiredExtensions entry in its json file.
Test: angle_trace_tests --gtest_filter=*need_for_speed_no_limits*
Bug: b/380026310
Change-Id: Ia80ae4d78c1f7f7f246ce7a5cfd00bfc0e9734a4
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6037487
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Mark Łobodziński <mark@lunarg.com>
|
|
17904b43
|
2024-11-19T16:37:43
|
|
Vulkan: Restrict EGL_ANDROID_front_buffer_auto_refresh support
Original functionality supported scenario
where `VK_PRESENT_MODE_SHARED_DEMAND_REFRESH_KHR` and
`VK_PRESENT_MODE_SHARED_CONTINUOUS_REFRESH_KHR` modes may be
incompatible, requiring a call to `deferAcquireNextImage()` method in
order to cause swapchain recreation without swap.
The `eglSurfaceAttrib()` may be called from any thread, this means that
`deferAcquireNextImage` may be also called from any thread - which is
not thread safe.
This CL restricts exposing the extension only when
VK_EXT_swapchain_maintenance1 extension is also supported, where
present modes expected to be compatible on Android, so no need for
swapchain recreation and therefore - `deferAcquireNextImage()` call.
Not requiring to call `deferAcquireNextImage()` improves thread safety
of `WindowSurfaceVk::setAutoRefreshEnabled()` method.
There is still race condition accessing `mDesiredSwapchainPresentMode`
but it will be addressed in a separate CL.
Bug: angleproject:42265697
Bug: angleproject:379762019
Change-Id: I4631c736188eb52a5476e1a2bed3439d49cf12d4
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6035187
Commit-Queue: Igor Nazarov <i.nazarov@samsung.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
c4ec8dbb
|
2024-11-19T17:01:42
|
|
Vulkan: Expose EGL_ANDROID_front_buffer_auto_refresh
Original CL implemented the functionality without exposing the
corresponding extension.
This CL exposes the extension on Android and adds necessary validation.
Bug: angleproject:42265697
Change-Id: Ia01c68f04c41a850e531aa7b889de9e561f3a9db
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6035186
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
74f74b63
|
2024-11-14T10:07:34
|
|
Vulkan: Add ContextVk::onFramebufferBoundary() function
This makes a more formal API to track frame boundary. Also adds a
uint32_t mCurrentFrameCount to track the total number of frames rendered
so that we could use for heuristic purpose.
Bug: angleproject:372268711
Change-Id: I153497403ed0d8fde18f1786186ce600df60c514
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6022549
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Charlie Lao <cclao@google.com>
|
|
087cc411
|
2024-11-14T11:05:14
|
|
Vulkan: Add mRenderer to ShareGroupVk class
For convenience, instead of passing renderer to shareGroupVk's API, keep
mRenderer in SharGroupVk class at constructor call.
Bug: angleproject:372268711
Change-Id: I9534f7dbe24121856221b89ccf8fc6a353bbb0cc
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6022548
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Charlie Lao <cclao@google.com>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
|
|
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>
|
|
d8e183ab
|
2024-11-19T13:23:35
|
|
Skip the antutu_refinery perf test on Windows/Intel
This test times out on this bot due to the excessive complexity and
memory requirements of the trace.
Bug: angleproject:379886383
Change-Id: I1ecf12429cd70f436fc83cf89a84c225d315aac6
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6033296
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
e961f7ab
|
2024-11-19T16:28:07
|
|
Skip KHR-GLES31.core.texture_stencil8.multisample on S22
Bug: angleproject:379700129
Change-Id: Idc6a1fef8c66b375cae12409b54c2ead1159ea29
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6035510
Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Auto-Submit: Yuly Novikov <ynovikov@chromium.org>
|
|
d81d29e1
|
2024-11-19T15:53:16
|
|
Revert "Possibly fix FixedQueue.ConcurrentPushPop flakiness"
This reverts commit 84b175546ec95af14b6a85def7d5b2e81ae5a88a.
Reason for revert: more flakiness seen on Pixel 6 and Samsung S22
Original change's description:
> Possibly fix FixedQueue.ConcurrentPushPop flakiness
>
> Queue may be empty when `enqueueThreadFinished` become true.
>
> This is same as the previous fix for `ConcurrentPushPopWithResize`:
> https://chromium-review.googlesource.com/c/angle/angle/+/5823039
>
> Change also removes always true expressions from the
> `ConcurrentPushPopWithResize` test.
>
> Bug: b/302739073
> Change-Id: I82ee294208d918b7007d85b2cd90e2642fc1e54f
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6030517
> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
> Commit-Queue: Igor Nazarov <i.nazarov@samsung.com>
> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Bug: b/302739073
Change-Id: Iefd994d5a69d2f4add13485d586384814e5e3dd5
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6033739
Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Auto-Submit: Yuly Novikov <ynovikov@chromium.org>
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
|
|
42f9c200
|
2024-11-19T08:50:35
|
|
Comments: www.anglebug.com -> anglebug.com
The former doesn't work.
Bug: None
Change-Id: Ib16b005adb5b61a3a1277588e240c3d68705205c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6034293
Reviewed-by: Cody Northrop <cnorthrop@google.com>
|
|
987cc0de
|
2024-08-06T12:16:37
|
|
Vulkan: Add release utility for BufferViewHelper
Add a release helper that doesn't require ContextVk for
BufferViewHelper.
Bug: angleproject:378103913
Change-Id: Ib468d152501ecaec1dd71c9c6ed5527b73a1afa5
Signed-off-by: Gowtham Tammana <g.tammana@samsung.com>
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6004686
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
dc8b2e2b
|
2024-06-26T12:44:06
|
|
CL: Pass in memory properties from cl entry point
The spec requires the valid properties to be reported as by
`clGetMemObjectInfo()`. So pass in the properties as is post their
validation.
Bug: angleproject:378017028
Change-Id: I8b7ddc9d0e71ea56b2f8d81764fc3a21cee6bef4
Signed-off-by: Gowtham Tammana <g.tammana@samsung.com>
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6004684
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
743dd7bf
|
2024-11-06T12:29:36
|
|
CL: Add some event/memory helper functions
Add the following helper functions on the CL frontend
- check for user event
- check for CL image/buffer types
And on the VK backend
- For CLBufferVk/CLImageVk much of the state is encoded in the
front-end object. Add utility functions to get handle to them.
- check for user event dependency in commandqueue
Bug: angleproject:378103912
Change-Id: Ie76b44445ce2db3b5a49ccc6afe02e75c474875d
Signed-off-by: Gowtham Tammana <g.tammana@samsung.com>
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6004683
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
518e162e
|
2024-11-15T00:07:14
|
|
Fix validation for 3D depth/stencil textures
They should fail with GL_INVALID_OPERATION:
> Textures with a base internal format of DEPTH_COMPONENT, DEPTH_STENCIL
> or STENCIL_INDEX are supported by texture image specification
> commands only if target is TEXTURE_2D, TEXTURE_2D_MULTISAMPLE,
> TEXTURE_2D_ARRAY, TEXTURE_2D_MULTISAMPLE_ARRAY, TEXTURE_CUBE_MAP or
> TEXTURE_CUBE_MAP_ARRAY. Using these formats in conjunction with any
> other target will result in an INVALID_OPERATION error.
Bug: angleproject:379674017
Change-Id: Icdd4cea24601f6744a3a85bdf8ef07946569a16f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6019830
Reviewed-by: Alexey Knyazev <lexa.knyazev@gmail.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
174694c1
|
2024-11-16T02:15:55
|
|
Manual roll VK-GL-CTS from f674555ab03e to b27686793f88 (29 revisions)
Manual roll requested by yuxinhu@google.com
https://chromium.googlesource.com/external/github.com/KhronosGroup/VK-GL-CTS.git/+log/f674555ab03e..b27686793f88
2024-11-14 syoussefi@google.com Use std functions instead of de*
wrappers (deString.h)
2024-11-14 mateusz.bahyrycz@mobica.com Add coverage for instanced draws
with tessellation
2024-11-14 rgarcia@igalia.com Test alpha-to-coverage with sample shading
2024-11-14 mateusz.gawrysiak@intel.com Fixed ycbcr_sampler.graphics
array tests by adding combinedImageSamplerDescriptorCount multiplication
2024-11-14 scerveau@igalia.com EncodeTests: rework the result queries
2024-11-14 scerveau@igalia.com EncodeTests: set the decoder to use
layeredDpb
2024-11-14 mateusz.gawrysiak@intel.com Fix imageFormatProperties check
before VK_FORMAT_G8_B8R8_2PLANE_420_UNORM array creation
2024-11-13 yuxinhu@google.com Add #include <cmath> in
glcTextureStorageTests.cpp
2024-11-08 marcin.hajder@mobica.com Port KC-CTS tests to VK-GL-CTS
(draw_buffers_test1), PART 14
2024-11-08 lorenzo@khronosgroup.org Merge vk-gl-cts/opengl-es-cts-3.2.11
into vk-gl-cts/main
2024-11-08 piotr.byszewski@mobica.com Test operations which must always
preserve denorms
2024-11-08 ziga@lunarg.com Add image concurrent copy tests
2024-11-08 piotr.byszewski@mobica.com Test DRLR with DS attachments that
use one aspect
2024-11-08 ziga@lunarg.com Add host image copy tests with array and
depth offsets
2024-11-08 benjamin.cheng@amd.com Create encode DPB image without
TRANSFER_SRC usage
2024-11-08 benjamin.cheng@amd.com Fix video-profile-independent DPB
creation
2024-11-08 lionel.g.landwerlin@intel.com Enable device-only events in
sync2 tests
2024-11-08 kamil.goras@mobica.com
KHR-Single-GL46.enhanced_layouts.varying_locations breaks spec and
requires more than GL_MAX_GEOMETRY_INPUT_COMPONENTS components in
geometry stage for some test cases. Such cases are skipped.
2024-11-08 marcin.hajder@mobica.com Port KC-CTS tests to VK-GL-CTS
(texture_stencil8_gl44), PART 16
2024-11-08 gleese@broadcom.com Revert "Fix support check for dynamic
state tests"
2024-11-08 lorenzo@khronosgroup.org Merge vk-gl-cts/vulkan-cts-1.3.10
into vk-gl-cts/main
2024-11-04 gleese@broadcom.com Fix frag_coord_conventions test when not
supported
2024-11-01 michal.jakubek@mobica.com Make
vktComputeBasicComputeShaderTests.cpp buildable
2024-10-31 mateusz.bahyrycz@mobica.com Remove commented code
2024-10-31 piotr.byszewski@mobica.com GPL with unusual multisample
states
2024-10-31 mateusz.bahyrycz@mobica.com Add coverage for indirect draws
with tessellation
2024-10-31 javed@igalia.com Add coverage for mesh shader with GPL/ESO
2024-10-31 marcin.hajder@mobica.com Port KC-CTS tests to VK-GL-CTS
(texture_storage_compressed_texture_data), PART 15
2024-10-31 lorenzo@khronosgroup.org Merge vk-gl-cts/vulkan-cts-1.3.10
into vk-gl-cts/main
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,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: None
Tbr: solti@google.com,yuxinhu@google.com
Change-Id: I617a3b8a149bd157e3d922b0dc726bf395a4b27e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6027274
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
828e2d19
|
2024-11-16T14:41:10
|
|
Tests: Add Block Blast trace
Test: angle_trace_tests --gtest_filter="*block_blast*"
Bug: b/379456572
Change-Id: I751b69320f68dc4afaa6fdd29e054fb543c43d22
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6026306
Commit-Queue: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Roman Lavrov <romanl@google.com>
|
|
f21cfcd6
|
2024-11-07T14:54:12
|
|
Add a corner case for framebuffer fetch
Add a defect test to test that when a shader reads from
gl_LastFragDepthARM or gl_LastFragStencilARM and no image is attached to
the depth or stencil attachment, respectively, results should be
undefined, instead of generating an error.
Bug: angleproject:376572258
Change-Id: I7ea0e5021ec370374c4da532b0fa58277f3e959e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5999877
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
8a2b60b2
|
2024-11-06T17:13:16
|
|
Add stubs for GL_EXT_texture_storage_compression
Bug: angleproject:352364583
Change-Id: I607c19c0c9bec7f0e3dd325e44b42e73f826b61c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5998012
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
84b17554
|
2024-11-18T16:42:47
|
|
Possibly fix FixedQueue.ConcurrentPushPop flakiness
Queue may be empty when `enqueueThreadFinished` become true.
This is same as the previous fix for `ConcurrentPushPopWithResize`:
https://chromium-review.googlesource.com/c/angle/angle/+/5823039
Change also removes always true expressions from the
`ConcurrentPushPopWithResize` test.
Bug: b/302739073
Change-Id: I82ee294208d918b7007d85b2cd90e2642fc1e54f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6030517
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Igor Nazarov <i.nazarov@samsung.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
51ff063c
|
2024-11-16T12:03:28
|
|
Skip real_racing3 trace on Linux NVIDIA
SYNC-HAZARD-WRITE-AFTER-WRITE with 535.183.01 driver
Bug: angleproject:377923479
Change-Id: I5791445bc36dacd6b71cd001d4c454d8b495f7bf
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6022951
Auto-Submit: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
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>
|
|
33dc1606
|
2024-11-16T11:39:22
|
|
Skip end2end failures on S22
FramebufferFetchES31.DrawNonFetchDrawFetchInStorageBufferThenClear_ARM
FramebufferFetchES31.DrawNonFetchDrawFetchInStorageBufferThenClear_Coherent
FramebufferFetchES31.MultiSampled
Bug: angleproject:377923479
Change-Id: I85d781cff5f87dc2d6bdacce5759bcc93c8cd702
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6025225
Auto-Submit: Yuly Novikov <ynovikov@chromium.org>
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
|