|
cfeea900
|
2025-08-12T17:23:32
|
|
Vulkan: Don't require COLOR_ATTACHMENT_BLEND_BIT for YUV format
The only way to render to yuv texture is via EXT_yuv_target, but
EXT_yuv_target spec
https://registry.khronos.org/OpenGL/extensions/EXT/EXT_YUV_target.txt
explicitly said you have to disable blend: "Blending applies only if the
color buffer has a fixed-point format and non YUV space format color
buffer.". Thus when we check if format supports rendering, we should
exclude VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT if its YUV format.
Bug: b/432398245
Change-Id: If5bfa58db30465ab707f63f34dd6487d8a03652f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6843926
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
|
|
ef4bc113
|
2025-08-07T14:20:08
|
|
Add DIR_METADATA to specific buganizer_public component_id
Currently LUCI Analysis file bugs for angle test flaky issue under the
top level Chromium component, example: http://crbug.com/401993176
These bugs should filed directly under the Public Trackers > ANGLE, to
avoid engineers updating the component manually.
Bug: b/437142709
Change-Id: Ie8fa4f02fea10c49cb94d736f674f655fe9f791b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6829151
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
9d1edb4e
|
2025-08-08T18:21:03
|
|
Fix the assert on texture target to allow GL_TEXTURE_CUBE_MAP_ARRAY
Add anend2end test to verify glCopyImageSubData works.
Bug: b/419863436
Test: TextureCubeTestES32.CopyImageSubDataCubeMapArray
Change-Id: I2a569680ed20f05b4182045cb4bdf08d4c66d8df
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6832639
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Xiang Wang <xwxw@google.com>
|
|
7e28089b
|
2025-07-31T18:44:01
|
|
WGSL: support bvecs in uniforms
WGSL does not allow booleans in the uniform address space.
The last CL uses u32s to represent bools in the uniform address
space, and this CL uses vecN<u32> to represent bvecN.
Bug: angleproject:376553328
Change-Id: Ibf9f1fbf230ca03dd3d4661ba599e5fb1cb26ac4
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6808955
Reviewed-by: Liza Burakova <liza@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Matthew Denton <mpdenton@chromium.org>
|
|
f92d6f4b
|
2025-04-07T17:42:46
|
|
CL: Route API trace to logcat for Android
For better logging when running Android APKs
Bug: angleproject:433980940
Change-Id: Ib924262a92728d0a9711a5b98f051634341859d4
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6785090
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Austin Annestrand <a.annestrand@samsung.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
5fb77159
|
2025-08-12T15:21:25
|
|
Add stubs for GL_ARM_texture_unnormalized_coordinates
Bug: angleproject:352345942
Change-Id: I05e2b0c83f07bfe35eb58fc657b834f6253d4cb9
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6839660
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Auto-Submit: Shufen Ma <Shufen.Ma@arm.com>
Commit-Queue: Charlie Lao <cclao@google.com>
Reviewed-by: Charlie Lao <cclao@google.com>
|
|
316e6831
|
2025-08-08T14:14:20
|
|
Vulkan: Support KHR versions of surface/swapchain_maint1
They are straight promotions of the EXT versions of the extensions.
Bug: angleproject:430106352
Change-Id: I889dfda99d8ad35de1672914e7cc73b2879be6a2
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6832392
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
2a5ad67c
|
2025-08-12T10:23:10
|
|
Tests: Skip CapturedTestCL to unblock vulkan-deps roll
Test: angle_end2end_tests --gtest_filter=CapturedTestCL.*
Test: capture_tests.py
Bug: angleproject:438195622
Change-Id: I9dd0f861ce4325c29305aa8de598f3434ec86ab3
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6842935
Auto-Submit: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
b2e2766c
|
2025-08-12T11:08:46
|
|
Translator: Reject bool < bool
This is not allowed per the GLSL ES spec.
Bug: chromium:437983671
Change-Id: I9bd46718a35917dcdf6382cd51253ca2b68d5636
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6842555
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
|
|
3643c21d
|
2025-08-11T15:02:18
|
|
Suppress oclcts NonUniform Workgroup failures pt.2
Suppress 2 other non-uniform workgroup
smoke tests (as a stop-gap) until we root-cause
the issue.
Unblocks:
https://chromium-review.googlesource.com/c/angle/angle/+/6831861/1
Bug: angleproject:42267085
Change-Id: I956d3706e160f38e33e5789e70abdc343fac8b54
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6838877
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
555b2328
|
2025-08-08T13:32:13
|
|
BindVertexBuffer should pick up buffer change in other context
Buffer is modified in the first context and calling glBindVertexBuffer()
of the same buffer on the second context should pick up the buffer
changes made in first context.
Bug: b/433331119
Change-Id: I694f66b38b11b87e0efa8d9b939f8384120823af
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6830125
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Commit-Queue: Charlie Lao <cclao@google.com>
|
|
9a23635c
|
2025-08-09T18:17:33
|
|
Tests: Add Frost and Flame trace
Test: angle_trace_tests --gtest_filter="*frost_and_flame*"
Bug: b/437598600
Change-Id: Icf8c5ce3e0e1f0cadc442aedc8b38a70efb1e3f7
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6834277
Commit-Queue: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Mark Łobodziński <mark@lunarg.com>
|
|
5f5baf86
|
2025-08-08T10:22:07
|
|
Reduce WebGLCompatibilityTest::L32FTextures test time
This test is looping formats. Within each loop it compile the same
program which makes this test take very long to finish. This CL caches
the programs so that it only compile/link once. This reduce this test
run time on my local gLinux box from 1633 ms to 326 ms.
Bug: angleproject:40096431
Change-Id: I32d7ad4fd25e1e4130766578fff21b1a2058c183
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6830119
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
|
|
9367369d
|
2025-08-08T16:56:58
|
|
Tests: Add Kingshot trace
Test: angle_trace_tests --gtest_filter="*kingshot*"
Bug: b/437417676
Change-Id: I6c4a7a095266f6f99b0810854acbbfb50024d52f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6832638
Reviewed-by: Solti Ho <solti@google.com>
Auto-Submit: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
|
|
ca3d732d
|
2025-07-24T16:22:31
|
|
WGSL: support bool in uniforms
WGSL does not allow booleans in the uniform address space.
This CL changes the translator to substitute u32 for bool
in the uniform address space, and convert it to bool on use.
Arrays of bools are obviously arrays of u32s, and those
will need special conversion functions to convert the entire
array<u32> to array<bool> if necessary.
This also includes the optimization of an array<bool> in a
uniform--when indexing into it, only the indexed element
will be converted to a native bool, instead of converting
the entire array and then indexing.
Note that substituting u32 for bool matches std140, so this
change requires no changes to layout of uniforms.
Also note that WGSL really likes explicit casts, so there's
not really a way to avoid inserting explicit casts everywhere
when using u32.
Bug: angleproject:376553328
Change-Id: I8f72e55c6b401c28ff622622df7a450b7032721f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6785609
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Matthew Denton <mpdenton@chromium.org>
Reviewed-by: Liza Burakova <liza@chromium.org>
|
|
41e44587
|
2025-08-06T20:04:23
|
|
BufferBindingMask in VertexArray::onBufferChanged are same buffer
The bufferBiningMask bits received from VertexArray::onBufferChanged()
must point to the same buffer, in case of one buffer is bound to
multiple binding points. We can do some minor optimization here when we
loop the BufferBindingMask bits: We only need to calculate hasConflict
once when we call updateCachedTransformFeedbackBindingValidation().
Bug: b/433331119
Change-Id: I9f7cfa543deb46cd369915293b97f5d3122e1708
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6826782
Commit-Queue: Charlie Lao <cclao@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
|
|
d63cff37
|
2025-08-06T13:31:02
|
|
Fix bug when rebind the same buffer not pick up the change
Buffer is modified in one context and rebind the same buffer on the
second context should pick up the buffer changes.
Bug: b/433331119
Change-Id: I8085fe826c339692881f2d3d6515efb19bbc4a88
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6825767
Commit-Queue: Charlie Lao <cclao@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
|
|
8796f68c
|
2025-08-07T14:25:19
|
|
Tests: Add Top Heroes: Kingdom Saga trace
Test: angle_trace_tests --gtest_filter="*top_heroes_kingdom_saga"
Bug: b/437162076
Change-Id: Ia690266b34f0da0c23fbd099ed28f20657529644
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6828593
Auto-Submit: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
|
|
7c8e357c
|
2025-07-15T17:24:25
|
|
Fix NULL handling in glGetAttachedShaders and ShaderPrecisionFormat
Fix the case where passing NULL to the shaders parameter in
getAttachedShaders and to the range and precision parameters in
getShaderPrecisionFormat would trigger assertions.
Bug: angleproject:431900689
Change-Id: I0d01bbb0d13f9a4704b47066c85ac7c1368534a0
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6733749
Auto-Submit: Tingwei Guo <tingwei.guo@arm.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Charlie Lao <cclao@google.com>
|
|
b778f1ce
|
2025-08-07T15:31:01
|
|
Balance test shards to 10 minutes
Shards increased due to googletest roll:
angle_end2end_tests on Win ASAN: 10 -> 14
angle_deqp_gles3_tests on Linux ASAN and TSAN: 8 -> 11
Drive-by shards increase for slowness which was not investigated:
angle_end2end_tests:
on Linux Intel and Windows and Linux NVIDIA: 2 -> 3
on Win Intel experiment (UHD 770, 2 processes): 3 -> 5
on Win Intel (UHD 630, 1 process): 4 -> 10
angle_restricted_trace_gold_tests
on Linux Intel and Windows and Linux NVIDIA: 1 -> 3
on Win Intel UHD 770: 1 -> 4
on Win Intel UHD 630: 1 -> 5
angle_trace_perf_vulkan_tests
on Win Intel UHD 770: 2 -> 4
on Win Intel UHD 630: 2 -> 3
Skip EGLDisplayTest.ContextLeakAfterTerminate on Linux Intel,
which started failing with the new sharding.
Bug: angleproject:428697844, angleproject:437259106
Change-Id: I3ba458aa7b68bddf9786bb9fcbc2a3ed7479556c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6827389
Auto-Submit: Yuly Novikov <ynovikov@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
|
|
d8dc3cc2
|
2025-08-02T12:02:20
|
|
Remove shared context lock from glVertexAttrib{I}Format
This CL removes shared context lock from glVertexAttribFormat() and
glVertexAttribIFormat() APIs, since they no longer access anything
outside VertexArrayPrivate. The main problem I had run into is
validation code. Before this CL, ValidateIntegerVertexFormat() needs
context's mStateCache for mCachedVertexAttribTypesValidation and
mCachedIntegerVertexAttribTypesValidation. Given these two cached value
are constant after initialization, in this CL, I have moved them to
PrivateStateCache. PrivateStateCache argument is added to
ValidateVertexAttribFormat() and ValidateVertexAttribIFormat() to get
them access to mCachedIntegerVertexAttribTypesValidation.
Bug: b/433331119
Change-Id: Ifc3fbed32b4d3722c335dd2c393bc6519ed0b544
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6822032
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Charlie Lao <cclao@google.com>
|
|
61ddca79
|
2025-08-07T11:16:29
|
|
Tests: Add Gossip Harbor ANGLE trace
Test: angle_trace_tests --gtest_filter=*gossip_harbor
Bug: b/437087719
Change-Id: Ia0d313b3e34074df8e24ad3eae63b4718ed2bfc7
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6828000
Commit-Queue: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
|
|
c39f1d0f
|
2025-08-01T15:44:11
|
|
Move updateCachedTransformFeedbackBindingVali* to VertexArray
Since updateCachedTransformFeedbackBindingValidation needs buffer
argument, this is now moved from VertexArrayPrivate to VertexArray class
to make it obvious. Also mCachedTransformFeedbackConflictedBindingsMask
is per bindingIndex, so I have changed it from AttributeMask to
VertexArrayBufferBindingMask.
Bug: b/433331119
Change-Id: I321267637ba661b18ef236260a17e6e8f7043eb9
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6814158
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Commit-Queue: Charlie Lao <cclao@google.com>
|
|
ae4aead5
|
2025-07-24T16:35:38
|
|
Remove sharedContextLock from glVertexAttrib{Divisor|Binding}
With prior CLs all the functions used by glVertexAttribDivisor*,
glVertexBindingDivisor and glVertexAttribBinding only access
VertexArrayPrivate. This CL removes shared context lock from these APIs.
Bug: b/433331119
Change-Id: Ib1632797c53d2cd7a31c21e93c0e69385c71a27f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6814157
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Commit-Queue: Charlie Lao <cclao@google.com>
|
|
328a205f
|
2025-08-07T11:02:12
|
|
Revert "Fix bug when reattach the same buffer not pick up the change"
This reverts commit a93f4c8d29c8d214e4823032e6e2c061d5dab1b1.
Reason for revert: https://issues.chromium.org/437092065
Bug: b/433331119
Original change's description:
> Fix bug when reattach the same buffer not pick up the change
>
> Added a test that the same buffer is used in two contexts. Buffer is
> modified in one context and reattached the same buffer on the second
> context's vertex array should pick up the buffer changes. This test
> exposed the bug and it is fixed in this CL.
>
> Bug: b/433331119
> Change-Id: Ia5675581857a642fe9727f196326da9af43d52cf
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6821923
> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
> Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
> Commit-Queue: Charlie Lao <cclao@google.com>
Bug: b/433331119
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Change-Id: Iaa14b5dbbdb02c69bb060d5073072ec6ddd473ce
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6827998
Auto-Submit: Charlie Lao <cclao@google.com>
Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
|
|
1943d505
|
2025-08-06T10:03:45
|
|
Tests: Add Seaside Escape ANGLE trace
Test: angle_trace_tests --gtest_filter=*seaside_escape
Bug: b/436801950
Change-Id: Iedc4b03317ef02585ccf86b54494f1938379a68a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6823580
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
Auto-Submit: Mark Łobodziński <mark@lunarg.com>
|
|
a93f4c8d
|
2025-08-05T16:45:21
|
|
Fix bug when reattach the same buffer not pick up the change
Added a test that the same buffer is used in two contexts. Buffer is
modified in one context and reattached the same buffer on the second
context's vertex array should pick up the buffer changes. This test
exposed the bug and it is fixed in this CL.
Bug: b/433331119
Change-Id: Ia5675581857a642fe9727f196326da9af43d52cf
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6821923
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Commit-Queue: Charlie Lao <cclao@google.com>
|
|
7a193b06
|
2025-08-06T13:50:50
|
|
Unthrottle validation error messages for all of Chromium
Chromium uses the debug callback to check if there were any errors
instead of glGetError(). With the previous change that throttled error
messages, some webgl tests failed to correctly recognize that an invalid
call did actually fail validation, as well as passthrough command
decoder fuzzer tests.
Bug: angleproject:423956139
Bug: chromium:436292490
Change-Id: Ida254c9bdd2137afcc9483cc1860254781338dbc
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6823824
Commit-Queue: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
88de021d
|
2025-08-01T17:15:22
|
|
tests: Skip PbufferDifferentConfig on system EGL
Skip the test EGLBackwardsCompatibleContextTest.PbufferDifferentConfig
when testing the system EGL, because not all platforms expose
ANGLE-specific extensions.
Bug: b/409384875
Test: angle_end2end_tests \
--gtest_filter=EGLBackwardsCompatibleContextTest.PbufferDifferentConfig/ES2_Vulkan_NoFixture
Change-Id: I1556d7981d1e6c8c6fc1803cafcb76fa1052dcef
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6814161
Commit-Queue: Tim Van Patten <timvp@google.com>
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
|
|
bc7e86b1
|
2025-07-30T14:55:34
|
|
tests: RequestedRendererCreated: Get created context version
If the driver being tested does not support the ANGLE extension
EGL_ANGLE_create_context_backwards_compatible, then the Context version
returned may not match the requested version.
Update the test RendererTest.RequestedRendererCreated to query the
current Context's version if the extension is not supported so the
renderer string is checked against the correct value. Continue enforcing
the renderer string has the expected value if the extension is
supported.
Bug: b/409384875
Test: angle_end2end_tests
--gtest_filter=RendererTest.RequestedRendererCreated/*
Change-Id: Iad1b6d36a31b7d79e8fc5fae9e4cc9769b55edb8
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6803326
Commit-Queue: Tim Van Patten <timvp@google.com>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
c2316adb
|
2025-08-05T10:43:09
|
|
Add support for ARM to expectations file
Add support for skipping tests on ARM devices with the tag "ARM".
Bug: b/279980674
Change-Id: If310955c5dfb2af19493f8af70f4f6c00c97fcc9
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6821832
Commit-Queue: Tim Van Patten <timvp@google.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
|
|
da8462d4
|
2025-08-06T05:44:28
|
|
Unthrottle validation error messages in WebGL
Chromium uses the debug callback to check if there were any errors
instead of glGetError(). With the previous change that throttled error
messages, some webgl tests failed to correctly recognize that an invalid
call did actually fail validation.
Bug: angleproject:423956139
Bug: chromium:436354527
Change-Id: Ic65761f412d3548fedd63f48d36357c9568c0b53
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6822578
Commit-Queue: Cody Northrop <cnorthrop@google.com>
Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
|
|
f1c6e1a8
|
2025-08-04T19:55:02
|
|
Vulkan: Disable EXT_fragment_shading_rate
Due to a few dEQP failures, this extension will be
temporarily disabled. It can be reverted once the issues
have been resolved.
* Disabled fragmentShadingRateEXT for Vulkan.
Bug: b/436169197
Bug: angleproject:420310117
Change-Id: I94fbbb8b0a0866465e8c67e34c214b465fc35558
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6820702
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
|
|
394df705
|
2025-08-01T14:03:17
|
|
Cache per bufferIndex buffer properties in VertexArrayPrivate
This is another preparation CL. This CL caches per bindingIndex buffer
properties in VertexArrayPrivate: mCachedBufferPropertyMapped and
mCachedBufferPropertyMutableOrImpersistent. The only difference between
these and mCachedMappedArrayBuffers /
mCachedMutableOrImpersistentArrayBuffers is that one indexed by
attribIndex and another is indexed by bindingIndex. With this, when
attribute binding changes, we no longer need to make buffer access. With
this, we can move setVertexAttribBinding and setVertexBindingDivisor
from VertexArray into VertexArrayPrivate class and Context argument is
also removed.
Bug: b/433331119
Change-Id: I666544ee0585727ca92d640f372f5a64d1d85576
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6814156
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Commit-Queue: Charlie Lao <cclao@google.com>
|
|
5f42ce7e
|
2025-08-05T11:57:54
|
|
Enable KHR-GLESEXT tests on bots
* Enabled several bots to run the khr_glesext tests.
* Skipped some failing tests for Vulkan.
Bug: b/436389014
Change-Id: If0c43f508eb04c21307f75c6dc62e3ef30b0556e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6821642
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
|
|
71b7b5ee
|
2025-08-04T18:44:35
|
|
Add KHR-GLESEXT test suite
* Added rules to build new dEQP test binary to run KHR-GLESEXT tests:
angle_deqp_khr_glesext_tests
Bug: b/436389014
Change-Id: I53b74605d3c2a9a5f6a8fece17bc3f7656a6772c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6820701
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
|
|
f3b4b716
|
2025-08-05T14:28:04
|
|
TracePerfTest: Disable debug callbacks for GLES1 on Android
We're seeing nullptr crashes when running GLES1 traces through
the Android EGL loader with debug callbacks enabled.
The callbacks are only enabled for Debug builds.
Current theory is that the loader exposes the extension, but
doesn't actually connect the call for GLES1 contexts.
For now, expand the existing ARM skip to all Android devices.
Test: restricted_trace_perf.py --renderer vulkan -f minetest
Bug: b/352386141
Bug: b/436624755
Change-Id: I8ebe8f53c5efdecb2169ce017886753779ef5219
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6821913
Reviewed-by: Tim Van Patten <timvp@google.com>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
|
|
bafe39e2
|
2025-07-14T16:07:51
|
|
Vulkan: Use BindIndexBuffer2 when available
This Vulkan API becomes available with VK_KHR_maintenance5. In
addition to the original args, it also takes the index buffer size.
* Added the necessary functions to use the following API:
vkCmdBindIndexBuffer2KHR()
* handleDirtyGraphicsIndexBuffer() now uses this API if maintenance5
is available.
Bug: angleproject:394337110
Change-Id: I9a650ac5a033b449da05e0c226e2cfb6df74a75c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6735725
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
Reviewed-by: Charlie Lao <cclao@google.com>
|
|
eca5244d
|
2025-07-30T16:59:16
|
|
Remove buffer from VertexArrayState::setAttribBinding
In later CLs we try to remove shared lock from glVertexAttribBinding().
One of the lockers for that is right now setAttribBinding() references
"buffer" for size. This CL caches the per binding index bufferSize in
VertexArrayPrivate (i.e, std::vector<size_t> mCachedBufferSize).
setAttribBinding() moved from VertexArray to VertexArrayPrivate since it
no longer needs buffer access, but uses mCachedBufferSize instead.
This CL also changes std::vector to std::array for mVertexArrayBuffers
Bug: b/433331119
Change-Id: Ie34aef82379af8f04099cdc20ebdf354d2787a65
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6803592
Commit-Queue: Charlie Lao <cclao@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
|
|
fc0e0397
|
2025-07-31T13:15:45
|
|
Translator: Fix location validation for inout
Without this validation, a shader using an inout variable can
write into a memory beyond the limit set by MaxDrawBuffers when
shader framebuffer fetch is enabled.
* Extended the location check in visitSymbol() to include InOut
qualifiers (EvqFragmentInOut) as well (in ValidateOutputsTraverser).
* Moved RewritePixelLocalStorage() after ValidateOutputs() to avoid
issues related to locations not being specified in the InOut nodes
from the PLS implementation.
* Added a unit test to test that this case results in a compilation
error: GLSLTest_ES3.CompileFSWithInoutLocBeyondMaxDrawBuffers
Bug: chromium:435139154
Change-Id: I44c729377a2e1d3126c2d279172217b2ab92b57b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6806230
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
91fa29be
|
2025-08-04T11:08:20
|
|
Add a feature to force contexts into debug mode
Bug: angleproject:423956139
Change-Id: Ie166b40eb9c241140daf4a35df3391829c64f84e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6817467
Commit-Queue: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
|
|
be43e317
|
2025-07-31T17:40:24
|
|
EXT_external_buffer should have DYNAMIC_DRAW usage
EXT_buffer_storage requires that BUFFER_USAGE must be DYNAMIC_DRAW.
EXT_external_buffer only mentions that the buffer can be sourced from an
external EGLClientBuffer. Therefore, the BUFFER_USAGE should still be
DYNAMIC_DRAW.
Add an end2end test.
Bug: angleproject:436046320
Change-Id: Ie79a1b1f8be0df4566bff26800599b192c4f70b1
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6817076
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Auto-Submit: Aurora Zhang <Aurora.Zhang@arm.com>
Commit-Queue: Yuxin Hu <yuxinhu@google.com>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
|
|
35023c8a
|
2025-07-31T17:40:45
|
|
Throttle validation error messages in release builds
Some apps make invalid but harmless calls every frame. ANGLE inserts a
debug message for each validation failure which comes with a performance
cost. This change makes ANGLE stop reporting validation failure messages
after a handful have already been reported. This is only done when
assertions are disabled and when the context is not a debug context.
Bug: angleproject:423956139
Change-Id: Ie3fb121b2686cddf7da98fc23422b5d12097c6fa
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6805901
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
fa29f604
|
2025-07-02T13:23:31
|
|
Remove sharedContextLock from {Enable|Disable}VertexAttribArray
VertexArray objects are per context objects. In theory they do not need
to protected by shared context lock. The reason we are taking locks
because all these functions end up accessing Buffer object which are
shared. In prior CLs we have removed subject observer usage from
VertexArray which means VertexArray no longer accessed from other
thread. In prior CLs we also split VertexArray into two classes:
VertexArrayPrivate which has no buffer, and VertexArray which is
subclass from VertexArrayPrivate and owns buffer. In this CL,
glEnableVertexAttribArray and glDisableVertexAttribArray calls no longer
take shared context lock. ContextPrivateEnableVertexAttribArray and
ContextPrivateDisableVertexAttribArray are called from these two APIs
and they only have access to StatePrivate. State Private holds a
VertexArrayPrivate pointer, which means they do not have anyway to
access buffer objects. The main challenge I run into here is
mCachedActiveClientAttribsMask, mCachedActiveBufferedAttribsMask,
mCachedActiveDefaultAttribsMask, mCachedHasAnyEnabledClientAttrib,
mCachedNonInstancedVertexElementLimit,
mCachedInstancedVertexElementLimit. These StateCache variable needs to
be updated when these two APIs are called, and calculating these
variable needs access to buffer object. The solution here is adding a
bool mIsCachedActiveAttribMasksValid in the PrivateStateCache so that
instead of immediately update these mCached* variable, we just set
mIsCachedActiveAttribMasksValid to false. Then whenever any of these
mCached* variable is needed, we will check
mIsCachedActiveAttribMasksValid and calculate these cached variables. It
adds one if check when accessing these caches, but the other benefit is
that we may have avoided duplicated calculation when multiple states
changed.
Bug: b/433331119
Change-Id: I3227c72bc40501712db93fb3d540b835f07150b5
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4514436
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Charlie Lao <cclao@google.com>
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
|
|
2ef85c24
|
2025-07-09T17:13:52
|
|
Vulkan: Add support for GL_EXT_fragment_shading_rate
Add support for GL_EXT_fragment_shading_rate.
Bug: angleproject:420310117
Change-Id: I7b368afc45baf8551c222b2569991269117d385b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6726817
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Auto-Submit: Panfeng Hou <panfeng.hou@arm.com>
Reviewed-by: Charlie Lao <cclao@google.com>
|
|
279652e3
|
2025-07-21T16:21:28
|
|
Vulkan: Flush more often due to render pass count
Accumulating too much workload before submission can lead to
stuttering and reduced quality in rendering. In this change,
a threshold is set for the number of render passes in order to
submit the command buffer.
* Added the following to ContextVk: mRenderPassCountSinceSubmit
* It is incremented every time a render pass begins in the command
buffer.
* When the count reaches the following threshold at the RP closure,
there is a submission: kMaxRenderPassCountPerCommandBuffer
* (Currently set to 128)
Bug: b/426439980
Change-Id: I4cde223fb81e6a27a61f78c924d3c9f2a082e995
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6775626
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
|
|
a1d5d102
|
2025-07-22T02:15:43
|
|
WGSL: Allow matrices as in/out vars in shaders
WGSL only supports scalars and vectors in in/out vars in shaders,
matrices will need to be broken into column vectors and then
put back together at the beginning (or end) of the shader.
Arrays also need to be split, which will be done in another CL.
Bug: angleproject:42267100
Change-Id: If1ba28c1b687ae0a3a5a554479f0ff0b5d9df39c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6777201
Commit-Queue: Matthew Denton <mpdenton@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Liza Burakova <liza@chromium.org>
|
|
b0e0c9f6
|
2025-07-30T17:20:25
|
|
tests: DefineTexture2DArrayShouldFail skip on ES3+
The test Texture3DTestES2.DefineTexture2DArrayShouldFail is validating
behavior specific to OpenGL ES 2.0. Skip the test when running on
OpenGL ES 3+ contexts, which is possible when testing the system EGL
which may not support the extension
EGL_ANGLE_create_context_backwards_compatible.
Bug: b/409384875
Test: angle_end2end_tests
--gtest_filter=Texture3DTestES2.DefineTexture2DArrayShouldFail/*
Change-Id: I129ce494c784c3889f21d4950a0302258b423b08
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6803336
Commit-Queue: Tim Van Patten <timvp@google.com>
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
|
|
5fd368aa
|
2025-07-30T14:45:55
|
|
Replace Surface::getWidth/Height() with getSize()
Most places in the code use both `getWidth/Height()` methods at the same
time. On some back-ends it is more optimal to have single method.
For example, `WindowSurfaceWGL` first uses `GetClientRect()` Win32 API
inside each method to then calculate width and hight in each method,
causing repeated `GetClientRect()` call.
The only place where only one of the methods may be used is from
`SurfaceImpl::getUserSize()` when one of the parameters is `nullptr`,
which is only possible from `QuerySurfaceAttrib()` function. This
method is rewritten to use new `getSize()` method and then use whatever
dimensions is requested by the caller. This may cause
`QuerySurfaceAttrib()` inefficiency on some back-ends that get width and
height of the surface differently (`SurfaceEGL` for example). In such
cases `getUserSize()` is overridden to avoid returning a dimension
which is not required.
After this change all places in the code that previously used both
`getWidth/Height()` methods (like `Surface::getAttachmentSize()`) will
be more efficient. The `QuerySurfaceAttrib()`, on the other hand, will
have slightly more overhead on back-ends where base
`SurfaceImpl::getUserSize()` method is used, which only happens on
back-ends with trivial `getSize()` implementation.
Bug: angleproject:397848903
Change-Id: I4a22701a1e62ee4e7d07e77cac5b388050d98e4d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6802440
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Igor Nazarov <i.nazarov@samsung.com>
|
|
fa90dac8
|
2025-07-30T14:04:58
|
|
Revert "Vulkan: Disable VK_EXT_host_image_copy on Fuchsia"
This reverts commit d62db89e1753ece99633143faf4c87b2ff23f96c.
Reason for revert: It's been years, hopefully VVL is updated by now.
Bug: angleproject:8341
Original change's description:
> Vulkan: Disable VK_EXT_host_image_copy on Fuchsia
>
> An old version of VVL is used, causing incorrect failures.
>
> Bug: angleproject:8341
> Change-Id: I0fc605616671343a49fed6ff02ecd67eea672dca
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4873440
> Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org>
> Commit-Queue: Yuxin Hu <yuxinhu@google.com>
> Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Bug: angleproject:8341
Change-Id: Ia7a8875b955a120c80d59f2ae7566648e055eedc
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6804001
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
aa533732
|
2025-07-28T15:56:13
|
|
CreateGeometryShaderInES3: Skip on ES3.1+
When testing the system EGL (angle_test_enable_system_egl = true), the
context returned is the maximally conformant version, which can be
OpenGL ES 3.2. The test GeometryShaderTestES3.CreateGeometryShaderInES3
verifies that geometry shaders cannot be created, assuming it will only
ever be testing ES 3.0 contexts.
1. Add ANGLE_INSTANTIATE_TEST_ES3_AND_ES31_AND_ES32() to instantiate a
test for ES 3.0, 3.1, and 3.2.
2. Update GeometryShaderTestES3.CreateGeometryShaderInES3 to skip when
testing ES 3.1+ contexts.
3. Instantiate GeometryShaderTestES3 for ES 3.0, 3.1, and 3.2.
Bug: b/409384875
Test: GeometryShaderTestES3
Change-Id: Ic5b4dbb167b8de7f24da285b4620f5257ed7df54
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6794766
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Commit-Queue: Tim Van Patten <timvp@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
4189fbb8
|
2025-07-29T17:50:24
|
|
Implement EGL_ANDROID_presentation_time for Vulkan backend
The implementation leverages the VK_GOOGLE_display_timing Vulkan
extension.
Bug: chromium:434977616
Bug: angleproject:42261214
Change-Id: I7e6c64eca6c01e7eb79d41dc5ef63311a7792e2b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6799254
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
92089dce
|
2025-07-29T14:09:24
|
|
Vulkan: Limit maxPerStageTextures to 4096
Many devices support a huge number of samplers (millions) and every one
needs a uniform location, either generated by ANGLE or assigned by the
user. Limit the number of samplers per stage to something reasonable,
which in turn also lowers the number of uniform locations.
This isn't expected to have any practical effect on real apps/users, but
is instead to keep tests for these limits (e.g., dEQP, end2end) within
reason in terms of shader program sizes and compilation times.
Test:
KHR-GLES31.core.explicit_uniform_location.uniform-loc-mix-with-implicit-max
Test: angle_end2end_tests
--gtest_filter=GLSLTest.VerifyMaxVertexUniformVectorsWithSamplers*
Bug: b/434763439
Change-Id: I378483fd869b9f5ebee21760eec4dec2dd793b92
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6798920
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Tim Van Patten <timvp@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
cd969c3e
|
2025-07-28T16:27:12
|
|
Vulkan: Disable clipCullDistance ext if GS/TS
The extension GL_EXT_clip_cull_distance also interacts with geometry
and tessellation shaders. These features are currently in development.
* Added temporary flag: supportsClipCullDistanceInGSAndTS
* Currently disabled by default
* clipCullDistanceEXT can only be enabled if this feature is enabled,
or if the device does not support geometry or tessellation shaders.
* After the features become available, this flag can be removed.
Bug: angleproject:42264006
Bug: b/415288635
Change-Id: Iac5c672fd980710519407c482bc95d2b0019aea2
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6795025
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
|
|
b61038bf
|
2025-07-28T21:55:11
|
|
Tests: Add ANGLE trace for Whiteout Survival
Test: angle_trace_tests --gtest_filter=*whiteout_survival
Bug: b/435147875
Change-Id: I09c429dca130321f2a7cd33abdb0521715637257
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6801131
Commit-Queue: Mark Łobodziński <mark@lunarg.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
|
|
3e52318c
|
2025-06-26T10:46:00
|
|
Vulkan: Ensure always using resolved Window Surface size
`WindowSurfaceVk::getWidth/Height()` methods return cached, previously
resolved Surface size. Using these methods while current Window Surface
size is unresolved may return stale values, causing undesired behavior.
Appropriate ASSERTs were added to these methods to prevent such usage.
Added ASSERTs revealed few places with incorrect usage:
- In `Context::makeCurrent()` to set initial viewport or for capture.
- In `IsPartialBlit()` and `ValidateReadPixelsBase()` validations.
- In `SerializeFramebufferAttachment()` during capture.
Rest of the code was thoroughly checked if it is possible to call
`WindowSurfaceVk::getWidth/Height()` when size is unresolved. All other
places always call these methods after framebuffer state
synchronization, which acquires swapchain images and resolves the
surface size.
Added `ensureSizeResolved()` method that is called during validation and
in the `SerializeFramebufferAttachment()` method. It is possible to use
existing `Framebuffer::syncState()` method as alternative, but this
solution was discarded since it may potentially interfere with
`State::syncDirtyObjects()` method.
The `Surface::getUserSize()` replaces old methods as optimization, to
prevent calling relatively expensive method twice from
`Context::makeCurrent()` to get width and height of the `drawSurface`.
Test: angle_trace_tests --gtest_filter=EGLSurfaceTest.ResizeBeforeMakeCurrent/*
Test: angle_trace_tests --gtest_filter=EGLSurfaceTest.ResizeBeforeMakeCurrentPostSizeQuery/*
Test: angle_trace_tests --gtest_filter=EGLSurfaceTest.ResizeAndReadPixelsRobustANGLE/*
Test: angle_trace_tests --gtest_filter=EGLSurfaceTest.ResizeAndBlitFramebufferANGLE/*
Bug: angleproject:397848903
Change-Id: I082e13d0b8db5fd7d08ff25b102df1f283e1256d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6792928
Commit-Queue: Igor Nazarov <i.nazarov@samsung.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
e286ef78
|
2025-07-24T21:19:54
|
|
ANGLE: Add validation test for GL_RENDERER string format
This change introduces a new ANGLE end-to-end test to validate the
format of the GL_RENDERER string, preventing regressions caused by
downstream modifications.
A recent issue (b/318636997) was caused by a partner modifying the
ANGLE GL_RENDERER string in a way that broke Skia's parser. This
revealed that the string format is a de-facto API contract that must
be enforced.
This new test, RendererTest.ValidateCanonicalFormat, serves as an
automated guardrail and will become part of the Android CTS.
The test enforces the following structural contract:
1. The overall structure must be "ANGLE (Vendor, Renderer, Version)".
2. The separator between components must be ", ".
3. The Vendor, Renderer, and Version components must not be empty.
This ensures the string is parsable by clients like Skia without
over-constraining the content of the component strings, which may
originate from underlying drivers.
The test correctly skips validation on the Null backend, which is not
subject to this contract.
Test: autoninja -C out/Android angle_end2end_tests && out/Android/angle_end2end_tests --gtest_filter="RendererTest.*" --num-retries=0
Bug: b/432805963
Change-Id: I1202074cc9f4413ee88e4534fb72fb71101721e3
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6788522
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Solti Ho <solti@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
b4d84458
|
2025-05-23T18:08:19
|
|
Move Buffer from VertexBinding to VertexArray
In later CL we will not taking shared context lock for certain
VertexArray API calls. VertexArray itself is per context, so this sounds
reasonable to do. The main challenge here is a lot of VertexArray
function end up accessing gl::Buffer object, which could be modified by
other shared contexts. In order to safely not taking the shared context
lock, we need to separate out Buffer object out of VertexArray itself so
that these lockless APIs will take VertexArray that does not have access
to buffer.
In this CL, VertexArray is split into two classes: VertexArrayPrivate is
everything in VertexArray except buffers. VertexArray is a subclass of
VertexArrayPrivate and owns all the buffers. Buffer is removed from
gl::VertexBinding class. In order to let back end access to buffers,
VertexArrayImpl holds a weak reference to
VertexArray::mVertexArrayBuffers (which is a vector of buffers).
Further, VertexArrayBufferBindingMask mBufferBindingMask is moved from
VertexArrayState into VertexArray class well, since it tracks which
index has a non-null buffer. The bulk of change are due to the
VertexARrayImpl constructor change, since it now takes
vertexArrayBuffers argument. Other bulk of changes are due to
VertexBinding no long has the buffer, but you need to get it directly
from VertexArray or VertexArrayImpl.
This CL also reverts some of the change in crrev.com/c/6758215 that
mVertexBindings no longer contains kElementArrayBufferIndex.
BYPASS_LARGE_CHANGE_WARNING
Bug: b/433331119
Change-Id: I15f4576f7c5c8d8f4d9c9c07d38a60ce539bfeea
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6774702
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Commit-Queue: Charlie Lao <cclao@google.com>
|
|
8dca0efe
|
2025-07-21T15:29:10
|
|
Replace VertexArray::DIRTY_BIT_LOST_OBSERVATION with API call
This dirty bit was added so that back end can inspect buffers and set
proper VertexArray::DirtyBitType. The same thing can achieved by add a
virtual function on VertexArrayImpl class. The advantage of virtual
function on VertexArrayImpl is that all back end essentially have the
same implementation and we can just implemented in VertexArrayImpl
instead of duplicate in each back end. The other advantage is after this
CL DIRTY_BIT_BINDING_n and DIRTY_BIT_BUFFER_DATA_n will be well aligned
instead of offset by 1 caused by DIRTY_BIT_LOST_OBSERVATION. The other
motivation of this change is in later CL I want to move
mBufferBindingMask out of VertexArrayState, which means back end will
not have access to it. By using VertexArrayImpl API, I can pass
mBufferBindingMask directly to the back end via function parameter. So,
this CL removed DIRTY_BIT_LOST_OBSERVATION, added
VertexArrayImpl::checkBufferForDirtyBits().
Bug: b/433331119
Change-Id: I5c8cbc9bace63db416e86c2ae3631f74a12b20b8
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6775986
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Commit-Queue: Charlie Lao <cclao@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
130fb2a1
|
2025-07-29T08:16:57
|
|
Vulkan: Don't allocate ExternalFormatIDs for sampling usecases
Update the condition for allocating YUV ExternalFormatIDs to exclude
sampling-only usecases. Also, rename "isYuvResolve()" to
"isYuvExternalFormat()" to better reflect intent.
Bug: angleproject:386749841
Change-Id: I0e4f5b79937ea8ad98b5d00fdc7531b34ffa7e16
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6797965
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: mohan maiya <m.maiya@samsung.com>
|
|
40a2a912
|
2025-07-15T14:39:10
|
|
Track mElementArrayBuffer in std::vector<VertexBinding>
Right now mElementArrayBuffer are treated a little bit differently from
other vertex buffers, mainly because of elementBuffer does not have
corresponding "attributeIndex" to bind to. But a lot of logic in
VertexArray are same for mElementArrayBuffer and mVertexBindings. In
recent CLs, we are using mBufferBindingMask to track both
mElementArrayBuffer and mVertexBindings with kElementArrayBufferIndex
represents element buffer. With that, some of logic handling buffers can
be merged, with looping of mBufferBindingMask bits. In later CL, we are
going to separate "binding" from "buffer" so that we can move buffer out
of VertexArrayState class. So this is also a preparation CL so that when
we move buffers out of VertexArrayState class, it does so for all
buffers (both element buffer and vertex buffers). In order to track how
many vertex buffers in mVertexBindings, a new variable
mMaxVertexAttribBindings is added. In later CL when we move buffers out
of VertexBinding, some of this CL's change will be reverted back,
mVertexBindings will be reverted back to track only bindings and
mMaxVertexAttribBindings will be deleted.
Bug: b/433331119
Change-Id: Idd2cfe4ce64bb22923bac70abb752e132fe1abd3
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6758215
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Charlie Lao <cclao@google.com>
|
|
09bbe914
|
2025-07-28T12:53:53
|
|
Add test for mapBuffer and disable/enable attrib interaction
Added a test that mapBuffer while attribute is disabled, the draw call
should succeed. If attribute is then enabled, the next draw call should
fail with GL_INVALID_OPERATION error.
Bug: b/433331119
Change-Id: I61d9ff16b0d485309c58c2fe2939c3de8b25864a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6792268
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Charlie Lao <cclao@google.com>
|
|
4f4eab29
|
2025-06-30T14:58:28
|
|
Reset index buffer offset between indirect GL_LINE_LOOP draws
In two consecutive glDrawArraysIndirect with GL_LINE_LOOP mode, and
bound to a different Indirect Buffer, the variable value captured
through TransformFeedback is the same as the first result when the
second DrawArraysIndirect.
When calling DrawArraysIndirect the second time, DIRTY_BIT_INDEX_BUFFER
should be set to dirty so that it re-gets INDEX BUFFER to get the
correct result.
Bug: angleproject:428561247
Change-Id: I7f4ebb53e20cf8e362e67679b45185b8b68c56ef
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6687309
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
Auto-Submit: Tingwei Guo <tingwei.guo@arm.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
866370dc
|
2025-07-28T22:12:00
|
|
Disable texture_compression_astc_decode_mode exts during capture
The GL_EXT_texture_compression_astc_decode_mode and
GL_EXT_texture_compression_astc_decode_mode_rgb9e5 extensions are
not widely supported outside of ARM and Qualcomm. Disable while
ANGLE capture is enabled.
Test: angle_trace_tests --gtest_filter=*whiteout_survival
Bug: b/434819166
Change-Id: I4cebf6942144c61a954dfd9dfe9bd9935638ff60
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6794776
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
|
|
9635df8e
|
2025-07-16T15:13:19
|
|
Move mCached*ArrayBuffers from VertexArrayState to VertexArray
The three cached AttributeMasks variables are mCachedMappedArrayBuffers,
mCachedMutableOrImpersistentArrayBuffers,
mCachedInvalidMappedArrayBuffer. They are currently declared in
VertexArrayState class. They are only accessed by VertexArray front end,
back end does not use them, which means they do not need to be in
VertexArrayState class. This CL moves these three variables to
VertexArray class in preparation for later CLs that VertexArrayState
will not have access to Buffer objects.
This CL also removed unnecessary
updateCachedMutableOrNonPersistentArrayBuffers call from
VertexArray::enableAttribute, since
mCachedMutableOrImpersistentArrayBuffers does not depend on any
variables enableAttribute() is modifying.
Bug: b/433331119
Change-Id: I8b1f0c7d511dbc6858d20f33863154e8fe3077f8
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6762902
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Charlie Lao <cclao@google.com>
|
|
214a48c4
|
2025-07-16T12:42:18
|
|
Vulkan: add support for yuv resolve with transient image
Add support for the YUV_target extension in cases where the
implementation supports VK_ANDROID_external_format_resolve without
supporting nullColorAttachmentWithExternalFormatResolve.
Bug: angleproject:386749841
Tests: ImageTest*YUV*
Change-Id: Iebcb4f843b962f3d0d2f4e42db479902b6c1f849
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6761834
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: mohan maiya <m.maiya@samsung.com>
Reviewed-by: Charlie Lao <cclao@google.com>
|
|
2b12571c
|
2025-07-27T20:07:50
|
|
Tests: Add Last War: Survival Game trace
Test: angle_trace_tests --gtest_filter="*last_war_survival_game"
Bug: b/434548051
Change-Id: I25750ef43d58ee06a3149b9fce26b6d9b42c9931
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6789518
Reviewed-by: Mark Łobodziński <mark@lunarg.com>
Auto-Submit: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Mark Łobodziński <mark@lunarg.com>
|
|
1df94a64
|
2025-07-25T15:46:42
|
|
Tests: Add Dice Dreams ANGLE trace
Test: angle_trace_tests --gtest_filter=*dice_dreams
Bug: b/434552757
Change-Id: Ie56bd5fee6aebbddc9c613609d636acca11749a6
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6789519
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
|
|
c8209fec
|
2025-07-25T10:16:25
|
|
Tests: Add Avatar World trace
Test: angle_trace_tests --gtest_filter=*avatar_world
Bug: b/434146678
Change-Id: I3983c0720f541f5d28a82f4c3bcff7b6ea4252a3
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6785913
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Mark Łobodziński <mark@lunarg.com>
|
|
e4007fff
|
2025-07-24T15:50:48
|
|
GL: Remove ARB_base_instance check for EXT_base_instance support
This is a speculative fix for reported flickering issues on Linux.
https://chromium-review.googlesource.com/c/angle/angle/+/6580170 changed
EXT_base_instance to only be supported when it is not emulated and fixed
the condition to include ARB_base_instance, possibly hitting driver bugs
on some devices.
Bug: angleproject:355645824
Bug: chromium:427956856
Change-Id: I869fa7f618e82ad46c1953f0bacef0767bbc793e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6777576
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
6a03109f
|
2025-07-09T18:24:31
|
|
Refine getCompressionRate
As Vulkan spec states, vkGetImageSubresourceLayout should not be called
for the android swapchainimage when the image is not bound to memory.
Refine the path of getCompressionRate to make sure at least
swapchainimage[0] has been initialized when it is been called.
Bug: angleproject:433057375
Change-Id: I80b68874686940c0ef77df97b928b0e153c5bbf8
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6774721
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
d38531e8
|
2025-07-23T09:39:11
|
|
Fix extension check for xfb mode validation
With geometry and tessellation shaders, it's possible to use different
primitive modes between transform feedback and draw, as long as they are
from the same class.
The code accidentally allowed this only if both extensions are
supported, but it should be allowed if either is.
Bug: angleproject:428561247
Change-Id: Ia18d4ac15a3d0739ce18dc0e1f3d3f0b1aea621c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6780744
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
13f6df49
|
2025-07-17T20:40:19
|
|
Fix the format of the "License" field in README.chromium files.
Add missing license for util/android/thrid_party based on license at the
source url.
Bug: chromium:421988485
Bug: chromium:421989135
Bug: chromium:421988956
Bug: chromium:421988537
Bug: chromium:421988894
Bug: chromium:421989250
Bug: chromium:421988522
Bug: chromium:421988185
Bug: chromium:421989147
Bug: chromium:421988875
Bug: chromium:421988779
Bug: chromium:421988799
Bug: chromium:421988324
Bug: chromium:421988930
Bug: chromium:421988996
Change-Id: I4008229b3031734dd2dc991026cdebe0894c352c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6768429
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Auto-Submit: Jordan Brown <rop@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
6a3ff5a1
|
2025-07-17T12:41:13
|
|
WGSL: extra debug logging for failure cases
Bug: angleproject:42267100
Change-Id: I8938526b60af71d15d4327bc10fa172117afef60
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6777200
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
343e3bdc
|
2025-07-17T12:38:31
|
|
ScalarizeVecAndMatConstructors: also handle scalar constructors
In WGSL you cannot "construct" a scalar from a non-scalar (vec or mat).
This modifies ScalarizeVecAndMatConstructors to handle scalar
constructors as well, indexing and swizzling the argument to select the
first element of the nonscalar.
This makes dEQP-GLES2.functional.shaders.conversions.vector_to_scalar.*
pass (except those that use bool uniforms which are still unsupported).
Bug: angleproject:42267100, angleproject:395659799
Change-Id: Ibaa3dc14f36fecb384bfb6e7f226c6d5f377dd5f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6777199
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
7181239d
|
2025-04-04T14:13:58
|
|
Add long ANGLE traces feature
Enables very long Android captures by swapping binary
data chunked buffers to/from disk.
Bug: b/425728227
Change-Id: I539f72590eece03cfc69d42fc34be9825a9ff1fe
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6476924
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Mark Łobodziński <mark@lunarg.com>
|
|
cf4c8c2a
|
2025-07-10T15:50:36
|
|
Add max sampler count to maxUniformLocations
OpenGL ES 3.2 Spec:
> ## 7.6. UNIFORM VARIABLES
>
> When a program is linked successfully, all active uniforms, except for
> atomic counters, belonging to the program object’s default uniform
> block are initialized as defined by the version of the OpenGL ES
> Shading Language used to compile the program. A successful link will
> also generate a location for each active uniform in the default
> uniform block which doesn’t already have an explicit location defined
> in the shader. The generated locations will never take the location of
> a uniform with an explicit location defined in the shader, even if that
> uniform is determined to be inactive. The values of active uniforms in
> the default uniform block can be changed using this location and the
> appropriate Uniform* or ProgramUniform* command (see section 7.6.1).
> These generated locations are invalidated and new ones assigned after
> each successful re-link. The explicitly defined locations and the
> generated locations must be in the range of 0 to the value of
> MAX_UNIFORM_LOCATIONS minus one.
Currently, ANGLE sets the mNativeCaps.maxUniformLocations to the maximum
number of supported uniform variables (maxUniformVectors). However,
samplers are also uniforms and consume uniform locations during shader
linking. This causes shader compilation to fail for context versions
3.1+ if a shader uses both the maximum number of uniform variables and
maximum number of samplers because the number of uniform locations is
exceeded.
This specific edge case is being tested by the end2end test
GLSLTest.VerifyMaxVertexUniformVectorsWithSamplers. Unfortunately, that
test is only instantiated for GLES 2.0 and 3.0 and ANGLE's shader linker
only validates the number of supported uniform locations are not
exceeded for GLES 3.1+, so that error path is not being validated.
1. Include both the maximum number of supported uniform variables and
maximum number of samplers whe calculating the supported maximum
number of uniform locations.
2. Instantiate GLSLTest.VerifyMaxVertexUniformVectorsWithSamplers for
GLES 2.0, 3.0, 3.1, and 3.2 so the edge cases are tested for all
supported GLES versions.
Bug: b/279980674
Test: angle_end2end_tests
--gtest_filter=GLSLTest.VerifyMaxVertexUniformVectorsWithSamplers*
Change-Id: I8ad1f4d2a040a189625d516b54bf2f79ef218edc
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6724940
Commit-Queue: Tim Van Patten <timvp@google.com>
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
|
|
bc9ff5e6
|
2025-07-11T13:43:05
|
|
Don't cache shaders/programs that are too large
Currently, ANGLE compresses and caches every shader program, but can
then fail to decompress the cached program because the uncompressed size
is too large.
Instead, check if the program size is too large before compressing and
caching the program, so ANGLE doesn't generate an error later while
attempting to decompress the cached program.
This change is applied to both shaders and programs:
* MemoryShaderCache::putShader()
* MemoryProgramCache::putProgram()
Bug: b/279980674
Change-Id: I67a3b542b460a41dbbc4a3d8bad4031a212223e0
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6728876
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Tim Van Patten <timvp@google.com>
|
|
b7582680
|
2025-02-24T18:04:32
|
|
Reland: GL: Allow untranslated shaders to pass through on GLES
Add an EGL extension EGL_ANGLE_create_context_passthrough_shaders which
uses the NULL translator and passes the original shader to the driver.
The parser is still used for shader reflection.
Always enable the null compiler backend. It has almost no binary size
cost and is now potentially used when the null ANGLE backend is not
enabled.
Bug: angleproject:398857482
Change-Id: Id528189ccbbacb1c444eacb151baadfda9fcc04b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6488609
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
cd6680b4
|
2025-07-23T22:25:32
|
|
Tests: Add Last Z: Survival Shooter trace
Test: angle_trace_tests --gtest_filter="*last_z_survival_shooter*"
Bug: b/433847164
Change-Id: Ifb142d750de9fc9a626896608aefe30ecd06b1f2
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6782543
Commit-Queue: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Mark Łobodziński <mark@lunarg.com>
|
|
dd6a1a2c
|
2025-07-24T10:02:04
|
|
Roll vulkan-deps from 0b8bda098b9a to b7374531e4a2 (9 revisions)
https://chromium.googlesource.com/vulkan-deps.git/+log/0b8bda098b9a..b7374531e4a2
Also rolling transitive DEPS:
https://chromium.googlesource.com/external/github.com/LunarG/VulkanTools/+log/597e427cce3fc97a8455b26aba1a1189546717c3..192b610c89300a30221b8909bf71dcb12cd3c92d
https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Headers/+log/c8ad050fcb29e42a2f57d9f59e97488f465c436d..de1807b7cfa8e722979d5ab7b7445b258dbc1836
https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools/+log/8cf1bf9bb922e33135e6e343a566764015da2dc6..04d4deab5d608af8fbe418c422734a73555589c3
https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-ValidationLayers/+log/dad479f6294df6c7a706964c489926be943a8baf..4cf7390eb853a54e7f9ae1c948ac09995ed8b8e5
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: Iff95f0d257f10922a681697549f833092622f395
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6782918
Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
Bot-Commit: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
|
|
03676f3f
|
2025-07-22T15:34:18
|
|
Tests: Add MixedMultisampleSingleSampledDraw test
Test: angle_trace_tests --gtest_filter=MultisampledRenderToTextureES3Test.MixedMultisampleSingleSampledDraw
Bug: angleproject:433462527
Change-Id: I87b56452bd5ad1d7841341ddd7af9479fe966f6d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6773431
Commit-Queue: Igor Nazarov <i.nazarov@samsung.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
f94510ab
|
2025-07-22T21:16:37
|
|
Tests: Add Honkai Impact 3rd trace
Test: angle_trace_tests --gtest_filter="*honkai_impact_3rd*"
Bug: b/433331917
Change-Id: Ia7edcf0b930a646923019b6e4c8b49678d6b189f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6780136
Reviewed-by: Mark Łobodziński <mark@lunarg.com>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
|
|
ab74884c
|
2025-07-22T20:46:05
|
|
FrameCapture: Check current state for indexed buffers
When checking whether we need to set per draw buffer
blend state, we don't care whether they differ from
default, we only care if they differ from each other.
The non-indexed commands will set the same state for
all buffers.
This CL removes default state from the check. Otherwise,
we are getting a block of identical indexed commands:
glBlendFuncSeparateiEXT(0, GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA,
GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
glBlendFuncSeparateiEXT(1, GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA,
GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
glBlendFuncSeparateiEXT(2, GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA,
GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
glBlendFuncSeparateiEXT(3, GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA,
GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
glBlendFuncSeparateiEXT(4, GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA,
GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
glBlendFuncSeparateiEXT(5, GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA,
GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
Which is equivalent to:
glBlendFuncSeparate(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA,
GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
Test: Honkai Impact 3rd trace
Bug: b/433331917
Change-Id: Ie6bd7549d69c1548aace92126312527b8e585046
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6780135
Reviewed-by: Mark Łobodziński <mark@lunarg.com>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
|
|
1c245d90
|
2025-07-22T17:44:15
|
|
Fix ASTC emulation for array textures
Only the first slice was decoded.
Bug: angleproject:432782046
Change-Id: Ibb9d7ff72424c26b240900c1a5f39acd1fc62650
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6779463
Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
|
|
4e81cd79
|
2025-07-21T10:45:02
|
|
FrameCapture: Update context limits
We're seeing multiple titles run incorrectly without
updating these two limits during capture.
I've verified locally that these still fit within the
limits of all modern devices we're looking at.
If there are any problems with older devices, we can
address them with:
addIntegerPrerequisite(GL_MAX_DRAW_BUFFERS_EXT, 6);
addIntegerPrerequisite(GL_MAX_VERTEX_UNIFORM_VECTORS, 4096);
Bug: b/431854319
Bug: b/433331917
Change-Id: Id21de17acc4d24157dfe07de6b9de818561399ba
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6775624
Reviewed-by: Mark Łobodziński <mark@lunarg.com>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
|
|
c2224aef
|
2025-07-22T14:35:49
|
|
Revert "Fix VK-GL-CTS build error"
This reverts commit a676c4725490ee896e1154d5fbe1b1c1adc83678.
Reason for revert: CTS build issue is fixed upstream and rolled into
ANGLE.
Bug: angleproject:432337091
Original change's description:
> Fix VK-GL-CTS build error
>
> ... temporarily by overriding the offending file until the upstream fix
> lands.
>
> Bug: angleproject:432337091
> Change-Id: I878561e0856e43b657bcaf08a7563ac639794098
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6775382
> Reviewed-by: Geoff Lang <geofflang@chromium.org>
> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Bug: angleproject:432337091
Change-Id: I1607d32b4007df91c721601fc16bcb05932f2567
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6777764
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
cbff5658
|
2025-07-16T14:10:47
|
|
ScalarizeVecAndMatConstructorArgs: cast for mat constructors
In WGSL, matrix constructors also can't handle arguments of differing
basic type than the constructor's basic type, so cast when necessary.
Makes dEQP-GLES2.functional.shaders.conversions.scalar_to_matrix.*
pass for WGSL.
dEQP-GLES2.functional.shaders.conversions.matrix_to_matrix.* does not
yet pass because WGSL can't handle matrix shader inputs/outputs.
Bug: angleproject:42267100, angleproject:395659799
Change-Id: Ia4761190c78ccfe7d748275642361ada93314529
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6777198
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Liza Burakova <liza@chromium.org>
Commit-Queue: Matthew Denton <mpdenton@chromium.org>
|
|
2c1a55b3
|
2025-07-16T13:44:49
|
|
WGSL: implement == for vectors by wrapping in all()
WGSL's vec comparisons are component-wise, so wrapping the result in a
call to all() returns true if all components compare equal, matching
the behavior of GLSL's vec comparisons (== and !=).
Bug: angleproject:42267100
Change-Id: Icfbfacf72e53096e2567fa89bcd4bf573e457ec1
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6777197
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Liza Burakova <liza@chromium.org>
Commit-Queue: Matthew Denton <mpdenton@chromium.org>
|
|
cdffecb7
|
2025-07-21T11:30:45
|
|
Vulkan: Ensure FramebufferVk::mRasterizationSamples > 0
GraphicsPipelineDesc can't handle samples being zero. This CL ensures we
always use at least one sample.
Bug: angleproject:431250668
Change-Id: I7f6b14c6060585fe7ef6fb55ed6a4b9813634f3f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6431827
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Commit-Queue: Charlie Lao <cclao@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
364ad1c4
|
2025-07-15T12:47:55
|
|
Enable test ImageTestES3.SourceYUVAHBTargetExternalCopySrc on Pixel 6
This issue been fixed by patch: http://crrev.com/c/6679988, when
sampling YUV formats, angle use texture() instead of texelFetch(),
and should adjust texture coordinates by + 0.5
Bug: angleproject:395520107
Change-Id: I22166b28c5ee2949d5e9570137e110edc34fffaa
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6738562
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Auto-Submit: Neil Zhang <Neil.Zhang@arm.com>
|
|
239763d9
|
2025-04-04T17:52:10
|
|
CL/VK: Fix ArgumentWorkgroup setArg logic
Issue was that clSetKernelArg for ArgumentWorkgroup
type arguments would blindly push new values into
kernel's spec-constant FastVector on every clSetKernelArg
(even on same arg updates).
This would lead to over-pushing due to same arg updates,
which caused all kinds of issues, mainly erroneous misses
in compute pipeline cache since the key is based on
VkSpecializationInfo.
Since kernel object already keeps a vector of kernel args,
we don't need a separate spec-constant FastVector in CLKernelVk to
track this. Remove it and derive the spec-constant data
from the kernel args themselves.
Bug: angleproject:366415134
Tests-Passing: Geekbench-6.2.2 - Workloads: [ 401 & 601 ]
Change-Id: Iab7f27fdfdfede33881e1dd717ba3b771cffb985
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6773615
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
e98dec82
|
2025-07-20T22:16:00
|
|
Translator: Remove Sampler2DRectShadow
This is a desktop GLSL type.
Bug: angleproject:370937467
Change-Id: Ife8b50e57f6e054ccd35df10c2157f8e4a218d37
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6774081
Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
|
|
93afebf5
|
2025-07-17T11:08:02
|
|
Change the way we get vkEnumerateInstanceExtensionProperties
After this change
https://chromium-review.googlesource.com/c/angle/angle/+/6444660,
more crashes were observed in this function GetSystemInfoVulkanWithICD
on Chrome, Linux. One crash report showed the crash occurs in calling
vkEnumerateInstanceExtensionProperties(). Before the change, we
get the function pointer of vkEnumerateInstanceExtensionProperties()
by angle::GetLibrarySymbol(). After the change, we get the function
pointer by vkGetInstanceProcAddr().
Switching the way we get the function pointer back to
angle::GetLibrarySymbol() to check if this helps with reducing the
crash rate.
Bug: angleproject:407116232
Bug: chromium:424207320
Change-Id: I962533fcf4401522f459ff27d2342e0f5c29d407
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6766724
Commit-Queue: Yuxin Hu <yuxinhu@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
|
|
a676c472
|
2025-07-21T12:29:29
|
|
Fix VK-GL-CTS build error
... temporarily by overriding the offending file until the upstream fix
lands.
Bug: angleproject:432337091
Change-Id: I878561e0856e43b657bcaf08a7563ac639794098
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6775382
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
251ffe62
|
2025-07-15T17:37:30
|
|
Vulkan: Add support for built-in gl_ShadingRateEXT
Add support for built-in gl_ShadingRateEXT of
GL_EXT_fragment_shading_rate
Bug: angleproject:420310117
Change-Id: Ie11b139a0371b5995f1533a85e02c590cd36109c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6733750
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
faf1bb4b
|
2025-07-17T21:33:19
|
|
Tests: Add Wuthering Waves trace
Test: angle_trace_tests --gtest_filter=TraceTest.wuthering_waves
Bug: b/431854319
Bug: b/432782046
Change-Id: I5e12064e964953d0a3d969cd0026f50d0945e888
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6768428
Reviewed-by: Mark Łobodziński <mark@lunarg.com>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
|
|
9cd9a0d5
|
2025-07-18T10:28:12
|
|
Vulkan: Reformat VVL Error Message
Remove the following members from the SkippedSyncvalMessage struct:
const char *messageContents1
const char *messageContents2
Future VVL suppression message should use extraProperties list only.
Bug: angleproject:391284743
Change-Id: I72ebaf86da667967681318dd69a181cc685f0805
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6769428
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Commit-Queue: Yuxin Hu <yuxinhu@google.com>
|
|
0691b92e
|
2025-07-16T10:19:19
|
|
Fix the wrong condition for EnsureLoopForwardProgressTest
The original CL should have used the angle_enable_glsl
condition to disable the test on iOS, since this variable
is not enabled on that platform.
Bug: b/426055001
Change-Id: Ia53c066dcbc473358ae89e625abcf83660bd019a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6756696
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Sunny Sachanandani <sunnyps@chromium.org>
|
|
7b36840b
|
2025-07-17T18:12:53
|
|
Fix missing includes
This is to fix some errors in
https://ci.chromium.org/ui/p/chromium/builders/ci/linux-modules-compile-fyi-rel/42032/overview
Bug: chromium:40263312
Change-Id: I278fd42062a52cbfe7e778f98d3e72cdd490847f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6765303
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Auto-Submit: Takuto Ikuta <tikuta@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|