|
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>
|
|
1239266b
|
2025-07-16T16:28:12
|
|
Do not read .git/packed-refs if the git refstorage is reftables
Traditionally, git is configured with: extensions.refStorage==file.
It means if .git/HEAD stores a symbolic reference, e.g.
/refs/heads/main, the hash of main branch is stored in either:
1) .git/refs/heads/main
2) .git/packed-refs
However, on the newer version of git where the git is configured
with: extensions.refStorage == reftable, neither of the above files
exist. Git will store the reference in binary files under
.git/reftable.
We should add different files as gn action input based on if git
is configured with reftable or file backend.
Bug: chromium:432289353
Change-Id: Ib42828313f3a7200e55420574a8ddac2ba63f2e4
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6761844
Auto-Submit: Yuxin Hu <yuxinhu@google.com>
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Commit-Queue: Yuxin Hu <yuxinhu@google.com>
|
|
de6d58f4
|
2025-07-13T19:24:34
|
|
FrameCapture: Fix blend state per draw buffer in MEC
Before this CL, we've never set starting state for draw
buffers other than buffer zero. They've always remained
at default values, or at least matching the values set
for zero.
Now when we detect the other buffers differ from buffer
zero, we emit indexed calls that set them correctly.
Turning a sequence like this:
glEnable(GL_BLEND);
glBlendFuncSeparate(GL_SRC_ALPHA, ...);
glColorMask(GL_TRUE, GL_TRUE, GL_TRUE, GL_FALSE);
into this:
glEnableiEXT(GL_BLEND, 0);
glBlendFuncSeparateiEXT(0, GL_SRC_ALPHA, ...);
glBlendFuncSeparateiEXT(1, GL_SRC_ALPHA, ...);
glEnableiEXT(GL_BLEND, 2);
glBlendFuncSeparateiEXT(2, GL_SRC_ALPHA, ...);
glColorMaskiEXT(2, GL_TRUE, GL_TRUE, GL_TRUE, GL_FALSE);
glEnableiEXT(GL_BLEND, 3);
glBlendFuncSeparateiEXT(3, GL_SRC_ALPHA, ...);
glColorMaskiEXT(3, GL_TRUE, GL_TRUE, GL_TRUE, GL_FALSE);
glColorMaskiEXT(4, GL_FALSE, GL_FALSE, GL_FALSE, GL_FALSE);
glColorMaskiEXT(5, GL_FALSE, GL_FALSE, GL_FALSE, GL_FALSE);
Test: Wuthering Waves trace
Bug: b/431854319
Change-Id: Ic91d4b8cf50defd8b69ecf6aac697d0df8f69692
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6735677
Reviewed-by: Mark Łobodziński <mark@lunarg.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
|
|
890b5d8f
|
2025-07-07T13:06:54
|
|
Vulkan: Encapsulate more descriptor set logic in ProgramExecutableVk
- ProgramExecutableVk handles SharedDescriptorSetCacheKey updates
- Inline most update*DescInfo methods
- Add dedicated methods to handle uniform and storage buffers to remove
some branches from frequently used code paths
Bug: angleproject:426412564
Tests: UniformBufferTest31.UniformBufferBindingRangeChangeWith*FBF
Change-Id: I54b8ae2bd8778231e4d187b2cfd30f4d71de7f3b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6733546
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: mohan maiya <m.maiya@samsung.com>
|
|
b3986258
|
2025-07-14T14:47:02
|
|
Include <utility> in PoolAlloc to fix gcc builds
std::exchange needs #include <utility>.
Bug: angleproject:429513168
Change-Id: I61e323055cb70545bda883c8bcfb103dcede5136
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6734441
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Auto-Submit: Kimmo Kinnunen <kkinnunen@apple.com>
|
|
c03b2d59
|
2025-07-15T14:18:28
|
|
common: Fix include for std::exchange
This is to fix error in
https://ci.chromium.org/ui/p/chromium/builders/ci/linux-modules-compile-fyi-rel/41761/overview
Bug: chromium:40263312
Change-Id: I4d37bd92370b80856571cdd97144b61f8477f362
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6734419
Auto-Submit: Takuto Ikuta <tikuta@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
ab1a2da0
|
2025-07-04T16:13:04
|
|
Disable EnsureLoopForwardProgressTest on iOS
The CL[1] that enabled the optimization of simple loops introduced
the EnsureLoopForwardProgressTest. However, this test relies on
SH_ESSL_OUTPUT, which requires angle_enable_essl to be enabled.
Since this is not currently supported on iOS, this CL disables
the test on iOS until a proper solution is found.
[1] https://chromium-review.googlesource.com/c/angle/angle/+/6575051
Bug: b/426055001
Change-Id: If694be82bad4b4724ace5051c9ee38829a367170
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6703073
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Sunny Sachanandani <sunnyps@chromium.org>
|
|
7cbb77a8
|
2025-07-14T11:32:04
|
|
Fix the uniform reorder bug
When sorting uniforms, we should first check if both uniforms are
structs, and make sure to place the uniforms with specifier in front
of the uniforms without specifier.
Bug: chromium:431318231
Change-Id: I8be9501f34073983b7f3d040780b749a7366e3d2
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6733547
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Commit-Queue: Yuxin Hu <yuxinhu@google.com>
|
|
d3119b0a
|
2025-07-07T09:35:04
|
|
Relax shader interface matching for program link
ES spec 3.2 section 7.4.1 shader interface matching: With separable
program objects, interfaces between shader stages may involve the
outputs from one program object and the inputs from a second program
object. For such interfaces, it is not possible to detect mismatches
at link time, because the programs are linked separately.
Before this CL, we are applying the the number of output varying and
the number of input varyings must match requirement to both glProgram
object as well as glPipelineProgram object which is incorrect. This
CL removes such check from Program::linkVaryings. A new function
LinkValidateInOutNumberMatching is added to handle the this program
pipeline specific spec requirement.
Bug: angleproject:424050949
Change-Id: I0d2e4360b37d175b2b998e341f15815915771413
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6704827
Reviewed-by: Charlie Lao <cclao@google.com>
Auto-Submit: Shufen Ma <Shufen.Ma@arm.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
3f170c17
|
2025-07-11T15:35:01
|
|
Roll third_party/dawn/ (1684 commits) and clean up WGPU_BREAKING_CHANGEs
With this roll, Dawn has completed the WGPU_BREAKING_CHANGE_* changes,
so the old paths are no longer used.
The roll:
https://dawn.googlesource.com/dawn.git/+log/7a8946456d49..d85fc050fef7
Created with:
roll-dep third_party/dawn
Bug: chromium:427242889
Change-Id: Ia17fbc1447944e7bcea20d5004367d94cf7be10e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6729918
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Auto-Submit: Kai Ninomiya <kainino@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
93b659f9
|
2025-07-04T12:35:29
|
|
Remove PoolAllocator push/pop feature
PoolAllocator would manage a stack of memory pools upon client
calling push() and pop(). This made the code unnecessarily complicated.
The feature was only used with nesting of one, to mark the memory
unused after a shader compile.
Fix by removing the push/pop feature. Instantiate PoolAllocator in
places the previous push() was and uninstantiating instead of previous
pop().
This removes the feature where the PoolAllocator would hold on to
the allocated memory in order to reuse it. This is seen as a
progression: the allocator is held by the compiler, the compiler is
held by the shader and each shader typically see only one compile.
Thus the free pages were just leaking unused until the shader was
destroyed. Instead, destructing the PoolAllocator instead of pop()
will donate the memory back to platform/OS, where it is likely
more useful.
To preserve existing Vulkan behavior, add PoolAllocator::reset()
which would mark the memory unused but leave them reserved for the
PoolAllocator.
Removes UB where PageHeader::nextPage would be accessed after
~PageHeader.
Bug: angleproject:429513168
Change-Id: I21e58b46e0887380db3a2cab5ce22f0042cfae9e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6701153
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Auto-Submit: Kimmo Kinnunen <kkinnunen@apple.com>
Commit-Queue: Kimmo Kinnunen <kkinnunen@apple.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
1443a451
|
2025-07-04T16:18:30
|
|
Regenerate the parsers with current cl format
The format tool has changed since last parser generation.
This causes overly many changes when downstream regenerates
the parsers.
The diff formatting fails for flex and bison generated content.
Format them in full always.
Bug: angleproject:429588208
Change-Id: I7a4b8e966e9502920fc25f5c1c5bf80246f5cf0b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6705451
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Auto-Submit: Kimmo Kinnunen <kkinnunen@apple.com>
Commit-Queue: Kimmo Kinnunen <kkinnunen@apple.com>
|
|
03356f06
|
2025-07-10T19:21:04
|
|
Vulkan: Skip VK_KHR_maintenance9 warning
A warning has been added about behavior that will
change if VK_KHR_maintenance9 is enabled.
Since we can't make this change until drivers support
the feature, let's add warning that will fire when we
do decide to turn it on.
This CL:
- Adds a feature for maintenance9
- Adds a VVL skip if isn't enabled
- Updates our skip code to check for message IDs
Test: Traces
Bug: angleproject:429339330
Change-Id: I5763cbc5f343ef165ff8810b9b60b8c809075b8f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6724905
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
|
|
065b80a6
|
2025-07-10T15:50:43
|
|
Vulkan: Remove the enum to indicate submitted CB
Currently, the function ContextVk::submitCommands() takes the
following enum to indicate whether all command buffers or only
the outside command buffer is submitted: "Submit"
However, ContextVk::submitCommands() is only called twice. Also,
this enum is only used to manage a few things, such as garbage
collection, and finalizing foreign image layouts.
It is possible to move these operations to the respective callers
and remove this enum completely.
* Moved the operations relying on the enum "Submit" to the locations
before submitCommands() as required.
* Removed the enum "Submit".
(Credit for the idea to move the ops up to the callers: cclao)
Bug: b/425987310
Change-Id: Ic0e1c15ee3d2e7cf22a4f7a57b6ac31acc38c861
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6724899
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
|
|
68fa8169
|
2025-07-09T18:02:16
|
|
Vulkan: Reformat VVL error message
Remove the VVL that is no longer observed on bots.
Reformat the other VVL to use extraProperties only.
Bug: angleproject:40644740
Change-Id: I57da1259754d5eba18c8c11385872b3ec9527e09
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6719618
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
|
|
3b90872b
|
2025-07-06T09:02:27
|
|
Vulkan: Selectively invalidate uniform buffers
Call invalidateCurrentShaderUniformBuffers iff current program
has active uniform buffers. Also add DIRTY_BIT_UNIFORM_BUFFERS bit
to mNew*CommandBufferDirtyBits
Bug: angleproject:426412564
Bug: angleproject:429585235
Tests: UniformBufferTest31.UniformBufferBinding*WithMultiplePrograms*
Change-Id: I88c37c8317205aecad638553846ffe3beff87f11
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6706537
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: mohan maiya <m.maiya@samsung.com>
Reviewed-by: Charlie Lao <cclao@google.com>
|
|
6d18ed63
|
2025-07-08T16:26:53
|
|
ValidateGetTexLevelParameterBase: Remove ES 2.0 check
This CL addresses review comments in:
https://crrev.com/c/6710993
1. Remove the ES_2_0 check for GL_MEMORY_SIZE_ANGLE in
ValidateGetTexLevelParameterBase() since the GL_ANGLE_memory_size
extension already requires OpenGL ES 2.0, making the version check
redundant.
2. Update the test MemorySizeTest.BasicUsageTexture to use the function
glGetTexLevelParameterivANGLE() if the context version is below OpenGL
ES 3.1 and the extension GL_ANGLE_get_tex_level_parameter is available.
Bug: b/409384875
Change-Id: I831d4b35eec20fcb4aff331c5a642a749bd52e67
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6715885
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Commit-Queue: Tim Van Patten <timvp@google.com>
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
|
|
41a5b397
|
2025-07-09T09:17:10
|
|
Vulkan: Fix checking if fds are identical
This helps to decide whether it's really disjoint or not.
Bug: angleproject:426480610
Change-Id: I8ec9b352195ab16a7e11d2dab30e98138d9f5a6c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6658648
Reviewed-by: mohan maiya <m.maiya@samsung.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
5d51bd19
|
2025-07-01T15:40:10
|
|
Translator: Handle arrays of samplers in FlagSamplersWithTexelFetch
This was found while running tests for Dawn's "sized binding arrays"
(including arrays of textures) with ANGLE + Swiftshader.
Adds a test that ASSERTs without the change.
Bug: chromium:411573957
Change-Id: Ib7fad0f5c0b4f3aa70e6af5bf5977b82956e1986
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6695013
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
|
|
ec2a04cc
|
2025-07-09T16:09:08
|
|
Vulkan: Skip dEQP clip/cull tests for GS/TS
* Skipped the following KHR-GLES3 tests on the Vulkan backend:
*.cull_distance.functional_test_item_{5/6}_*
Bug: angleproject:42264006
Bug: b/415288635
Bug: b/353358652
Change-Id: I0cc052a66fa91d2c8e4e9f433bec9a3db2962bb9
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6720745
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
|
|
7b5a8096
|
2025-07-09T06:26:21
|
|
Vulkan: Enable varyingsRequireMatchingPrecisionInSpirv for Samsung
Bug: b/430501085
Change-Id: Iac5061c5d33642af1e53a990487833c26df45b30
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6717687
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
|
|
dc9fb800
|
2025-07-08T16:59:33
|
|
ComputeShaderTestES3.NotSupported: Skip if ES 3.1+
The test ComputeShaderTestES3.NotSupported requires that the context
version is exactly OpenGL ES 3.0. However, if the system EGL does not
support the ANGLE extension
EGL_ANGLE_create_context_backwards_compatible, the maximum conformant
version the display supports will be returned instead. This causes the
test to fail, because OpenGL ES 3.1+ contexts *do* support creating
compute shaders.
Skip the test when testing the system EGL if the context version is
3.1+. Only skip when testing the system EGL, so we still fail if the
context version is not exactly 3.0, since that's (likely) a bug.
Bug: b/279980674
Change-Id: I38090d7f562c7760f2c1b1c3211d1e622b0e0ad4
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6715721
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Commit-Queue: Tim Van Patten <timvp@google.com>
|
|
30a1cbc9
|
2025-07-03T13:00:05
|
|
Vulkan: Separate out descriptor set for uniform buffers
Bug: angleproject:426412564
Change-Id: Icdbb1e634fc543714d1e3b9cdba0530d400cb153
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6705153
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: mohan maiya <m.maiya@samsung.com>
Reviewed-by: Charlie Lao <cclao@google.com>
|
|
8e9132c3
|
2025-07-08T15:23:17
|
|
Add missing brackets to gl_tests
Add missing brackets required for format style
Bug: angleproject:430338389
Change-Id: I4757f03c06bc25734c7492284160d04c8c8fd459
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6715884
Commit-Queue: mohan maiya <m.maiya@samsung.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: mohan maiya <m.maiya@samsung.com>
|
|
d44244ca
|
2025-07-03T11:36:37
|
|
Vulkan: Simplify default uniform WriteDescriptorDescs
ProgramExecutableVk fully encapsulates interaction with
DescriptorSetDescBuilder with https:://crrev.com/c/6702410
which allows us to keep WriteDescriptorDescs members private.
Remove mDefaultUniformWriteDescriptorDescs and reuse
mDefaultUniformAndXfbWriteDescriptorDescs for both emulated and
extension based XFB codepaths
Bug: angleproject:426412564
Change-Id: Icf76440b6efbda93eb8d48c36591a99ccd1a5750
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6705152
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: mohan maiya <m.maiya@samsung.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
ce289330
|
2025-07-01T19:41:46
|
|
Vulkan: Simplify descriptor set management
- Descriptor logic is contained in ProgramExecutableVk and
doesn't leak into ContextVk
- Reduces CPU overhead by not having to constantly copy and
resize the DescriptorSetDescBuilder
- Simplifies decoupling of descriptor set of uniform buffers
from that of other shader resources
Bug: angleproject:426412564
Change-Id: Ic0926d0d466ea21f611c2b2c7b844e0bb9027c1b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6702410
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: mohan maiya <m.maiya@samsung.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
8a9fe208
|
2025-06-20T16:32:11
|
|
Vulkan: Fixed rate compression not work as expected on Android
On Android C++ compiler do more optimization and results different with
Linux, re-write code to correct the issue.
Bug: angleproject:352364583
Change-Id: I1863d2d255cd831d4ca9dd866c85e419f410bd9a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6687014
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Auto-Submit: Neil Zhang <Neil.Zhang@arm.com>
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Charlie Lao <cclao@google.com>
|
|
18091004
|
2025-06-19T16:50:58
|
|
GLES1: Skip updating vertex attrib array when binding zero texture
Previously, when usecases bind the zero texture, the vertex attrib
array was disabled. This made the following bound textures lose the
vertex attrib data.
In this change, updating vertex attrib array in prepareForDraw()
is skipped when the application binds zero texture but does not
activate the corresponding texture unit.
Also GLES1 tests using zero texture are added to make sure vertex
attrib array is enabled correctly.
Test: angle_end2end_tests --gtest_filter=DrawTextureTest.*
Bug: b/426740680
Change-Id: Ic5aad0a60c9d987edcb1d05cdb6b68dd93eac309
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6659335
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
|
|
2e9de3c7
|
2025-07-07T16:58:18
|
|
ValidateGetTexLevelParameterBase: Support GL_MEMORY_SIZE_ANGLE
ANGLE supports the extension GL_ANGLE_memory_size, which adds the new
parameter GL_MEMORY_SIZE_ANGLE. However, the parameter value is not
supported in ValidateGetTexLevelParameterBase(), so any calls using it
always fail with GL_INVALID_ENUM.
The parameter is supposed to be tested by
MemorySizeTest.BasicUsageTexture/*, but the portion of the test
validating GL_MEMORY_SIZE_ANGLE is never executed because it requires an
OpenGL ES 3.1+ context, but the test is only instantiated for GLES 2.0
and 3.0.
Based on all the above:
1. Add support for GL_MEMORY_SIZE_ANGLE to
ValidateGetTexLevelParameterBase(), requiring GLES 2.0+ and the
extension memorySizeANGLE is enabled.
2. Instantiate MemorySizeTest to run on GLES 2.0, 3.0, 3.1, and 3.2, so
the entire test is run on devices that support GLES 3.1+ contexts.
Bug: b/409384875
Test: angle_end2end_tests --gtest_filter=MemorySizeTest.*
Change-Id: I70c5721c5da18cb8edbc9a7e18038d5d9fb486da
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6710993
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Commit-Queue: Tim Van Patten <timvp@google.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
825b4062
|
2025-07-01T17:36:05
|
|
tests: Skip ProgramBinariesAcrossPlatforms on SystemEGL+Android
ProgramBinariesAcrossPlatforms.CreateAndReloadBinary/* is failing when
testing the system EGL on Android.
The issue is that the test calls eglWindow->initializeGL(), without
checking all of the required extensions are available first.
Specifically, it needs the same type of checking that was added to
ANGLETestBase with https://crrev.com/c/6622112.
Rather than duplicating that work, we should instead find a way to
refactor things so both ProgramBinariesAcrossPlatforms and ANGLETestBase
can share the implementation.
This would also fix the issue that ProgramBinariesAcrossPlatforms cannot
be skipped with an entry in angle_end2end_tests_expectations.txt, also
due to not inheriting from ANGLETestBase. Due to this, the test needs to
be skipped directly within ProgramBinariesAcrossPlatforms::SetUp(),
before mOSWindow->initialize() is called (and fails).
Bug: b/424595860
Bug: b/429026255
Change-Id: I118a912e871a4693ac529376ddf97c60dd77b1a0
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6694919
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Commit-Queue: Tim Van Patten <timvp@google.com>
|
|
f346ced7
|
2025-07-03T15:49:41
|
|
Fix UninstantiatedParameterizedTestSuite on iOS
CopyCompressedTextureTestES32 missed rename in
https://chromium-review.googlesource.com/c/angle/angle/+/6648198
Bug: b/419048313
Change-Id: I9c1b64a5625f9cd15b083ff6a0827c069752aa5c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6703639
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Auto-Submit: Yuly Novikov <ynovikov@chromium.org>
|
|
619e8bf8
|
2025-07-03T15:36:30
|
|
Skip MultisampleDepthStencilResolveSeparately on Pixel 6
Already skipped on Pixel 4. Fails on Pixel 6 Android 14.
Bug: angleproject:42266019
Change-Id: I5e1dfd805b48d59c68e28e07a2d6e4f58653c27c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6702483
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
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>
|
|
52005af1
|
2025-07-02T16:11:30
|
|
Define angle_use_gbm=false when !angle_has_build
angle_use_gbm is not defined when !angle_has_build. This causes
build to fail. Define it to false in this case.
Bug: angleproject:425569857
Change-Id: I8ba66f528b3052725467aeafe046900ec06b8989
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6701310
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Kramer Ge <fangzhoug@chromium.org>
|
|
2269011c
|
2025-06-30T14:08:11
|
|
Remove BitSet::to_ulong and BitSetArray::to_ulong
BitSet::to_ulong() is a bit redundant with bits(), and has a risk of
losing upper bits on windows platform where unsigned long is 32 bit.
This CL removes the usage of it and replaced with bits().
BitSetArray::to_ulong() method only captures up to 64 bits, all other
bits are dropped silently which is wrong. This CL fix this and serialize
it as a vector of uint64_t. BitSetArray::to_ulong() is removed in this
CL.
Bug: angleproject:42264163
Change-Id: I663b2cdacc0e930ee616e333131e831ec124a9d4
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6691283
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Charlie Lao <cclao@google.com>
|
|
2f8193ec
|
2025-06-25T13:17:47
|
|
Validate buffers bound for transform feedback are not modified.
The ES spec says it is undefined to write to a buffer that is currently
being used for transform feedback output but recommends generating an
error. Generate INVALID_OPERATION in this case.
Bug: chromium:427162086
Change-Id: I727d18c2035509fe2e5d60680eb5198e40a60e33
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6673310
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Vasiliy Telezhnikov <vasilyt@chromium.org>
|
|
9a05a2b7
|
2025-06-23T16:24:13
|
|
Reland "Vulkan: Avoid some loops in VertexArray::onBufferChanged"
This reverts commit 5df85793c602d64d47ef68e29542313be4116bc0.
Reason for revert: the regression bug is fixed
Some of the functionality related code has been merged into previous CL.
This CL now mostly clean up. The old subject/observer code is been
deleted from VertexArray.
Bug: angleproject:400711938
Original change's description:
> Revert "Vulkan: Avoid some loops in VertexArray::onBufferChanged"
>
> This reverts commit 8d6d127acc1072488e5b57ba4e7e93da2d94bfda.
>
> Reason for revert: https://issues.chromium.org/427064102
>
> Bug: angleproject:400711938
> Original change's description:
> > Vulkan: Avoid some loops in VertexArray::onBufferChanged
> >
> > Before this CL, VertexArray::onBufferChanged() loops over
> > bufferBindingMask bits and calls onSubjectStateChange. In this CL,
> > VertexArray::onSubjectStateChange is embedded into
> > VertexArray::onBufferChanged(). DIRTY_BIT_ELEMENT_ARRAY_BUFFER and
> > DIRTY_BIT_ELEMENT_ARRAY_BUFFER_DATA is re-arranged so that we can map
> > bufferBindingMask directly to VertexArray::mDirtyBits. This especially
> > useful when one buffer is bound to multiple indices in the VertexArray.
> >
> > This CL also removes angle::ObserverInterface from VertexArray, since it
> > no longer observes anything.
> >
> > ASSERT is added in gl::Buffer::mContentsObservers to ensure it only
> > contains BufferTexture, since vertexArray is no longer using the
> > subject/observer.
> >
> > Bug: angleproject:400711938
> > Change-Id: Ie6e7159d7a89f0da5e1b7ca0a9dbe60a1e6c682f
> > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6569638
> > Reviewed-by: Geoff Lang <geofflang@chromium.org>
> > Commit-Queue: Charlie Lao <cclao@google.com>
> > Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
>
> Bug: angleproject:400711938
> Change-Id: I3b8e77db7b3d06b9ed875bfe7787904ac753da11
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6664161
> Commit-Queue: Charlie Lao <cclao@google.com>
> Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Bug: angleproject:400711938
Change-Id: If7989b26701dcccbb8e49c42d388c0217e2d0b7f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6663536
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Charlie Lao <cclao@google.com>
|
|
2ac49bb6
|
2025-07-01T12:11:12
|
|
Reland "Vulkan: Move VertexArray::ElementBuffer away from observer"
This reverts commit 79ac1a8cd767a32cce6401203e20c4bd4ca4d539.
Reason for revert: the regression bug is fixed in PS6
The regression bug with the original CL is caused by when we bind a
vertex array without element buffer rebind, we missed to reset
mIndexRangeInlineCache. The other bug is that VertexArray::mDiryBits is
64 bit but VertexArrayBufferBindingMask is 16 bit, in
VertexArray::setDependentDirtyBits(), bufferBindingMask.to_ulong() <<
DIRTY_BIT_BUFFER_DATA_0 is only producing the 32 bit value on windows
platform due to unsigned long is 32 bit value. bits() is used and bit
shift is operated on to uint64_t here to avoid dropping high bits on
windows.
Two tests are added that reproduce the regression bug caused by
the original CL.
Bug: angleproject:400711938
Original change's description:
> Revert "Vulkan: Move VertexArray::ElementBuffer away from observer"
>
> This reverts commit 3f012a43ee2c101543785720eedfeaa80708479d.
>
> Reason for revert: https://issues.chromium.org/427064102
>
> Bug: angleproject:400711938
> Original change's description:
> > Vulkan: Move VertexArray::ElementBuffer away from observer
> >
> > Right now, VertexArray's element buffer is always observing buffer's
> > change. In previous CLs, we have moved vertex array away from
> > subject/observer usage. This CL moves element buffer away from
> > subject/observer as well. Since the gl::Buffer tracks buffer's binding
> > to each context's current vertex array's binding point,
> > kElementArrayBufferIndex is added to VertexArrayBufferBindingMask bits
> > so that the element buffer is tracked exactly the same as other vertex
> > array buffer bindings. The VerextArray code has been modified to handle
> > this special bit, since element buffer has its own binding point
> > VertexArrayState::mElementArrayBuffer as opposed to
> > VertexArrayState::mVertexBindings. After this CL, VertexArray object
> > should be completely off subject/observer usages.
> >
> > Bug: angleproject:400711938
> > Change-Id: I662ddfabc95034bdc7734939c944ab033f41801c
> > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6552160
> > Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
> > Reviewed-by: Geoff Lang <geofflang@chromium.org>
> > Commit-Queue: Charlie Lao <cclao@google.com>
>
> Bug: angleproject:400711938
> Change-Id: I9487ba8b108baaeda1c8a27189dba64f77616774
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6663539
> Commit-Queue: Charlie Lao <cclao@google.com>
> Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Bug: angleproject:400711938
Change-Id: I3f47ad1238c41f12b5cbd7a59b84be3fce1e9562
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6664004
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Commit-Queue: Charlie Lao <cclao@google.com>
|
|
de40b6e5
|
2025-06-06T13:18:09
|
|
tests: Add GetEglPlatform()
Testing the system EGL library was recently added to ANGLE's end2end
tests, breaking the assumption that the tests were interacting with the
ANGLE EGL library directly.
Many EGL end2end tests call eglGetPlatformDisplay() with the platform
value EGL_PLATFORM_ANGLE_ANGLE. However, Android only allows
EGL_PLATFORM_ANDROID_KHR, rejecting all other values (returning
EGL_NO_DISPLAY).
Add GetEglPlatform() to return the platform value to pass to
eglGetPlatformDisplay(), based on things like the driver being tested
and the OS the tests are running on. Currently, this only supports
returning EGL_PLATFORM_ANDROID_KHR for SystemEGL+Android, and
EGL_PLATFORM_ANGLE_ANGLE for everything else.
Bug: b/279980674
Change-Id: Ib8d7970c8e178beb14ecc6a4f96156783e60c257
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6634554
Commit-Queue: Tim Van Patten <timvp@google.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
|
|
4e0537ce
|
2025-06-13T11:23:58
|
|
EGLWindow: Query the Context version after creation
Move GetCurrentContextVersion() from
src/tests/egl_tests/EGLBackwardsCompatibleContextTest.cpp to
util/util_gl.h, so it can be used by both the test and EGLWindow.
Without EGL_ANGLE_create_context_backwards_compatible and specifying
EGL_CONTEXT_OPENGL_BACKWARDS_COMPATIBLE_ANGLE = EGL_FALSE, ANGLE will
create a context with the maximum conformant version the display
supports. If the extension is not supported, we need to query the actual
context version, so each test can behave accordingly.
EGL 1.5 Spec
3.7.1.1 OpenGL and OpenGL ES Context Versions
The context returned must be the specified version, or a later version
which is backwards compatible with that version.
It is expected that EGL_ANGLE_create_context_backwards_compatible is
*not* supported when testing the system EGL. This change also adds a log
message when the requested context version does not match the actual
version.
Bug: b/279980674
Change-Id: I58c0779db72c2afcc39c7d88a9a559b37698c994
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6653853
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Tim Van Patten <timvp@google.com>
|
|
e181ce7a
|
2025-07-01T11:10:16
|
|
end2end: Remove reference to *_EGL configs from help message
The *_EGL configs were removed with the following CL:
Support running the full end2end suite against the System EGL
https://crrev.com/c/6580876
Instead, users need to use the GN arg:
angle_test_enable_system_egl = true
Update the help message to remove the reference to *_EGL configs and
point users to the GN arg instead.
Bug: b/279980674
Change-Id: I05908a65eaab6d6a9fbdca9039b687ce4fc31567
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6696787
Reviewed-by: mohan maiya <m.maiya@samsung.com>
Commit-Queue: Tim Van Patten <timvp@google.com>
|
|
154e5711
|
2025-06-24T15:28:28
|
|
Refine validation for GetQueryObjectuiv
Spec says that after a graphics reset has occurred on a context,
subsequent GL commands on that context (or any context which shares
with that context) will generate a CONTEXT_LOST error.
Exceptions to this behavior include:
Any commands which might cause a polling application to block
indefinitely will generate a CONTEXT_LOST error, but will also return
a value indicating completion to the application. Such commands
include:
- GetSynciv with pname SYNC_STATUS ignores the other parameters and
returns SIGNALED in values
- GetQueryObjectuiv with pname QUERY_RESULT_AVAILABLE ignores the
other parameters and returns TRUE in params
Bug: angleproject:427242336
Change-Id: I86fd6f93a2c2a4b60c6a1e19637ee6382fadac7b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6666083
Auto-Submit: Shufen Ma <Shufen.Ma@arm.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Yuxin Hu <yuxinhu@google.com>
Reviewed-by: Alexey Knyazev <lexa.knyazev@gmail.com>
Reviewed-by: Charlie Lao <cclao@google.com>
|
|
56b5d523
|
2025-06-26T17:32:59
|
|
Fix GetTestConfigAPIFromRenderer() for SystemEGL Testing
Add support for GLESDriverType::SystemEGL to
GetTestConfigAPIFromRenderer() when system EGL testing is enabled with
ANGLE_TEST_ENABLE_SYSTEM_EGL. This allows the correct GPUTestConfig
value to be returned, rather than GPUTestConfig::kAPIUnknown.
The side-effect of this is fixing the expectations file handling for
entries with qualifiers like "VULKAN" and allowing those tests to be
skipped, for example.
Bug: b/279980674
Change-Id: Iaf039549b82f5ba7a047e621bb26968df511a75e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6681013
Commit-Queue: Tim Van Patten <timvp@google.com>
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
|
|
bb3f79dc
|
2025-06-26T16:59:48
|
|
Reorder shader resource dirty bits
Process storage and atomic buffer dirty bits before uniform dirty bits.
This helps the vulkan backend avoid duplicate work when multiple shader
resources are dirty
Bug: angleproject:426412564
Change-Id: Ibab3da44ee32d22078df851bfed4967d1c2a605e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6680035
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: mohan maiya <m.maiya@samsung.com>
Reviewed-by: Charlie Lao <cclao@google.com>
|
|
bbe53b75
|
2025-06-05T10:36:30
|
|
tests: Skip ShaderBinaryTest for System EGL
The system driver compiler version is not expected to match the version
compiled into the test, causing glShaderBinary() to return
GL_INVALID_VALUE due to the incompatible binaries.
Bug: b/279980674
Change-Id: I6fce9848345ce981003f0d6d8954e45c2966b523
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6622113
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Commit-Queue: Tim Van Patten <timvp@google.com>
|
|
3c8b492e
|
2025-06-26T09:39:29
|
|
Add histogram for DirectX device removal
Bug: dawn:423964507
Change-Id: I22d40ede209797e759f4b4f9e4b86785df33dbe5
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6665860
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
|
|
d28c6adf
|
2025-06-19T09:41:26
|
|
Modernize for macOS 12
macOS 12 is the minimum OS requirement, so remove the "main port"
workaround and do other modernization.
Bug: b/40250210
Change-Id: I9638014732f0589fc6171c0fe617b3c563f00c28
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6655558
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
3c41ca3e
|
2025-06-26T20:36:03
|
|
Bugfixes in YUV tests
- There is no mechanism to query dataspace of AHB, ensure
all color values are narrow range compatible
- Ensure AHB usage flag reflects actual usage
- Define YUV reference colors at the top and reuse in tests
Bug: angleproject:386749841
Change-Id: I29d095055ede67653f89a11bae845c086c690b1a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6679988
Commit-Queue: mohan maiya <m.maiya@samsung.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
56e9bfff
|
2025-06-19T00:00:00
|
|
GL: Remove obsolete macOS workarounds
Bug: angleproject:427600175
Change-Id: I8bfc062b71f1a34de09cbf76b504293ccd081fe0
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6676022
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
|
|
ca893fdf
|
2025-06-23T13:41:33
|
|
Search only for png files while pulling screenshot
restricted_trace_perf.py should only look for png files in temp dir and
then assert only for 1 screenshot to be present.
Bug: b/427963936
Change-Id: I0692aded39f7c3bd5b0c30ee4a7b613db08eac04
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6680727
Auto-Submit: Shashank Sharma <shawshanks@google.com>
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
|
|
dcc715ee
|
2025-06-19T15:35:53
|
|
Enable EGL_PLATFORM_GBM_KHR platform with device selection
FunctionsEGL.cpp:
- Allow EGL_PLATFORM_GBM_KHR platform and explicit device selection.
- Skip getPreferredDisplay if an explicit device is specified.
Display.cpp:
- Use DisplayEGL impl with EGL_PLATFORM_GBM_KHR.
- Wayland can use GBM platform, and OPENGLES.
angle.gni:
- Rename ozone_platform_gbm to ozone_platform_drm since its deprecated.
Bug: angleproject:425569857, b/396434686
Change-Id: I9493118f9dc95f78ebe46277bb4fcfeb7a29d465
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6663699
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Kramer Ge <fangzhoug@chromium.org>
|
|
d5babf99
|
2025-06-23T12:46:51
|
|
Vulkan: Fix unhandled deferred clears after glGetMultisamplefv
Issue was introduced in the commit that implemented deferred clears.
The `glGetMultisamplefv()` synchronizes draw framebuffer which defers
possibly staged clears. Since API is not handling deferred clears they
are left untouched, causing the ASSERT.
This change fixes the issue by not deferring clears for the
`glGetMultisamplefv()` command during flushing staged updates of dirty
framebuffer attachments.
Changes:
- Add `gl::Command::GetMultisample` enumeration for clarity.
- Add `gl::CommandBlitBuffer::CommandBlitBufferDepthStencil` enumeration
to improve code readability.
- Add `command` parameter into `gl::State::syncDirtyObject()` method to
use actual command enum instead of `Other`.
- Remove `previousDeferredClears` local variable and update ASSERT in
the `FramebufferVk::syncState()` method. New assert ensures empty
`mDeferredClears` instead of just checking dirty attachments, since
it is easy to make all attachments dirty making old and new assertions
act the same.
- Replace logic in `FramebufferVk::syncState()` that decides whether
need to defer attachments or not with switch-case. This makes the
logic more clear regarding handling individual commands and simplify
updating this handling in the future. Except of the bug fix with
`GetMultisample` command, handling of other command is uncached.
- Remove `flushDeferredClears()` from `FramebufferVk::readPixels()`
because `mDeferredClears` are not expected (now it's more clear after
the refactoring). And even if there are `mDeferredClears` (in case of
a bug or after API failure), `flushDeferredClears()` only flushes
clears for the draw framebuffer, while checking `mDeferredClears` of
the read framebuffer. This is a problem in case if read and draw
framebuffers are not the same.
Bug: angleproject:40644727
Test: angle_end2end_tests --gtest_filter=TextureMultisampleTest.GetMultisamplefvAfterClear/*
Test: angle_end2end_tests --gtest_filter=EGLSurfaceTest.GetMultisamplefvAfterClear/*
Change-Id: I376a62de52de5e17dbc63cc7ddb0506741a69266
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6661958
Commit-Queue: Igor Nazarov <i.nazarov@samsung.com>
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
b3ec3a5f
|
2025-06-23T14:51:13
|
|
Track active uniform and storage buffer blocks
Track active uniform and storage buffer block indices
so we can process updates to only active buffer blocks
Bug: angleproject:426412564
Change-Id: I54fa6fbe795073887646d672303d231ed4317b65
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6663825
Commit-Queue: mohan maiya <m.maiya@samsung.com>
Reviewed-by: Charlie Lao <cclao@google.com>
|
|
e15d293c
|
2025-06-16T16:24:09
|
|
tvOS: Disable child process creation code
tvOS does not support multi-process applications. As a result,
the code that creates a new process causes build failures when
building ANGLE unit tests on tvOS. This CL disables that code
to prevent the build from breaking.
Bug: b/424256388
Change-Id: Ib638d3f75b2839e1a75efc571645921f0d336e55
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6640919
Commit-Queue: Yuxin Hu <yuxinhu@google.com>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Reviewed-by: Solti Ho <solti@google.com>
|
|
beae1b4a
|
2025-06-19T00:00:00
|
|
Metal: Remove obsolete workarounds
Removed Intel-specific Metal workarounds
that are not used on macOS 12 and later.
Removed a redundant version check.
Bug: angleproject:427600175
Change-Id: I34c7e53108f7e030512c9436ab2b9ae38ad17946
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6672312
Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
79ac1a8c
|
2025-06-23T11:11:10
|
|
Revert "Vulkan: Move VertexArray::ElementBuffer away from observer"
This reverts commit 3f012a43ee2c101543785720eedfeaa80708479d.
Reason for revert: https://issues.chromium.org/427064102
Bug: angleproject:400711938
Original change's description:
> Vulkan: Move VertexArray::ElementBuffer away from observer
>
> Right now, VertexArray's element buffer is always observing buffer's
> change. In previous CLs, we have moved vertex array away from
> subject/observer usage. This CL moves element buffer away from
> subject/observer as well. Since the gl::Buffer tracks buffer's binding
> to each context's current vertex array's binding point,
> kElementArrayBufferIndex is added to VertexArrayBufferBindingMask bits
> so that the element buffer is tracked exactly the same as other vertex
> array buffer bindings. The VerextArray code has been modified to handle
> this special bit, since element buffer has its own binding point
> VertexArrayState::mElementArrayBuffer as opposed to
> VertexArrayState::mVertexBindings. After this CL, VertexArray object
> should be completely off subject/observer usages.
>
> Bug: angleproject:400711938
> Change-Id: I662ddfabc95034bdc7734939c944ab033f41801c
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6552160
> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
> Reviewed-by: Geoff Lang <geofflang@chromium.org>
> Commit-Queue: Charlie Lao <cclao@google.com>
Bug: angleproject:400711938
Change-Id: I9487ba8b108baaeda1c8a27189dba64f77616774
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6663539
Commit-Queue: Charlie Lao <cclao@google.com>
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
|
|
5df85793
|
2025-06-23T11:08:49
|
|
Revert "Vulkan: Avoid some loops in VertexArray::onBufferChanged"
This reverts commit 8d6d127acc1072488e5b57ba4e7e93da2d94bfda.
Reason for revert: https://issues.chromium.org/427064102
Bug: angleproject:400711938
Original change's description:
> Vulkan: Avoid some loops in VertexArray::onBufferChanged
>
> Before this CL, VertexArray::onBufferChanged() loops over
> bufferBindingMask bits and calls onSubjectStateChange. In this CL,
> VertexArray::onSubjectStateChange is embedded into
> VertexArray::onBufferChanged(). DIRTY_BIT_ELEMENT_ARRAY_BUFFER and
> DIRTY_BIT_ELEMENT_ARRAY_BUFFER_DATA is re-arranged so that we can map
> bufferBindingMask directly to VertexArray::mDirtyBits. This especially
> useful when one buffer is bound to multiple indices in the VertexArray.
>
> This CL also removes angle::ObserverInterface from VertexArray, since it
> no longer observes anything.
>
> ASSERT is added in gl::Buffer::mContentsObservers to ensure it only
> contains BufferTexture, since vertexArray is no longer using the
> subject/observer.
>
> Bug: angleproject:400711938
> Change-Id: Ie6e7159d7a89f0da5e1b7ca0a9dbe60a1e6c682f
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6569638
> Reviewed-by: Geoff Lang <geofflang@chromium.org>
> Commit-Queue: Charlie Lao <cclao@google.com>
> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Bug: angleproject:400711938
Change-Id: I3b8e77db7b3d06b9ed875bfe7787904ac753da11
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6664161
Commit-Queue: Charlie Lao <cclao@google.com>
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
|
|
2fd033d0
|
2025-05-22T04:21:11
|
|
Vulkan: Optimize updates to uniform buffers
... when only the offset is modified. Most of the work done when
handling dirty uniforms can be skipped since the buffer bindings
haven't changed
Bug: angleproject:386749841
Tests: UniformBufferTest31.UniformBufferBindingRangeChange*Vulkan
Change-Id: Ic811bd71f0f2993f88ce9bcf93f9e8e46dfc6d99
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6581359
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: mohan maiya <m.maiya@samsung.com>
|
|
d59dd3e4
|
2025-06-23T10:17:46
|
|
Unskip passing tests
The spec change to varying packing in Vulkan is reverted and so is the
SPIR-V validation change that enforced it.
Bug: angleproject:404418769
Change-Id: I6eb82b8285121f65a4ac071ad6ede106dfe07988
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6661620
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
5220e634
|
2025-06-16T11:14:22
|
|
Fix glCopyImageSubData validation check part 2
For compressed texture, we also need to check if the copy subregion
starting points (offset) are aligned with the compressed block.
This change also moves *FillsEntireMip check to the
ValidateCompressedRegion() function, as it is easier to do a
per-dimension check.
Bug: b/419048313
Bug: angleproject:42264179
Bug: angleproject:42265887
Change-Id: I0f415e575bbc77bdf5178e2b5fc1260c43e7de4b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6648198
Commit-Queue: Yuxin Hu <yuxinhu@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Auto-Submit: Yuxin Hu <yuxinhu@google.com>
Reviewed-by: Alexey Knyazev <lexa.knyazev@gmail.com>
|
|
3b7528e1
|
2025-05-20T12:31:28
|
|
Support running the full end2end suite against the System EGL
Update the end2end test instantiation to either fully target the
packaged ANGLE libraries or the system EGL, but not a combination of
both simultaneously.
The GN argument |angle_test_enable_system_egl| controls which driver
is being tested by all the instantiated tests. It's default value is
"false", which means the tests target the ANGLE libraries by default:
kDefaultGLESDriver = GLESDriverType::AngleEGL
When |angle_test_enable_system_egl = true|:
kDefaultGLESDriver = GLESDriverType::SystemEGL
This allows for testing the system EGL with the full end2end test suite,
which is useful on devices where ANGLE is the system EGL (e.g.,
Android). It also allows for specifying which backend to use (or all)
during system EGL testing, when ANGLE is the EGL driver.
This also includes removing the various ESx_EGL() functions, because the
end2end tests must now fully commit to testing either the ANGLE driver
or system driver, rather than a combination of both. This is similar to
many other test suites, such as the Khronos CTS (dEQP), which only test
validate a single driver per invocation.
Bug: b/279980674
Test: angle_end2end_tests
Change-Id: I4f7dc2ccb4f26b3bd02767d0a0d2876f8612f2ae
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6580876
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Tim Van Patten <timvp@google.com>
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
|
|
6bb47e67
|
2025-06-17T13:42:47
|
|
Vulkan: Limit finalizing foreign image layouts
Currently, any submission results in finalizing all foreign images.
However, if the submission is only limited to the outside render pass
command buffer, this would result in oldLayout VVL errors (01197), as
it would be too early to finalize the layout of such images at those
times. At this time, this type of submission can occur if the size of
buffer-to-image updates exceeds the following threshold:
kMaxBufferToImageCopySize
In this change, finalizing the foreign image layouts would only occur
when all commands are being submitted.
* In ContextVk::submitCommands(), finalizeAllForeignImages() is now
called only when the submission type is Submit::AllCommands.
* Added new submit tests for foreign images to ImageTest:
* UploadForeignUntilSubmitDoesNotBreakRenderPass
* CopyToForeignUntilSubmitDoesNotBreakRenderPass
Bug: b/425987310
Change-Id: Ia345e176be79017ba18ef52a57256eeeb298e39a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6653602
Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
|
|
98bd576f
|
2025-06-19T08:01:25
|
|
Roll VK-GL-CTS from 53a925d9098c to 9390207187c6 (28 revisions)
https://chromium.googlesource.com/external/github.com/KhronosGroup/VK-GL-CTS.git/+log/53a925d9098c..9390207187c6
2025-06-17 kamil.goras@mobica.com Add OpenGL tests for
textureQueryLevels
2025-06-16 lorenzo@khronosgroup.org Merge vk-gl-cts/vulkansc-cts-1.0.3
into vk-gl-cts/main
2025-06-16 lorenzo@khronosgroup.org Merge remote-tracking branch
'vk-gl-cts/dev/VK_EXT_shader_float8'
2025-06-16 lorenzo@khronosgroup.org Update external sources (Vulkan
1.4.318)
2025-06-16 lorenzo@khronosgroup.org Merge vk-gl-cts/opengl-es-cts-3.2.12
into vk-gl-cts/main
2025-06-13 ziga@lunarg.com Fix missing submit infos in sync multi queue
tests
2025-06-13 rgarcia@igalia.com Fix DeprecationWarnings in
fetch_sources.py
2025-06-13 scerveau@igalia.com CMake: add additional pc checks
2025-06-13 rgarcia@igalia.com Test conditional rendering with ray
tracing commands
2025-06-13 rgarcia@igalia.com Test "unaligned" buffer<->image copies
2025-06-13 jbolz@nvidia.com Add cooperative vector tests for readonly
loads w/bounds checking
2025-06-13 rgarcia@igalia.com Test maintenance5 default point size
without large points
2025-06-13 rgarcia@igalia.com Fix missing largePoints capability for
multiview tests
2025-06-13 vikram.tarikere@imgtec.com Honour undefined behaviour from
OpSDiv.
2025-06-13 lorenzo@khronosgroup.org Fix dependencies checks for
extensions and functions
2025-06-13 lorenzo@khronosgroup.org Merge vk-gl-cts/vulkan-cts-1.4.3
into vk-gl-cts/main
2025-06-12 kamil.goras@mobica.com Add negative tests that texture lookup
function bias parameter is not accepted in any other shader than
fragment shader.
2025-06-11 lorenzo@khronosgroup.org Add VK_EXT_shader_float8 JSON
2025-06-11 lorenzo@khronosgroup.org Add VK_KHR_maintenance9 JSON
2025-06-11 lorenzo@khronosgroup.org Add VK_KHR_video_decode_vp9 JSON
2025-06-11 lorenzo@khronosgroup.org Add VK_KHR_unified_image_layouts
JSON
2025-06-11 lorenzo@khronosgroup.org Update external sources
2025-06-11 lorenzo@khronosgroup.org Merge remote-tracking branch
'vk-gl-cts/dev/VK_KHR_maintenance9'
2025-06-10 scerveau@igalia.com video: VP9 decode tests: update public
repo
2025-06-09 lorenzo@khronosgroup.org Merge remote-tracking branch
'vk-gl-cts/dev/VK_KHR_video_decode_vp9' into main
2025-06-09 lorenzo@khronosgroup.org Merge remote-tracking branch
'vk-gl-cts/dev/VK_KHR_unified_image_layouts' into main
2025-06-09 lorenzo@khronosgroup.org Update external sources (Vulkan
1.4.317)
2025-06-06 lorenzo@khronosgroup.org Merge vk-gl-cts/opengl-cts-4.6.6
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,geofflang@google.com on the revert to
ensure that a human
is aware of the problem.
To file a bug in ANGLE:
https://bugs.chromium.org/p/angleproject/issues/entry
To report a problem with the AutoRoller itself, please file a bug:
https://issues.skia.org/issues/new?component=1389291&template=1850622
Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
Bug: None
Change-Id: I1f614f11f0f5cb73c24dd4346a837ec6dc88b0bf
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6658499
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Auto-Submit: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
cb432540
|
2025-06-19T17:00:27
|
|
WebGPU: Expand dEQP test expectations
This lowers our unexpectged passes from ~8k to ~3.5k.
Bug: angleproject:356399840
Change-Id: Idb9d4aee9103bc18783a7283d938c368c7efbe5b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5875956
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Liza Burakova <liza@chromium.org>
Commit-Queue: Liza Burakova <liza@chromium.org>
|
|
98d2d5d8
|
2025-06-19T14:44:21
|
|
WebGPU: Add missing WebGPU suffix for perf tests.
Bug: angleproject:419821694
Change-Id: Ic509df3fbd270ffc2a8f91c1565d673fb82a6bd2
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6652900
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
5d124404
|
2025-06-17T17:04:12
|
|
WebGPU: Fix bind groups leaking in CommandBuffer.
Wrap all per-submission member variables in a struct so that we can
reset everything at once using the default constructor. This avoids
similar leaks in the future.
Bug: chromium:413078308
Change-Id: I3f926c82905b73b27d6b751cfe2878a41ced916a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6652290
Reviewed-by: Matthew Denton <mpdenton@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|