|
c36d0cf0
|
2025-03-14T14:09:41
|
|
Metal: Improve ColorBlitUtils shader key hash
Did not hash transformLinearToSrgb.
Bug: angleproject:403372465
Change-Id: Ie06cf3535775f753e0468505e8b31fd513130b98
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6356891
Commit-Queue: Kimmo Kinnunen <kkinnunen@apple.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Alexey Knyazev <lexa.knyazev@gmail.com>
Auto-Submit: Kimmo Kinnunen <kkinnunen@apple.com>
|
|
6bd7a518
|
2025-03-19T13:35:48
|
|
Vulkan: Allow pipelineStatisticsQuery substitute PGO
Some devices are missing VK_EXT_primitives_generated_query
extension and primitivesGeneratedQuery (PGO) feature, which are
required for GLES3.2 extensions geometryShaderEXT and
tessellationShaderEXT. On such devices, when app requests to create
a GLES 3.2 context, the eglCreateContext call will fail due to not
able to support GLES 3.2.
We add a new feature flag
allowPipelineStaticsForPrimitivesGeneratedQuery,
and enable it on devices where we can fallback to using
pipelineStatisticsQuery (PSQ) as an approximation for
VK_EXT_primitives_generated_query, to broaden support for GLES 3.2
contexts. This is an opt-in feature for vendors that can functionally
substitute PGQ with PSQ.
Expose geometryShaderEXT and tessellationShaderEXT
extensions if allowPipelineStaticsForPrimitivesGeneratedQuery feature
is enabled.
Bug: b/333987915
Change-Id: I9f0affbc3cc383ed6c50bcfc5d4d6f7f8a708aaa
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6362627
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: mohan maiya <m.maiya@samsung.com>
Commit-Queue: Yuxin Hu <yuxinhu@google.com>
|
|
05c491e1
|
2025-03-15T11:56:07
|
|
Vulkan: Optimize GraphicsDriverUniforms update
Unless RP is closed there is no need to dirty GraphicsDriverUniforms
when the program executable changes.
Bug: angleproject:386749841
Test: VulkanPerformanceCounterTest.NoUpdatesToGraphicsDriverUniformsOnProgramChange*
Change-Id: Id02e8a17de93e2b73103666fc6cc62ce3cdd8f43
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6358315
Commit-Queue: mohan maiya <m.maiya@samsung.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
5b5a5e21
|
2025-03-17T17:59:18
|
|
Reformat VVL error message part1
Remove the string entries from skipped VVL error message.
TraceTest.manhattan_31 with SwiftShader no longer runs
into VVL error, remove the corresponding comments.
Bug: angleproject:316337308
Bug: angleproject:42265196
Change-Id: I113d2e7953b3f14ed9811df91204d046a5fe4fb4
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6364335
Commit-Queue: Yuxin Hu <yuxinhu@google.com>
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
d668a13c
|
2025-03-14T17:18:18
|
|
Fix sync issue between XFB output and texture buffer input
For the following scenario, where the first draw writes to the
transform feedback buffer and the second draw reads from the
same buffer as a texture buffer, it is necessary to end the
render pass between the two draws and add a pipeline barrier.
// xfb write to tex_buffer
glBindBufferBase(GL_TRANSFORM_FEEDBACK_BUFFER, 0, tex_buffer);
glBeginTransformFeedback();
glDrawArrays();
glEndTransformFeedback();
// Draw with texture buffer tex_buffer
glBindBuffer(GL_TEXTURE_BUFFER_EXT, tex_buffer);
glTexBufferEXT(GL_TEXTURE_BUFFER_EXT, ..., tex_buffer);
glDraw();
Bug: angleproject:403319685
Change-Id: I9381a336ce61dea696c93158bb617a41afcfc583
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6356070
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Auto-Submit: Mavis Deng <mavis.deng@arm.com>
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Charlie Lao <cclao@google.com>
|
|
292bb458
|
2025-03-14T12:17:49
|
|
Cut MAX_COLOR_ATTACHMENTS_WITH_ACTIVE_PIXEL_LOCAL_STORAGE_ANGLE
Since the number of real devices that support framebuffer fetch, but do
not support draw_buffers_indexed, is effectively zero,
MAX_COLOR_ATTACHMENTS_WITH_ACTIVE_PIXEL_LOCAL_STORAGE_ANGLE is an
unnecessary complication. These hypothetical devices can fall back on
shader images or just not support pixel local storage at all.
This closes the door for WEBGL_shader_pixel_local_storage to ever be
implemented on top of the ES2 extension that inspired it all,
EXT_shader_pixel_local_storage, but WebGL can just use framebuffer fetch
instead, or maybe even EXT_shader_pixel_local_storage2 some day.
This dramatically simplifies the WEBGL_shader_pixel_local_storage
extension.
Bug: angleproject:40096838
Change-Id: I9c51f2ce000620f883cb7917d4e8618c8e9ee803
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6354657
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Chris Dalton <chris@rive.app>
|
|
fca3fed3
|
2025-03-18T11:06:10
|
|
Manual roll vulkan-deps from 552ac332629b to bf9998679aee (25 revisions)
https://chromium.googlesource.com/vulkan-deps.git/+log/552ac332629b..bf9998679aee
Also rolling transitive DEPS:
https://chromium.googlesource.com/external/github.com/KhronosGroup/glslang/+log/0051b92b6fff2fd3dbc99b7dae316fa51a7f4767..8842cf92e3de290f275c46d55cbfe42b7d0775a6
https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools/+log/9e470ef0f95d6923fa19dc5c5dc48c1442eb5a8b..ba1359d203e544bd458373ba249a47c44e97b071
https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Loader/+log/8491f31d36a8c642e588220b89729129721fec31..54cbefd25dbcaeb2bb03da207afce6cad7fb5dd1
https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-ValidationLayers/+log/74a6b7dc828078cf2f1524d3947f65a29a1562e9..b2c8bd421aa5c1502fd56c3c07fb2831a8ceb882
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: angleproject:404418769
Change-Id: I359e903e2d061b7bbde6b18d234d8927d2cca56c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6368274
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Roman Lavrov <romanl@google.com>
|
|
dae3c851
|
2025-03-14T11:44:53
|
|
Vulkan: Bake non-shader state into linked pipeline
When using VK_EXT_graphics_pipeline_library, previously ANGLE would
create three pipelines libraries:
* The Shaders library was created based on the GL program's shaders + a
few static states. This typically hit the program's own pipeline's
cache that was warmed up during link.
* The VertexInput and FragmentOutput libraries were created at draw
time, which used the global pipeline cache
At draw time, immediately after creating the non-Shaders libraries, the
three libraries were linked into the final pipeline to be used by the
draw call.
This caused an inefficiency; because the non-Shaders libraries were
created independently from the Shaders library, they had to be compiled
pessimistically, for example because they could not be optimized to take
into account the precision of the fragment shader's outputs or whether
any value is const (typically alpha being set to one).
Given the creation of VertexInput and FragmentOutput libraries is
typically quite fast (the former being no-op and dynamic state anyway),
this change removes the need for creating those libraries, and directly
specifies the vertex input and fragment output state when creating the
final pipeline out of the Shaders library.
In this way, the same fragment output state can be tailored to the exact
shaders it is being used with and incur a smaller overhead. In this
change, the linked pipeline is cached in the GL program's pipeline
cache, which is never synced to the blob cache as producing it is
assumed to be fast already.
Bug: angleproject:42265839
Change-Id: I8496ea37771555522bdc9de94043a1b56fa5967e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6354205
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: mohan maiya <m.maiya@samsung.com>
Reviewed-by: Charlie Lao <cclao@google.com>
|
|
531e8791
|
2025-03-12T17:29:04
|
|
Change error set in ValidateCreateContext
According to EGL spec, if specified version number is not
a defined version of GLES, EGL_BAD_MATCH error should be generated,
but ANGLE generate EGL_BAD_ATTRIBUTE. Fix this and modify
the assert in the end2end test.
Bug: angleproject:403414983
Change-Id: I09ee779fc3008a420aeeb5c1416a44c9c82d2ec4
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6355745
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
|
|
fac33bb3
|
2025-03-13T09:40:56
|
|
Refine InterfaceVariablesMatch
During glDraw, in function GetMergedVaryingsFromLinkingVariables,
function InterfaceVariablesMatch does permissive check, so that
two backshader outputs may match one front shader input. Refine
that function to do more strict checking.
Bug: angleproject:402562396
Change-Id: I04f89dea97809e9621a125ca9385fb7416f7dcc2
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6347539
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Auto-Submit: Shufen Ma <Shufen.Ma@arm.com>
|
|
ae71cc1c
|
2025-03-11T16:36:52
|
|
Don't destroy blend or color mask state in PLS
The browser caches this state, so conditionally destroying it would
invalidate the browser's cache. Instead, cache modifications to
overridden PLS blend & color mask state in ContextPrivateState, and
restore it upon ending PLS.
Also update the spec to specify that FRAMEBUFFER_DEFAULT_WIDTH and
FRAMEBUFFER_DEFAULT_HEIGHT may be overridden during PLS in ES 3.1.
Bug: angleproject:40096838
Change-Id: Ic2c0aa6dc33ada7350e15e27bef22c79ca5f6c7f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6350727
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Alexey Knyazev <lexa.knyazev@gmail.com>
Commit-Queue: Chris Dalton <chris@rive.app>
|
|
f64a9547
|
2025-03-15T23:45:33
|
|
Metal: remove "Compute" from EnsureComputeShaderInitialized() name
Previously this function was named EnsureComputePipelineInitialized()
because it would create a compute pipeline. However at some point, the
pipeline's creation was moved to a pipeline cache. Thus this function
now only creates a shader function. This can be used to create both
compute & graphics shader functions so we should remove the "Compute"
part from its name.
Bug: None
Change-Id: I73d101142ec1fc72d150579bc409b1dea3196940
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6357511
Reviewed-by: Alexey Knyazev <lexa.knyazev@gmail.com>
Commit-Queue: Quyen Le <lehoangquyen@chromium.org>
|
|
5c2789e0
|
2025-03-14T15:17:30
|
|
Inline Context::uniform*
(most of?) these are called exactly once, such as
GL_Uniform2f [entry_points_gles_2_0_autogen.cpp]
Context::uniform2f [Context.cpp]
ProgramExecutable::setUniform2fv [ProgramExecutable.cpp]
Note how due to the different translation units each of these becomes a
separate function, and the intermediate one (uniform2f) is completely
unnecessary as it's only called by GL_Uniform2f. This CL reduces
the .so size a bit and improves code locality by avoiding
the intermediate functions.
Bug: b/383305597
Change-Id: Ia4afe651fabd25e55cd19a30bca71891d3e5a34a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6355328
Commit-Queue: Roman Lavrov <romanl@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
b600a42c
|
2025-03-13T15:18:40
|
|
Remove the PLS allow list
All the interactions with render passes have been properly solved now,
and there is no longer a need for the allow list.
Bug: angleproject:40096838
Change-Id: I0219fb8824820e076c128f10f49c85f0f76270ef
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6355312
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Chris Dalton <chris@rive.app>
|
|
c935e06d
|
2025-02-24T20:13:46
|
|
Revert "Vulkan: Fix Wayland surface size queries"
This reverts commit a277f1bce563999296620c29d83c760c0fb9763d.
Reason for revert:
No longer required, because `mIsSurfaceSizedBySwapchain` is always true
on Wayland which will provide same behavior as the reverted override
methods.
It is also a preparation for the follow up change.
Bug: angleproject:397848903
Bug: angleproject:40096815
Change-Id: If83ef133b422494d73565068e06e2d6a737f6315
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6298737
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Igor Nazarov <i.nazarov@samsung.com>
|
|
daaae2bd
|
2025-02-24T19:36:39
|
|
Vulkan: Remove surface caps query from createSwapChain
This is mainly a refactoring with minor bug fixes.
The `createSwapChain()` is called at initialize and at swapchain
recreate. Before recreate there is always `queryAndAdjustSurfaceCaps()`
call, which queries current surface sizes and min image count. However,
surface capabilities may be queried again from `createSwapChain()` to
get compatible present modes and the min image count.
Problem is that surface caps `currentExtent` may change after the second
query in the `createSwapChain()`, while the `extents` parameter is
already calculated. Such situation will violate the specification.
To eliminate the possibility of the above problem and to simplify the
code, query of compatible present modes is moved to the
`queryAndAdjustSurfaceCaps()`. To save performance,
`mCompatiblePresentModes` is only updated if swapchain is already
invalid (recreate is imminent). Function is now also handles
`mEmulatedPreTransform` to further simplify the code.
The `mSurfaceCaps` member was replaced with local variable. The
`mIsSurfaceSizedBySwapchain` boolean is added instead to check it in the
`getUserWidth()`/`getUserHeight()` methods. This also fixes a possible
bug (anglebug.com/168327817) on Fuchsia when this expression could be
false:
mSurfaceCaps.currentExtent.width == kSurfaceSizedBySwapchain
This is because previously `queryAndAdjustSurfaceCaps()` updated
`mSurfaceCaps` with the values from `getCurrentWindowSize()`. It
seems that the bug never happened on practice, otherwise the ASSERT
in the same function would fail.
The `prepareForAcquireNextSwapchainImage()` is used at initialize
instead of `createSwapChain()` to remove code duplication.
Fixed (anglebug.com/168327817) checking `mPreTransform` without enabled
"enablePreRotateSurfaces" feature.
Bug: angleproject:397848903
Bug: angleproject:168327817
Change-Id: I02e8e3b815b30350e12476853d8dcffed3fe7c38
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6298736
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Igor Nazarov <i.nazarov@samsung.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
8154cfc2
|
2025-03-13T15:37:17
|
|
Inline Framebuffer::getNumViews()
On Android it totals ~100 bytes of assembly, and includes a loop which
appears to be above clang heuristics thresholds with -O2 so I had to
force-inline throughout to get the desired behavior. There are only a
few callers so this has almost no effect on the binary size.
Bug: b/383305597
Change-Id: Iad3d9120f8b3f072c1db34134de8b3787efc13ca
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6351145
Commit-Queue: Roman Lavrov <romanl@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
fbb1829d
|
2024-12-08T01:46:39
|
|
Allow glClear while PLS is active
It just makes sure to not clear any draw buffers that may be in use for
pixel local storage.
Bug: angleproject:402810076
Bug: angleproject:40096838
Bug: angleproject:42266150
Change-Id: I60a573d5e9e5dbadce12d79e3f4b6fc57747e655
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6312336
Reviewed-by: Alexey Knyazev <lexa.knyazev@gmail.com>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Chris Dalton <chris@rive.app>
|
|
44853559
|
2025-02-25T17:29:54
|
|
Correct GLES renderbuffer default values
For GLES renderbuffer, the initial value queried for
RGBA bits should be 0, and the component type should be
GL_NONE according to spec. Correct the default values on
ANGLE now. An end2end test is also added.
Bug: angleproject:399693196
Change-Id: If8366b3d2350add917054813d3cb9a6a23727da7
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6312514
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
ac251fa8
|
2025-02-24T17:31:58
|
|
Vulkan: Remove doDeferredAcquireNextImage ContextVk dependency
This is the continuation of the previous CL. After this change
`lockSurface()` calls `doDeferredAcquireNextImage()` as the rest of the
code do.
The `ImageHelper::invalidateSubresourceContentImpl()` required
`ContextVk` pointer before this change.
The `ContextVk` is only used to print the performance warning when
`layerIndex` exceed the maximum count, which is not possible in case of
a `WindowSurfaceVk`. Added `layerLimitReachedOut` pointer instead of
writing the warning. It is processed in
`invalidateSubresource[Stencil]Content()`. Added
`invalidateEntireLevel[Stencil]Content()` which do not require
`ContextVk` to use in the `WindowSurfaceVk`.
Bug: angleproject:397848903
Bug: angleproject:42264593
Change-Id: I58451a4818ad56fa196c3c971df3a5f7793f2bfe
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6298735
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Igor Nazarov <i.nazarov@samsung.com>
|
|
2f5a91ba
|
2025-02-24T17:25:10
|
|
Vulkan: Remove checkForOutOfDateSwapchain ContextVk dependency
This is the continuation of the previous CL. After this CL it is now
possible to call `prepareForAcquireNextSwapchainImage()` from
`lockSurface()` that will also do necessary swapchain recreation in
case of window resize.
These methods required `ContextVk` pointer before this change:
- RenderTargetVk::releaseImageAndViews()
- replaced with `releaseSwapchainImage()` that does not release
framebuffer because Window Surface framebuffers are not managed by
the cache.
- added `release()` method that does release the framebuffer.
- WindowSurfaceVk::releaseSwapchainImages()
- use `Renderer::collectGarbage()` instead of
`ContextVk::addGarbage()`.
- use `ImageHelper::releaseImage()` instead of
`ImageHelper::releaseImageFromShareContexts()`. The
`finalizeImageLayoutInShareContexts()` was not required since
renderpass must be already ended, because swapchain recreate is only
possible after present. Removal of `addToPendingImageGarbage()` is
not going to cause OOM problems, because repeated swapchain
recreate calls are not possible without swap (submissions).
Bug: angleproject:397848903
Bug: angleproject:42264593
Change-Id: Iacfa3a144aa980659569b7100be25a44ebb9f0a0
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6298734
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Igor Nazarov <i.nazarov@samsung.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
3d96268d
|
2025-03-12T12:48:36
|
|
Vulkan: Fix dev mem report feature adding
The Vulkan device feature flag for VK_EXT_device_memory_report
is currently being queried from the physical device. However, the
feature is not added to the device's list of enabled features. This
can result in some devices not properly using the feature, e.g.,
showing 0s instead of the data.
* Added the memory report feature flag (mMemoryReportFeatures) as
an enabled feature before creating the device when one of the
following corresponding ANGLE features are enabled:
* logMemoryReportCallbacks
* logMemoryReportStats
Bug: b/380295966
Bug: angleproject:173636655
Change-Id: I7afad55e2582298ded75762f2cd666c05bb51f3d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6349539
Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
e6a27504
|
2025-03-07T20:14:50
|
|
Vulkan: Swapchain recreate workaround for shared present mode
On Android, `vkCreateSwapchainKHR` may return
`VK_ERROR_NATIVE_WINDOW_IN_USE_KHR` if use `mLastSwapchain` as an
`oldSwapchain` when in shared present mode. This happens on three
different devices: SM-G996B (Mali-G78), SM-S921B (Xclipse 940), SM-S921U
(Adreno 940).
Bug: angleproject:397848903
Bug: angleproject:42262606
Change-Id: I1541c06c254f3e8231b165fb0c53eff5d810e8bd
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6329488
Commit-Queue: Igor Nazarov <i.nazarov@samsung.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
354a5463
|
2025-02-24T16:52:06
|
|
Vulkan: Remove recreateSwapchain ContextVk dependency
In the upcoming change, swapchain will be invalidated in swap, while
recreate deferred until ANI. After such invalidation, `lockSurface()`
wold not be possible. Even that currently swapchain may be invalid only
after previous recreate failure, this change adds `recreateSwapchain()`
call into `lockSurface()` because it is now possible and as a
preparation for the upcoming change.
The `recreateSwapchain()` is split into `invalidateSwapchain()` and
`recreateSwapchain()` methods. The invalidate must be called before the
recreate.
Bug: angleproject:397848903
Bug: angleproject:42264593
Change-Id: Ida4a98a985f9fbb527cdf8c81c088ae1210f409c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6298733
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Igor Nazarov <i.nazarov@samsung.com>
|
|
db48967f
|
2025-03-05T09:07:10
|
|
Reland "Add GL_BGRA_EXT as a sized renderable format"
This reverts commit 4bfb9da6f98b3e28905cc759a77bff750dfe3ff7.
Reason for revert: More mapping fixes for GL backend
Original change's description:
> Revert "Reland "Add GL_BGRA_EXT as a sized renderable format""
>
> This reverts commit 8f2fbbd1a0d16471596afad57c88f950a1ee3032.
>
> Reason for revert: http://anglebug.com/399913714
>
> Original change's description:
> > Reland "Add GL_BGRA_EXT as a sized renderable format"
> >
> > This reverts commit 22dfe435daa7c680c07bb8d4f1d98ab765e60ad0.
> >
> > Reason for revert: Fixed mapping back to BGRA_EXT for GL backend
> >
> > Original change's description:
> > > Revert "Add GL_BGRA_EXT as a sized renderable format"
> > >
> > > This reverts commit 80093a7d8f850c3ab551ddb4972c2f1f27511433.
> > >
> > > Reason for revert: suspect for blocking rolling ANGLE into Chroimum
> > > https://chromium-review.googlesource.com/c/chromium/src/+/6283973
> > > https://ci.chromium.org/ui/p/chromium/builders/try/chromeos-amd64-generic-rel-gtest/372754/overview
> > >
> > > Original change's description:
> > > > Add GL_BGRA_EXT as a sized renderable format
> > > >
> > > > dEQP tests were updated to cover GL_BGRA_EXT as a sized renderable
> > > > format. It was apparently always supposed to be, based on the
> > > > wording of the spec.
> > > >
> > > > This CL adds that support and updates expectations, along with a few
> > > > extra tests.
> > > >
> > > > Includes contributions from Robic.Sun@arm.com.
> > > >
> > > > Test: angle_end2end_tests, angle_deqp_*_tests
> > > > Bug: b/42267264
> > > > Bug: angleproject:394384906
> > > > Change-Id: Ia10bcd61f66c5d99a3d27a2cfd6008c991ddcaa7
> > > > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6235444
> > > > Reviewed-by: Geoff Lang <geofflang@chromium.org>
> > > > Commit-Queue: Cody Northrop <cnorthrop@google.com>
> > > > Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
> > >
> > > Bug: b/42267264
> > > Bug: angleproject:394384906
> > > Change-Id: I64572361cfed33b4ea17eabf278f580471d045c2
> > > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6285628
> > > Auto-Submit: Yuly Novikov <ynovikov@chromium.org>
> > > Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
> > > Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
> > > Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
> >
> > Bug: b/42267264
> > Bug: angleproject:394384906
> > Change-Id: I1bd9df904d93fd54286cbfce53fe89db89e842b9
> > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6310699
> > Commit-Queue: Cody Northrop <cnorthrop@google.com>
> > Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
> > Reviewed-by: Geoff Lang <geofflang@chromium.org>
>
> Bug: b/42267264
> Bug: angleproject:394384906
> Bug: angleproject:399913714
> Change-Id: I9f79f39a6d9cba3b23c261005bc3e012d70cd1cf
> No-Presubmit: true
> No-Tree-Checks: true
> No-Try: true
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6312977
> Auto-Submit: Cody Northrop <cnorthrop@google.com>
> Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
> Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Bug: b/42267264
Bug: angleproject:394384906
Bug: angleproject:399913714
Change-Id: Ifc98fcbb0883dc4a55ad358825e9c1935fa26eaa
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6330036
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
|
|
62bf97d9
|
2025-03-10T14:23:31
|
|
Metal: Fix line loop indexes for primitive restart
Use the existing code to generate line strips from line loops.
Bug: angleproject:401284933
Change-Id: Ie131199c23b93364fabb8f0dc6766f7e8d5f2b8d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6333539
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Auto-Submit: Kimmo Kinnunen <kkinnunen@apple.com>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
|
|
9f9a0dfd
|
2025-03-06T21:20:40
|
|
Fix framebuffer attachment format sizes query for Surface
Surface as framebuffer attachment is always specified and should return
valid format sizes even if extents is empty.
At the same time, accessing Window surface sizes without previously
acquiring next swapchain image (Vulkan backend) may result in outdated
values. In other words, without framebuffer synchronization.
This change not only fixes the bugs, but also removes dependency on
surface size.
Test: angle_end2end_tests --gtest_filter=PbufferTest.ZeroSizedSurfaceFormatQuery/*
Bug: angleproject:402532204
Bug: angleproject:397848903
Bug: angleproject:42261031
Change-Id: I736a484caf99e0ff306c244ca13e1eb181222e64
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6329487
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
97083463
|
2025-03-10T09:07:16
|
|
Polish PLS interactions with xform feedback & QCOM_tiled_rendering
For the simplest integration with WebGL, it was decided that
glBeginTransformFeedback() and glStartTilingQCOM() should implicitly
disable PLS, whereas glBeginPixelLocalStorageANGLE() should fail if
either of these modes are active.
Bug: angleproject:40096838
Change-Id: I859a496c99c60c5b040c5eac542f43d85872eb30
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6339788
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Chris Dalton <chris@rive.app>
|
|
4b39a6a9
|
2025-03-08T14:16:29
|
|
Generate errors for framebuffer invals during PLS
Generate GL_INVALID_OPERATION for InvalidateFramebuffer,
InvalidateSubFramebuffer, and DiscardFramebufferEXT (and add them to the
PLS allow list so we can test the new validation).
This is part of a final preparation before deleting the allow list.
Bug: angleproject:40096838
Change-Id: If8ffb9c1998ca739798171ae4643a3c9ad3ee049
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6335750
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Chris Dalton <chris@rive.app>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
bdff6ade
|
2025-03-10T17:49:35
|
|
Correct glGet* values for stencil masks
Using CastMaskValue for GL_STENCIL_VALUE_MASK,
GL_STENCIL_BACK_VALUE_MASK, GL_STENCIL_WRITEMASK and
GL_STENCIL_BACK_WRITEMASK would cast them from 0xFFFFFFFF
to 0x7FFFFFFF, which makes glGetInteger* and glGetFloat*
return wrong value for them. CastMaskValue is not
needed now, so we should delete it. Also, glGetFloat*
return value should be positive, so additional cast
is added for those masks.
Bug: angleproject:399774386
Change-Id: Ibc2a5fd232be25c854b33df513e3cc0c74cfe8a4
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6342590
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
1ead4cbd
|
2025-03-07T09:49:21
|
|
Allow texture modification commands while PLS is active
Just do a little extra validation and bounce modifications if they would
modify an active PLS plane.
Bug: angleproject:40096838
Change-Id: I6f27951f5d0ef5dfaf23b5a005a2d94a749e2c4f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6337703
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Alexey Knyazev <lexa.knyazev@gmail.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Chris Dalton <chris@rive.app>
|
|
235c0be1
|
2025-03-07T13:48:48
|
|
Fix program cache on relink with glTransformFeedbackVaryings
glTransformFeedbackVaryings updates
mState.mTransformFeedbackVaryingNames, which was then saved to cache
during a post-link that might happen after this was executed.
Change ::serialize() to save
mState.mExecutable->mTransformFeedbackVaryingNames
instead, as according to Shabi this is the intended behavior.
Also do the same for isSeparable and transformFeedbackBufferMode.
Adds a repro where this led to tfvaryings getting loaded from cache into
a new program that didn't specify tfvaryings.
This resolves the interaction between these tests executed sequentially
(such as with --bot-mode):
GLSLTest_ES3.UnsuccessfulRelinkWithBindAttribLocation/ES3_Vulkan
MultithreadingTest.ProgramLinkAndBind/ES3_Vulkan
Bug: angleproject:401554049
Bug: angleproject:383164783
Change-Id: I66c599bc68c537e0cd47fbb99dd61d1d7a8a2824
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6329734
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Roman Lavrov <romanl@google.com>
|
|
79faadf7
|
2025-02-19T16:04:19
|
|
Vulkan: Simple WindowSurfaceVk refactoring
Changes:
- Update `ImageAcquireState` enumeration.
- Make `getCurrentWindowSize()` const. Some implementations are now
using local `surfaceCaps` variable instead of `mSurfaceCaps`, however
this will not affect reset of the logic.
- Remove `extentsOut` parameter from `createSurfaceVk()` and call
`getCurrentWindowSize()` explicitly only when needed.
- Remove `forceSwapchainRecreate` parameter since it is always has false
as an argument.
- Remove redundant `impl::` namespace.
- Make `queryAndAdjustSurfaceCaps()` const.
Bug: angleproject:397848903
Change-Id: I955be15fb4709e137f2ad8a165fd04a3fe626fbf
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6298732
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Igor Nazarov <i.nazarov@samsung.com>
|
|
35ffe55c
|
2025-03-09T15:00:27
|
|
Block framebuffer queries on overridden PLS state
Generate an error from glGetFramebufferAttachmentParameteriv() when
querying a color attachment that has been overridden by PLS.
Bug: angleproject:40096838
Change-Id: I83e68c3527f034f9a24822cf4f57789f81b9b6af
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6338390
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Alexey Knyazev <lexa.knyazev@gmail.com>
Commit-Queue: Chris Dalton <chris@rive.app>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
5b343e8f
|
2025-03-11T11:35:08
|
|
Vulkan: Remove support for Stadia
Bug: angleproject:42262714
Change-Id: Icae5fe828fe4e0bcd287d297df1bc586708ef86e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6344390
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
|
|
668a7a2e
|
2025-02-19T14:55:49
|
|
Revert "Vulkan: Return cached width and height for eglQuerySurface"
This reverts commit db833869131eddb36e695717a823a540e3cdc8ba.
Reason for revert:
Native GLES driver behavior on Android is different from what was tested
by "EGLPreRotationSurfaceTest.CheckSurfaceCapabilities" test. More
precisely, behavior is different depending if native Window is resided
using `ANativeWindow_setBuffersGeometry()` or resized by the user
(screen rotation or resizing of a floating window).
In case of `ANativeWindow_setBuffersGeometry()` resize (used by tests),
surface will have size of the Window up until image is acquired
(dequeued). In other words, size will be fixed after draw and will match
current Window size until draw.
In case of resizing by the user, surface size will be fixed until the
next swap. This is the behavior that was tested by the reverted test.
Bug: angleproject:397848903
Bug: angleproject:153329980
Change-Id: I8fc8d194c1591aff714dd255acd25392b4963e0d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6298731
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Igor Nazarov <i.nazarov@samsung.com>
|
|
d62bc095
|
2025-03-10T16:01:02
|
|
Remove unused VVL skip message
Following test
angleproject:42265049
MultisampledRenderToTextureES31Test.DrawCopyThenBlendAllAttachmentsMixed/ES3_1_Vulkan
no longer fails due to VVL error.
Tested on Pixel 8.
Remove the outdated VVL suppression.
Bug: angleproject:42265049
Change-Id: I6e4ba623439a3705e0b897af0af1d1174ef34854
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6341271
Commit-Queue: Yuxin Hu <yuxinhu@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
9a753dba
|
2025-01-16T13:00:07
|
|
Metal: remove unused, buggy primitive restart code
Remove functions related to primitive restart that are not used and
are buggy.
Bug: angleproject:401284933
Change-Id: I4b64fda45f2d1654fafd180aeaaf17fe365d5016
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6333537
Auto-Submit: Kimmo Kinnunen <kkinnunen@apple.com>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Alexey Knyazev <lexa.knyazev@gmail.com>
|
|
f38a081c
|
2025-03-06T12:34:20
|
|
WGPU: when copying to mip levels, copy correct size
Bug: angleproject:389145696
Change-Id: I78a2a573de371c1439033ef4e43f84906b076d41
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6333237
Reviewed-by: Liza Burakova <liza@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Matthew Denton <mpdenton@chromium.org>
|
|
1bfeb8a5
|
2025-03-03T00:00:00
|
|
D3D11: Set SV_Position interpolation for conservative depth
HLSL requires centroid interpolation for PS input
position if conservative depth output is used and
the shader is executing at pixel-frequency.
Bug: angleproject:397720825
Change-Id: I2b314e39e40a63cb58e2bdef99ffa842ddaaff0d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6336827
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
|
|
f1a29079
|
2025-02-27T16:47:17
|
|
Add validation of invalid parameters for certain APIs
The list of modified validation APIs:
- ValidatePixelPack
- ValidateDebugMessageControlKHR
Bug: angleproject:399412222
Change-Id: I07a5603431db6b0f89139fdd21d2d0a050b30027
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6307365
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Auto-Submit: Xinyu Fang <xinyu.fang@arm.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
6c2737be
|
2025-03-06T13:09:44
|
|
Allow RASTERIZER_DISCARD while PLS is active
Writes to pixel local storage can just be discarded as normal.
The only special interaction we need is that BeginPixelLocalStorageANGLE
always clears the PLS attachments, even if RASTERIZER_DISCARD is
enabled.
Bug: angleproject:40096838
Change-Id: I43d00af96b287134d73f08802cea58694fe7d717
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6332026
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
e41cbdb5
|
2025-02-26T17:51:06
|
|
Complete the implementation of GL_EXT_buffer_storage
Currently, glBufferStorageEXT doesn't set buffer usage to
DYNAMIC_DRAW. Also, validation of glGetBufferParameter* misses
check for GL_BUFFER_IMMUTABLE_STORAGE_EXT and
GL_BUFFER_STORAGE_FLAGS_EXT. This patch fixes these issues.
Also, an end2end test is added.
Bug: angleproject:399689628
Change-Id: Iecf6bd921f4fff849a5f059adf40043d08edfb7a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6312515
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
|
|
0331847e
|
2025-03-07T16:32:41
|
|
Vulkan: Update VkGraphicsPipelineCreateInfo::flags
... with protected access bits if VK_EXT_pipeline_protected_access
is supported
Bug: angleproject:42265839
Bug: angleproject:391002353
Change-Id: Ibb00a4a0dcb1084046403bf4bfaeeb8d125b9aea
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6336515
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
412bd05c
|
2025-03-06T19:26:11
|
|
Implement workaround for MAX_COMBINED_SHADER_OUTPUT_RESOURCES.
Implement a GL Feature to force MAX_COMBINED_SHADER_OUTPUT_RESOURCES to
be the sum of MAX_COMBINED_SHADER_STORAGE_BLOCKS,
MAX_COMBINED_IMAGE_UNIFORMS, and MAX_COLOR_ATTACHMENTS.
Enable the feature for NV and PowerVR Rogue.
Bug: angleproject:401232345
Change-Id: I03a113eed364617303f4ee59d90c853258865259
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6330671
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Stephen White <senorblanco@chromium.org>
|
|
4eb4165b
|
2025-03-07T10:24:05
|
|
Roll third_party/dawn/ 8119dbd27..7a8946456 (244 commits; 3 trivial rolls)
Need
https://dawn-review.googlesource.com/c/dawn/+/229494
to roll
https://chromium-review.googlesource.com/c/angle/angle/+/6334483
vulkan_platform.h:152:9: error: 'VK_USE_PLATFORM_XLIB_KHR' macro redefined
https://dawn.googlesource.com/dawn.git/+log/8119dbd27471..7a8946456d49
$ git log 8119dbd27..7a8946456 --date=short --no-merges --format='%ad %ae %s'
2025-03-07 cwallez [tint] Add support for binding_array to the IR validator
2025-03-07 hitawala [stream] Check for size invalidity before reserving in Stream::Read
2025-03-07 cwallez Reland "[dawn] Fix detection of __builtin_assume for DAWN_ASSERT"
2025-03-06 dawn-autoroll Roll ANGLE from 99ebd28ad246 to 0cdbc7814e59 (4 revisions)
2025-03-06 jiawei.shao Remove the redefinition of dawn::native::Vulkan::ClampFragDepthArgs
2025-03-06 jiawei.shao Vulkan: Implement PreferNotUsingMappableOrUniformBufferAsStorage()
2025-03-06 rharrison [tint][ir][fuzz] Re-enable SubgroupMatrix in IR binary
2025-03-06 shrekshao [Compat] Remove suppressions for ReadOnlyDepthStencilAttachmentTests
2025-03-06 thomasanderson [X11] Don't redefine VK_USE_PLATFORM_XLIB_KHR
2025-03-06 lokokung [dawn][emscripten] Fix Emscripten bindings for compilation messages.
2025-03-06 lokokung [dawn][native] Add validation for Infinities.
2025-03-06 lokokung [dawn][headers] Update wgpu::Surface APIs to match upstream.
2025-03-06 bsheedy [tools] Convert glob to use dependency injection
2025-03-06 cwallez [dawn][native] Track the set of BGLInternal separately from BGL.
2025-03-06 amaiorano tint: make PreventInfiniteLoops count down from uint32::highest() down to 0
2025-03-06 dsinclair Revert "Vulkan: Allow setting multiple `MemoryKind` bits"
2025-03-06 ynovikov Reland "Roll reclient, siso; update related DEPS to match Chromium"
2025-03-06 dawn-autoroll Roll ANGLE from 1a0c9db3748a to 99ebd28ad246 (8 revisions)
2025-03-06 cwallez Revert "[dawn] Fix detection of __builtin_assume for DAWN_ASSERT"
2025-03-05 zhaoming.jiang Dawn: Remove adapter from shader compilation request
2025-03-05 jiawei.shao Skip the test CreateBufferOOMWithValidationError when no validation
2025-03-05 lokokung [dawn][native] Make error scopes thread local.
2025-03-05 dawn-autoroll Roll ANGLE from 6b10ae3386b7 to 1a0c9db3748a (3 revisions)
2025-03-05 mohamedkhairy0101 tint: Improve error message for module-scope function calls
2025-03-05 mohammedashraf4599 add BOM error message
2025-03-05 cwallez [dawn] Fix detection of __builtin_assume for DAWN_ASSERT
2025-03-05 cwallez [tint] Add binding_array indexing to the resolver.
2025-03-05 kylechar Add SlabAllocator::DeleteEmptySlabs()
2025-03-05 dawn-autoroll Roll ANGLE from 73992d71f9d1 to 6b10ae3386b7 (7 revisions)
2025-03-05 shrekshao Remove enabling core-features-and-limits in backends
2025-03-04 lokokung [dawn][headers] Removes default UTF16 support.
2025-03-04 lokokung Reland "[dawn][headers] Remove obsolete ifdefs."
2025-03-04 jwata build: GN builds use Siso without Reclient in tools/setup-build script
2025-03-04 jrprice [vulkan] Fix subgroup matrix config gathering
2025-03-04 dawn-autoroll Roll ANGLE from bd8bc1055ecd to 73992d71f9d1 (1 revision)
2025-03-04 chrome-branch-day Activate dawn M135
2025-03-04 beaufort.francois Remove maxInterStageShaderComponents limit
2025-03-04 beaufort.francois Refactor Bindgroup constructors
2025-03-04 cwallez [tint] Add binding_array to the resolver
2025-03-04 cwallez Revert "[dawn][headers] Remove obsolete ifdefs."
2025-03-04 lokokung [dawn][headers] Remove obsolete ifdefs.
2025-03-03 zhaoming.jiang Dawn: Cache limits in AdapterBase
2025-03-03 dawn-autoroll Roll ANGLE from 19b35fcbff31 to bd8bc1055ecd (5 revisions)
2025-03-03 lokokung [dawn][headers] Adds extension support for UTF-16 in compilation message.
2025-03-03 jrprice [spirv] Only add explicit layout decorations on types that need them
2025-03-03 kainino [emscripten] Add emsdk to DEPS for Wasm builds
2025-03-03 lokokung [dawn][wire] Adds Dawn wire invalid extension struct and handling.
2025-03-03 jrprice [dawn] Validate workgroup size for subgroup matrix
2025-03-03 jrprice [inspector] Reflect the use of a subgroup matrix
2025-03-03 jrprice [tint] Reject non-compute shaders that use subgroup matrices
(...)
2025-02-18 zhjiang Dawn: Tighten the scope of ScopedTintICEHandler
2025-02-18 dawn-autoroll Roll DirectX Shader Compiler from 6b68f3b5832c to fcbd2a184294 (2 revisions)
2025-02-18 jiawei.shao Replace `PipelineCompatibilityToken(0)` with `kExplicitPCT`
2025-02-18 yulong.fs fix memory address value passed to emwgpuDelete()
2025-02-18 dsinclair [spirv-reader][ir] Implement OpConvertFToU
2025-02-18 kainino dawn::DynamicLib: Leak all DLLs on Windows ASan builds
2025-02-18 dsinclair [spirv-reader][ir] Implement ConvertFToS
2025-02-18 petermcneeley Fix for assignment outside the range of representable type
2025-02-18 kainino Refactor TINT_ASAN_ENABLED into common DAWN_ASAN_ENABLED()
2025-02-18 gman Add a trace option to the Metal Backend
2025-02-18 dawn-autoroll Roll ANGLE from ba3dcfa4670d to 8dda514cb833 (3 revisions)
2025-02-18 dsinclair Mark function unused.
2025-02-18 dawn-autoroll Roll DirectX Shader Compiler from 20950d662f4d to 6b68f3b5832c (1 revision)
2025-02-17 dawn-autoroll Roll ANGLE from e0332c861004 to ba3dcfa4670d (1 revision)
2025-02-17 dawn-autoroll Roll vulkan-deps from 2a09ac22553e to 5d08bc0b0e23 (6 revisions)
2025-02-17 yulong.fs fix buffer destroy
2025-02-17 dawn-autoroll Roll ANGLE from 51d2561b5a6b to e0332c861004 (1 revision)
2025-02-17 lehoangquyen D3D: remove dead code used by the old external image API
2025-02-16 dawn-autoroll Roll Depot Tools from 77a800d7294d to 7a0dbd207449 (59 revisions)
2025-02-16 jiawei.shao Enable creating pipeline layout with null bind group layout by default
2025-02-16 dawn-autoroll Roll vulkan-deps from 2365826a66b2 to 2a09ac22553e (1 revision)
2025-02-15 dawn-autoroll Roll vulkan-deps from cc6490ed63e7 to 2365826a66b2 (5 revisions)
2025-02-15 dawn-autoroll Roll ANGLE from bef478f54e6e to 51d2561b5a6b (2 revisions)
2025-02-15 jie.a.chen Fix CooperativeMatrix extension index
2025-02-14 dawn-autoroll Roll ANGLE from 7afa2345f8d2 to bef478f54e6e (3 revisions)
2025-02-14 dsinclair [spirv-reader][ir] Register names instead of using new
2025-02-14 dsinclair [spirv-reader][ir] Support OpBranchConditional after OpSelectionMerge
2025-02-14 dawn-autoroll Roll vulkan-deps from 5cc3a63e8fdb to cc6490ed63e7 (5 revisions)
2025-02-14 gman Emit WGSL errors as part of GPUValidationError
2025-02-14 jimblackler [Kotlin] Update template now WGPUChainedStructOut has been removed.
2025-02-14 dawn-autoroll Roll ANGLE from cd7f92e1ed57 to 7afa2345f8d2 (6 revisions)
2025-02-13 petermcneeley Substitute overrides in IR (vk)
2025-02-13 shaoboyan [Spirv] Remove clamp_frag_depth attribute in Options
2025-02-13 dsinclair [spirv-reader][ir] Handle OpBranch instruction
2025-02-13 jrprice [ir] Add builtin struct support to the protobuf
2025-02-13 rharrison [tint][ir][val] Check Samplers & Textures address space
2025-02-13 jrprice [tint] Add flag for WGSL internal structures
2025-02-13 rharrison [tint] Replace unsafe casting with shift & mask in eval.cc
2025-02-13 rharrison [tint] Narrow warning suppression in table_data.h
2025-02-13 bajones Loosen Viewport validation requirements
2025-02-13 shrekshao [Compat] Add compat-min-es31 tags in expectations
2025-02-13 gman Remove old subgroups from dawn.node
2025-02-13 dawn-autoroll Roll ANGLE from 19c5293e1347 to cd7f92e1ed57 (9 revisions)
2025-02-13 dsinclair [spirv-reader][ir] Add names for functions and function parameters.
2025-02-13 dsinclair [spirv-reader][ir] Support names.
2025-02-13 dsinclair [spirv-reader][ir] Fixup mixed sign binary methods.
2025-02-13 dawn-autoroll Roll vulkan-deps from a88fd25a6a0d to 5cc3a63e8fdb (17 revisions)
2025-02-13 dsinclair Add suppressions for compat failures.
2025-02-13 jrprice [spirv] Emit Matrix*SignedComponents operands
2025-02-13 jrprice [tint] Subgroup matrix component types do not have to match
Created with:
roll-dep third_party/dawn
Bug: chromium:345261080
Change-Id: I9ee360934bcbd838d682ffabe5029cc7baecec9b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6333617
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
efb344e9
|
2025-03-06T15:09:21
|
|
Remove unused VVL skip message
Below tests from the two bugs:
angleproject:42264930
Texture2DBaseMaxTestES3.Fuzz545ImmutableTexRenderFeedback/ES3_Vulkan
angleproject:42265542
FramebufferTest_ES3.ReattachToInvalidBaseLevel/ES3_Vulkan
No longer fails due to VVL error.
Tested on Linux with AMD Vulkan driver.
Remove the original VVL error from the skip list.
Bug: angleproject:42264930
Bug: angleproject:42265542
Change-Id: I249033e643211bae399712303162ab990c154fa6
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6334552
Auto-Submit: Yuxin Hu <yuxinhu@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
85fe2671
|
2025-02-25T16:54:20
|
|
Set length or infoLog when they are not NULL
For glGetProgramPipelineInfoLog, spec says that if length is NULL,
then no length is returned. Also do this to infoLog to avoid crash.
Bug: angleproject:398904340
Change-Id: I1f87a8932f72a0d5c44c2344936ee18c674a802b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6300356
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Roman Lavrov <romanl@google.com>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
|
|
b5ad5035
|
2025-03-05T18:01:42
|
|
Manual roll vulkan-deps from 898a2304cea9 to 4b720a347d47 (1 revision)
Manual roll requested by solti@google.com
https://chromium.googlesource.com/vulkan-deps.git/+log/898a2304cea9..4b720a347d47
Also rolling transitive DEPS:
https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-ValidationLayers/+log/8496ed5028cee8c5e5f18cc791766f6b454609fb..5f8c82f68a9e1a63f3b9effceb928d7068873813
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,solti@google.com on the revert to ensure
that a human
is aware of the problem.
To file a bug in ANGLE:
https://bugs.chromium.org/p/angleproject/issues/entry
To report a problem with the AutoRoller itself, please file a bug:
https://issues.skia.org/issues/new?component=1389291&template=1850622
Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
Bug: b/399867824
Bug: b/400986108
Tbr: solti@google.com
Change-Id: I205de362c25692700f8bf092003b2882028b6740
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6325931
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Solti Ho <solti@google.com>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
|
|
9bdc6763
|
2025-03-03T15:54:46
|
|
GetProgramPipelineiv may create a new state vector
For glGetProgramPipelineiv, spec says that If pipeline is a name
that has been generated (without subsequent deletion) by
GenProgramPipelines, but refers to a program pipeline object that
has not been previously bound, the GL first creates a new state
vector in the same manner as when BindProgramPipeline creates a new
program pipeline object.
Also creates a new state vector in glValidateProgramPipeline if the
pipeline has not been previously bound.
Modify the ProgramPipeline's validate function so that when the
program pipeline is generated, but has never been bound, the
validation status would be false.
Bug: angleproject:400254603
Change-Id: I906669a4e80aa12283156bae8a72a2dbf0b63b90
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6316349
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
|
|
e70d1298
|
2025-02-18T14:32:35
|
|
Vulkan: Rework SurfaceVk::mUse tracking logic
Original commit that introduced `mUse` had a bug and was then reverted:
Vulkan: SurfaceVk should only wait for GPU work that uses it
https://crrev.com/c/angle/angle/+/4220723
The reland fixed the original issue by adding
"contextVk::mLastSubmitQueueSerial" into "Surface::mUse" before calling
finish:
Reland "Vulkan: SurfaceVk should only wait for GPU work that uses it"
https://crrev.com/c/angle/angle/+/4406891
However, the real issue was that the `finish()` call (called because of
the "waitIdleBeforeSwapchainRecreation" feature) was done after
`releaseSwapchainImages()`, which resets all resource uses. Because of
this bug, `finish()` ignored all uses of swapchain images, causing GPU
crash on Mali. Crash was not because of semaphores that was not tracked
by resource use. Adding "mLastSubmitQueueSerial" fixed the crash simply
because it accounts for all uses ever made by the Context.
This change fixes this issue by calling `mergeImageResourceUses()` at
the beginning of `releaseSwapchainImages()`. Adds missing retain when
transitioning into the `ImageLayout::Present`. Updates one-off submit
tracking by updating use of the image, rather than `SurfaceVk::mUse`
directly. Explicitly tracks present semaphore submission. All these
changes allow to remove adding `ContextVk::mSubmittedResourceUse`
before calling `finish()` and in the `unMakeCurrent()`.
I confirmed that this fix works by forcing `oldSwapchain` destruction
(as if it was never used) and "waitIdleBeforeSwapchainRecreation"
enabled. GPU crash happens on SM-S921B if remove addition of
`mSubmittedResourceUse` before `finish()` call, and fixed again by
calling `mergeImageResourceUses()` in the `releaseSwapchainImages()`.
So the `mergeImageResourceUses()` fixes the issue without potentially
waiting for unrelated submissions from the `mSubmittedResourceUse`.
After this change, surface use tracking should work according to the
original intent.
Bug: angleproject:397848903
Bug: b/267806287
Change-Id: Ic8197e33d0c19aad274b5f9da6f9c7377a166b60
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6277446
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Igor Nazarov <i.nazarov@samsung.com>
|
|
ad6c3d74
|
2025-02-19T22:45:29
|
|
Vulkan: Fix RP resolve layouts w.r.t shared present mode
This is partially a regression after the previous change:
Vulkan: Fix present optimization w.r.t shared present mode
Before the above change, swapchain image was still optimized for present
even when using shared present mode. However, because
SetBitField(mAttachmentOps[packedAttachmentIndex].finalResolveLayout
line was using `getCurrentImageLayout()` (lucky coincidence) it was
setting correct SharedPresent layout into `finalResolveLayout`.
The `initialLayout` and reference `layout` was still
`VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL`, but for some reason VVL was
not producing any errors.
This change adds setting `finalResolveLayout` for the resolve
attachment, which in turn propagates
`VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR` to all renderpass layouts as well
as to the dynamic rendering info.
Test: angle_end2end_tests --gtest_filter=EGLSingleBufferTest.SharedPresentLayoutWithMSAA/*
Bug: angleproject:42262606
Change-Id: I49a121f1d43a078890b0dc32e0574a79e3565270
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6281569
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Igor Nazarov <i.nazarov@samsung.com>
|
|
318d4038
|
2025-02-18T13:19:28
|
|
Vulkan: Fix present optimization w.r.t shared present mode
Since the implementation of "EGL_KHR_mutable_render_buffer" mode
(angleproject:42262606), the renderpass optimization for present
(b/153885625) was not working correctly. It sill tries to transition
into `ImageLayout::Present`, but instead of entirely skipping the
transition, it inserts the barrier even when renderpass is still opened.
When both "supportsSharedPresentableImageExtension" and
"preferDynamicRendering" are enabled, code will hit ASSERT in
`flushToPrimary()` when attempting to record `ImageLayout::Present`
barrier into the primary command buffer.
Above issue is fixed by skipping the transitioning into
`ImageLayout::Present` when in shared present mode.
Other changes and fixes:
- removed renderpass flush when resolving with renderpass, since it is
not necessary (angleproject:42265256).
- above change reveled a bug in `finalizeImageLayout(&mColorImageMS)`
call. This call reverts the layout in the previous finalize call
from Present to ColorWrite. So it must have been inserted before
finalizing the swapchain image. Issue fixed by removing both finalize
calls.
- updated condition to skip invalidate w.r.t shared present mode
(b/229689340), that was missed during implementation of
"EGL_ANDROID_front_buffer_auto_refresh" (angleproject:42265697).
Test: angle_end2end_tests --gtest_filter=EGLSurfaceTest.PresentLayoutTransitionWithMSAA/*
Bug: b/153885625
Bug: angleproject:42262606
Bug: angleproject:42265256
Bug: b/229689340
Bug: angleproject:42265697
Change-Id: Ifad8aea8548fa7bfac27941812c435b2af655309
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6277445
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Igor Nazarov <i.nazarov@samsung.com>
|
|
1a0c9db3
|
2025-02-27T10:43:00
|
|
Vulkan: Disable monolithic pipeline creation with GPL
As it violates OpenGL ES rules. This change also removes Vulkan perf
counter tests that attempt to verify that warmed up programs hit the
cache... this fails in non-trivial ways especially with graphics
pipeline library due to:
- Warm up tasks being async, they may finish after the test reads the
perf counters to set expectations
- Some drivers report a cache miss when fast-linking libraries... but
likely they don't even look at the cache (so both hit and miss would
have been inaccurate)
- There is no 100% guarantee that the warmup really leads to a draw-time
cache hit.
Things are made worse by
https://chromium-review.googlesource.com/c/angle/angle/+/5421594 because
we don't necessarily even wait for the warm up tasks if ANGLE's view of
the pipeline description doesn't match what was used for warm up (even
if internally to the driver some of the state does not affect the binary
blobs).
Bug: angleproject:42265839
Change-Id: Iaf96e4f64e2187abc666ff07fe1304d7474a0e86
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6309696
Reviewed-by: Charlie Lao <cclao@google.com>
Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
|
|
6b10ae33
|
2025-03-03T14:41:21
|
|
Remove the unused SkippedSyncvalMessage
Below tests from the two bugs
angleproject:42264934:
FramebufferFetchES31.BasicInout_NonCoherent/ES3_1_Vulkan
angleproject:42264929:
MultisampledRenderToTextureES3Test.RenderbufferDrawThenBlitDepthStencilOnly/ES3_Vulkan
No longer fails due to VVL errors. Tested on Pixel 8.
Remove them from the kSkippedSyncvalMessages list.
Bug: angleproject:42264929
Bug: angleproject:42264934
Bug: angleproject:391284743
Change-Id: I4369eba5ef2a056b4085fced6419e7add7a5c279
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6317223
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Yuxin Hu <yuxinhu@google.com>
Auto-Submit: Yuxin Hu <yuxinhu@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
4fae3323
|
2025-03-03T14:21:07
|
|
ValidateEGLImageObject should not skip 3D EGLImage
* Vulkan and GL backends already support 3D EGLImage, so remove related
part in ValidatioinEGLImageObject.
* Add a new end2end test for 3D EGLImage.
Bug: angleproject:399774384
Change-Id: I6c39298a2f2d4c2dded2d6ddd8b98cdb8a22616a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6311581
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Auto-Submit: Aurora Zhang <Aurora.Zhang@arm.com>
|
|
ae567733
|
2025-02-26T19:09:14
|
|
Vulkan: Make use of VK_EXT_device_fault if exists
This Vulkan extension, if available, can provide further details
about the device in case of VK_ERROR_DEVICE_LOST.
* Added the following ANGLE feature: supportsDeviceFault
* It shows whether the extension VK_EXT_device_fault is supported
and that the deviceFault bit is enabled on the physical device.
* Added the Vulkan entry point for the following function:
* vkGetDeviceFaultInfoEXT
* Added the following to the renderer:
* mFaultFeatures (device feature)
* retrieveDeviceLostDetails(); to log information regarding the
following if the appropriate support is available:
* Address faults
* Vendor-specific faults
* Vendor binary dump (logged in hex format)
* Added RetrieveDeviceLostInfoFromDevice() to vk_renderer.cpp
to be used in Renderer::retrieveDeviceLostDetails().
* Updated ContextVk::handleError() to try to retrieve more info in
case of DEVICE_LOST.
Bug: b/399478440
Change-Id: If8d8e04001dabbe775c023f9922c44ef2205317e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6305888
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
b6301fb1
|
2025-03-04T22:04:53
|
|
Manual roll vulkan-deps from 1f5d4f5673a3 to 898a2304cea9 (1 revision)
Manual roll requested by solti@google.com
https://chromium.googlesource.com/vulkan-deps.git/+log/1f5d4f5673a3..898a2304cea9
Also rolling transitive DEPS:
https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-ValidationLayers/+log/cc4bfd761e025ff14ae329c1b1dbbf24e4f0922b..8496ed5028cee8c5e5f18cc791766f6b454609fb
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,solti@google.com on the revert to ensure
that a human
is aware of the problem.
To file a bug in ANGLE:
https://bugs.chromium.org/p/angleproject/issues/entry
To report a problem with the AutoRoller itself, please file a bug:
https://issues.skia.org/issues/new?component=1389291&template=1850622
Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
Bug: b/400789178
Bug: b/399867824
Tbr: solti@google.com
Change-Id: I375095773761362f98e6679c4297d3a58c4e5f11
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6320900
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Commit-Queue: Solti Ho <solti@google.com>
|
|
2e65d3d4
|
2025-02-03T16:26:46
|
|
Vulkan: Fine-tune submission for multiple RPs
This CL aims to fine-tune submission based on a certain command
buffer size. This allows us to perform one submission for multiple
smaller render passes.
* Added mCommandsPendingSubmissionCount to ContextVk.
* In ContextVk::syncState(), preferSubmitAtFBOBoundary is only used
if the render pass pending command count exceeds the threshold:
kMinCommandCountToSubmit
* Currently set to 32.
* For now, we still submit if the command is a clear (for example
glClearBufferfv()).
* For now, we also still submit if the command is an invalidate
(for example, glInvalidateFramebuffer()).
* In ContextVk::flushImpl(), if the pending command count exceeds the
threshold (kMinCommandCountToSubmit) and the device is found to be
idle, the work is submitted to keep the device busy.
* Modified the following unit test from VulkanPerformanceCounterTest:
VerifySubmitCounterForSwitchUserFBOToDirtyUserFBO
* Since there is now a minimum command count for submission, the
number of draw calls has been changed so that the submission is
still issued at the new FBO boundary.
* After this CL, life_is_strange shows the following improvements:
(From the latest measurements)
* +19% wall_time
* +38% cpu_time
Bug: angleproject:42265052
Change-Id: I18452cc1d39ca7e0ac376f6012974b498153cce8
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6182927
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
|
|
bd8bc105
|
2025-02-19T18:08:32
|
|
vulkan: disable pipeline cache data serialization for nvidia device.
we still see the big cache data issue after driver version 520.
rename hasEffectivePipelineCacheSerialization to
skipPipelineCacheSerialization.
Bug: b/358380399
Change-Id: Idd8354f95c3eb4c2e58678a4cf50c8b6af20f371
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6284126
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Commit-Queue: Hailin Zhang <hailinzhang@google.com>
|
|
9df57ec5
|
2025-02-28T14:35:01
|
|
Vulkan: Limit max vector size of mEmptySlotBits to 4
Add another safety guard: in case of some uncommon usage case that we
end up with one buffer/texture is part of many descriptorSets, skip the
tracking logic in SharedCacheKeyManager to avoid the excessive overhead
associated with it. The only downside is that when BufferBlock gets
destroyed, we will not able to immediately destroy all cached
descriptorSets that it is part of. They will still gets evicted later on
if needed (see evictStaleDescriptorSets for detail). Based on 300+ app
traces we have, this appears very rare situation.
Also made this behavior limited to DescriptorSetCacheManager, so that
FramebufferCacheManager will not get affected. FramebufferCacheManager
does not have any cache eviction, so it is important that we always
destroy cache when texture is destroyed.
Bug: b/293297177
Bug: b/384839847
Change-Id: I0f1eb21b014f83675b14fb59ab59b5c694a421e9
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6314161
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Charlie Lao <cclao@google.com>
|
|
aa697ed0
|
2025-02-28T11:05:55
|
|
Manual Roll vulkan-deps from c1c31f to 040c47 (9 revisions)
https://chromium.googlesource.com/vulkan-deps.git/+log/c1c31f4d17a9..040c4735c51c
Also rolling transitive DEPS:
https://chromium.googlesource.com/external/github.com/KhronosGroup/glslang/+log/8b822ee8ac2c3e52926820f46ad858532a895951..0b7c079b32f676b57e92a8ded374976842985116
https://chromium.googlesource.com/external/github.com/LunarG/VulkanTools/+log/e1fcaef1e8f2e4f4ccbfb58ad8f20e807368de76..f82d29981c0b0136adfaa7863df485a705c80c84
https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools/+log/f289d047f49fb60488301ec62bafab85573668cc..d3bfa4b9b639c47ffaee7c1c1b76044c92fa66cc
https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-ValidationLayers/+log/4e7b0c905b1a0401e24333800937cc8792efa037..7d5cab3ff7ea5a8b62dc94df72141606539344fc
If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/vulkan-deps-angle-autoroll
Please CC angle-team@google.com,yuxinhu@google.com on the revert to
ensure that a human
is aware of the problem.
To file a bug in ANGLE:
https://bugs.chromium.org/p/angleproject/issues/entry
To report a problem with the AutoRoller itself, please file a bug:
https://issues.skia.org/issues/new?component=1389291&template=1850622
Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
Bug: b/399191283
Bug: b/399969262
Tbr: yuxinhu@google.com
Change-Id: I150f1cb9c56f014628c1a2aa06c1981b71d2d605
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6312337
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Reviewed-by: Solti Ho <solti@google.com>
|
|
4bfb9da6
|
2025-02-28T12:49:28
|
|
Revert "Reland "Add GL_BGRA_EXT as a sized renderable format""
This reverts commit 8f2fbbd1a0d16471596afad57c88f950a1ee3032.
Reason for revert: http://anglebug.com/399913714
Original change's description:
> Reland "Add GL_BGRA_EXT as a sized renderable format"
>
> This reverts commit 22dfe435daa7c680c07bb8d4f1d98ab765e60ad0.
>
> Reason for revert: Fixed mapping back to BGRA_EXT for GL backend
>
> Original change's description:
> > Revert "Add GL_BGRA_EXT as a sized renderable format"
> >
> > This reverts commit 80093a7d8f850c3ab551ddb4972c2f1f27511433.
> >
> > Reason for revert: suspect for blocking rolling ANGLE into Chroimum
> > https://chromium-review.googlesource.com/c/chromium/src/+/6283973
> > https://ci.chromium.org/ui/p/chromium/builders/try/chromeos-amd64-generic-rel-gtest/372754/overview
> >
> > Original change's description:
> > > Add GL_BGRA_EXT as a sized renderable format
> > >
> > > dEQP tests were updated to cover GL_BGRA_EXT as a sized renderable
> > > format. It was apparently always supposed to be, based on the
> > > wording of the spec.
> > >
> > > This CL adds that support and updates expectations, along with a few
> > > extra tests.
> > >
> > > Includes contributions from Robic.Sun@arm.com.
> > >
> > > Test: angle_end2end_tests, angle_deqp_*_tests
> > > Bug: b/42267264
> > > Bug: angleproject:394384906
> > > Change-Id: Ia10bcd61f66c5d99a3d27a2cfd6008c991ddcaa7
> > > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6235444
> > > Reviewed-by: Geoff Lang <geofflang@chromium.org>
> > > Commit-Queue: Cody Northrop <cnorthrop@google.com>
> > > Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
> >
> > Bug: b/42267264
> > Bug: angleproject:394384906
> > Change-Id: I64572361cfed33b4ea17eabf278f580471d045c2
> > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6285628
> > Auto-Submit: Yuly Novikov <ynovikov@chromium.org>
> > Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
> > Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
> > Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
>
> Bug: b/42267264
> Bug: angleproject:394384906
> Change-Id: I1bd9df904d93fd54286cbfce53fe89db89e842b9
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6310699
> Commit-Queue: Cody Northrop <cnorthrop@google.com>
> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Bug: b/42267264
Bug: angleproject:394384906
Bug: angleproject:399913714
Change-Id: I9f79f39a6d9cba3b23c261005bc3e012d70cd1cf
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6312977
Auto-Submit: Cody Northrop <cnorthrop@google.com>
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
|
|
3c08ed1e
|
2025-02-28T10:31:53
|
|
Cleanup: clarify ShouldReportDebugMessage logic
Bug: angleproject:391284743
Change-Id: I0900bc834d2bfa177f98ddb75747ae4bc1578297
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6312881
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Commit-Queue: Roman Lavrov <romanl@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
cb81b2b2
|
2025-02-27T16:52:29
|
|
Set mMappedState offset and size to actual mapped offset + size
Bug: angleproject:383356846
Change-Id: I68a4b4d3cb4c29071c9fb593b19fb55ded010950
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6308949
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Liza Burakova <liza@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
65343c4c
|
2025-02-27T11:23:04
|
|
Vulkan: Improve ConvertImageLayoutToVkImageLayout()
This CL removes supportsMixedReadWriteDepthStencilLayouts feature flag.
This feature flag was introduced when ANGLE only requires vulkan 1.0.
But now we require vulkan 1.1 and this is part of vulkan 1.1 core spec.
So it is no longer needed and wasting CPU cycles to check this every
time ConvertImageLayoutToVkImageLayout() is called.
With supportsMixedReadWriteDepthStencilLayouts removed, convert from
ImageLayout to VkImageLayout no longer needs renderer parameter. The
layout information in kImageMemoryBarrierData is never modified by
renderer at run time. So the renerer arguments has been removed in a lot
of places, avoids another pointer de-reference.
Bug: b/384839847
Change-Id: I5a89a890c0c0a1f99d2fdc1b2a85baf7de5c28bf
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6310839
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Commit-Queue: Charlie Lao <cclao@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
e6d28755
|
2025-02-27T11:09:10
|
|
Vulkan: Use VkImageLayout in DescriptorInfoDesc
DescriptorInfoDesc is part of the cache key for descriptorSet cache.
Right now it uses ImageLayout for
DescriptorInfoDesc::imageLayoutOrRange. There are cases where two
ImageLayout have the exact same VkImageLayout, which end up with cache
miss. Switch to use VkImageLayout will make it cache hit. Given that
this field is uint32_t, we are not really getting any benefit by using
ImageLayout.
Bug: b/384839847
Change-Id: I14060c3faab701b76a554a1e3a07aff44e25d7cd
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6310838
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Charlie Lao <cclao@google.com>
|
|
055123f8
|
2025-02-27T10:45:56
|
|
Vulkan: Don't maintain SharedCacheKeyManager for BufferBlock
Dynamic descriptor type uses the underlying BufferBlock in the
descriptorSet. There could be many BufferHelper objects sub-allocated
from the same BufferBlock. And each BufferHelper could combine with
other buffers to form a descriptorSet. This means the combination for
BufferBlock could potentially be very large, in thousands with some app
traces like seeing in honkai_star_rail. The overhead of maintaining
mDescriptorSetCacheManager for BufferBlock could be too big. In this CL
I have chosen to not maintain mDescriptorSetCacheManager in the
BufferBlock. The only downside is that when BufferBlock gets destroyed,
we will not able to immediately destroy all cached descriptorSets that
it is part of. They will still gets evicted later on if needed (see
evictStaleDescriptorSets for detail). After this CL, running with all
app traces we have, the max vector size of
SharedCacheKeyManager::mEmptySlotBits is no more than 2, versus ~70s
before the CL.
Bug: b/384839847
Bug: b/293297177
Bug: b/237686097
Change-Id: I7c7c91cd0aeacba4145575ac4270b713bf38b742
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6310837
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Charlie Lao <cclao@google.com>
|
|
00f5944d
|
2025-02-26T15:42:14
|
|
Vulkan: Avoid duplicate sharedCacheKey in mDescriptorSetCacheManager
There are usage cases that same buffer/texture bound to multiple binding
points. When we have a cache miss, we end up walking through all binding
points and record the sharedCacheKey there (so that when the
buffer/texture is destroyed, the cache will be destroyed). This causes
same cacheKey added to the same buffer/texture multiple times. This CL
keeps track of last added sharedCacheKey and do a quick check against it
and it matches, we just early return. With this CL,
SharedCacheKeyManager::mEmptySlotBits max vector size reduced from ~200
to ~70 for batman_telltale.
Bug: b/384839847
Change-Id: I0d405c18b3f1c807da4c7a402392667630bd7f1f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6306687
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Charlie Lao <cclao@google.com>
|
|
e914b53d
|
2025-02-18T17:13:08
|
|
Add validation of null pointers for certain APIs
Bug: angleproject:397315932
Change-Id: I3b253a7ca0bbdf4fd55cf67943971426d825cd24
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6275697
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
8f2fbbd1
|
2025-02-27T13:33:06
|
|
Reland "Add GL_BGRA_EXT as a sized renderable format"
This reverts commit 22dfe435daa7c680c07bb8d4f1d98ab765e60ad0.
Reason for revert: Fixed mapping back to BGRA_EXT for GL backend
Original change's description:
> Revert "Add GL_BGRA_EXT as a sized renderable format"
>
> This reverts commit 80093a7d8f850c3ab551ddb4972c2f1f27511433.
>
> Reason for revert: suspect for blocking rolling ANGLE into Chroimum
> https://chromium-review.googlesource.com/c/chromium/src/+/6283973
> https://ci.chromium.org/ui/p/chromium/builders/try/chromeos-amd64-generic-rel-gtest/372754/overview
>
> Original change's description:
> > Add GL_BGRA_EXT as a sized renderable format
> >
> > dEQP tests were updated to cover GL_BGRA_EXT as a sized renderable
> > format. It was apparently always supposed to be, based on the
> > wording of the spec.
> >
> > This CL adds that support and updates expectations, along with a few
> > extra tests.
> >
> > Includes contributions from Robic.Sun@arm.com.
> >
> > Test: angle_end2end_tests, angle_deqp_*_tests
> > Bug: b/42267264
> > Bug: angleproject:394384906
> > Change-Id: Ia10bcd61f66c5d99a3d27a2cfd6008c991ddcaa7
> > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6235444
> > Reviewed-by: Geoff Lang <geofflang@chromium.org>
> > Commit-Queue: Cody Northrop <cnorthrop@google.com>
> > Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
>
> Bug: b/42267264
> Bug: angleproject:394384906
> Change-Id: I64572361cfed33b4ea17eabf278f580471d045c2
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6285628
> Auto-Submit: Yuly Novikov <ynovikov@chromium.org>
> Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Bug: b/42267264
Bug: angleproject:394384906
Change-Id: I1bd9df904d93fd54286cbfce53fe89db89e842b9
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6310699
Commit-Queue: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
fb03f3c5
|
2025-02-27T15:05:16
|
|
Vulkan: Enable the use of syncval extra properties
Adjusted a couple of cases that weren't working on bots due to a
difference in write barriers (which are probably safe to ignore
altogether in this case)
Bug: angleproject:391284743
Change-Id: I1da2d05aff8b2c9ac7497903d85754054f861495
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6309578
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
73fc6666
|
2025-02-27T11:51:29
|
|
Revert "Add VVL Suppression to allow ANGLE rolls into Chromium"
This reverts commit 1ab3889c1263f31954c21396d18a19d0b4ac0f1c.
Reason for revert: latest VVL code rolls in chromium https://chromium-review.googlesource.com/c/chromium/src/+/6307665. We can remove the suppression that is dependent on the old VVL code.
Original change's description:
> Add VVL Suppression to allow ANGLE rolls into Chromium
>
> Bug: b/399191283
> Change-Id: I05092fe61141ef9265e3f067f9bdbb9f3ef86daf
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6306838
> Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
> Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Bug: b/399191283
Change-Id: Id373b85b5afbff73d1ce9920c73644e9245cd4e5
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6309746
Commit-Queue: Yuxin Hu <yuxinhu@google.com>
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
|
|
1ab3889c
|
2025-02-26T20:13:56
|
|
Add VVL Suppression to allow ANGLE rolls into Chromium
Bug: b/399191283
Change-Id: I05092fe61141ef9265e3f067f9bdbb9f3ef86daf
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6306838
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
|
|
96a1bda4
|
2025-02-26T18:13:01
|
|
Manual roll vulkan-deps from 1138e3898873 to d0470d9cf4eb (15 revisions)
Manual roll requested by yuxinhu@google.com
https://chromium.googlesource.com/vulkan-deps.git/+log/1138e3898873..d0470d9cf4eb
Also rolling transitive DEPS:
https://chromium.googlesource.com/external/github.com/KhronosGroup/glslang/+log/18f581a8a2c112074815e613776b928362ec324b..8b822ee8ac2c3e52926820f46ad858532a895951
https://chromium.googlesource.com/external/github.com/LunarG/VulkanTools/+log/1af97f05fe184de16139b2dc31842334007f95e7..27732e6ed99afa91b3493bc5e5412f4914482828
https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools/+log/d5b6f2de791deb73357a797d5db7aa24ce45194c..f289d047f49fb60488301ec62bafab85573668cc
https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Tools/+log/176fef0bccaba8bdf51de54ab4eed8d5d9aaac77..fb8f5a5d69f4590ff1f5ecacb5e3957b6d11daee
https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Utility-Libraries/+log/6be00ca9f51c714780cc1d6f537f8bc5650b6204..2d8f273ebd4b843c402d9ee881616895b854e42f
https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-ValidationLayers/+log/e0158a966a288dbbaca9609a76f34f91facce4a8..48c93ad7cc9e0da74ed21c8bf7d56324d995644d
If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/vulkan-deps-angle-autoroll
Please CC angle-team@google.com,yuxinhu@google.com on the revert to
ensure that a human
is aware of the problem.
To file a bug in ANGLE:
https://bugs.chromium.org/p/angleproject/issues/entry
To report a problem with the AutoRoller itself, please file a bug:
https://issues.skia.org/issues/new?component=1389291&template=1850622
Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
Bug: b/399191283
Tbr: yuxinhu@google.com
Change-Id: Ib298161513c2d2ffded0a1b785f9c2322f553707
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6305262
Commit-Queue: Yuxin Hu <yuxinhu@google.com>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
|
|
ca8f072e
|
2025-02-13T16:46:30
|
|
Implement EGL_LARGEST_PBUFFER
When EGL_LARGEST_BUFFER is set to true during creating a
EGL pbuffer surface, it requires the largest available pixel buffer
surface when the allocation would otherwise fail. This means if
width/height is bigger than config's maxPbufferWidth/maxPbufferHeight,
it should be clamp to maxPbufferWidth/maxPbufferHeight. An end2end
test is also added.
Bug: angleproject:397315935
Change-Id: Ic160d9693478c87b59ece0a421d3acd5d6699ddc
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6277912
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
8dbd2fe6
|
2025-02-19T14:07:21
|
|
Reland "Vulkan: Take stride into account for max buf size"
This is a reland of commit 91fe334eadd279746e06367142de6e8d9f8d00ed
In the original change, mMaxBufferMemorySizeLimit was cast to a
32-bit value for cap initialization. However, if the reported value
was larger than 4GB, it could result in incorrect cap values, leading
to shader compilation errors (e.g., exceeding maximum uniform location
size).
* Updated LimitToIntAnd() to always take a 64-bit value for the cap.
* The other arg (physicalDeviceValue) would be cast to the same
type for std::min().
* Removed the 32-bit casting from mMaxBufferMemorySizeLimit during
cap initialization.
Original change's description:
> Vulkan: Take stride into account for max buf size
>
> * Added LimitToIntAnd() to limit the input value to a certain
> threshold in addition to the int limit.
>
> * Cached the max buffer size limit in the renderer.
> * mMaxBufferMemorySizeLimit
>
> * In vk_caps_utils: Capped the following buffer size-related limits
> to the maximum memory allocation size:
>
> * maxStorageBufferRange
> * maxTexelBufferElements
> * maxUniformBufferRange
>
> Bug: angleproject:391002353
> Test: KHR-GLES31.core.texture_buffer.texture_buffer_max_size
> KHR-GLES32.core.texture_buffer.texture_buffer_max_size
> Change-Id: Iee9b13f5440a4f5e6f952e7d2beaf9485f864c2d
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6283625
> Reviewed-by: mohan maiya <m.maiya@samsung.com>
> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
> Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
Bug: angleproject:391002353
Change-Id: Ieb06a1dcf3096b4d6f3643f96d0e05b2be6b2093
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6303408
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
d9a9b75c
|
2025-02-25T22:21:03
|
|
Manual roll vulkan-deps from 02cb40cbb578 to 1138e3898873 (13 revisions)
Manual roll requested by yuxinhu@google.com
https://chromium.googlesource.com/vulkan-deps.git/+log/02cb40cbb578..1138e3898873
Also rolling transitive DEPS:
https://chromium.googlesource.com/external/github.com/KhronosGroup/glslang/+log/104bd85d990155f04f050972374a3502b4631830..18f581a8a2c112074815e613776b928362ec324b
https://chromium.googlesource.com/external/github.com/LunarG/VulkanTools/+log/c98e976b567735776a4dc692bc744231dae4b13a..1af97f05fe184de16139b2dc31842334007f95e7
https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools/+log/aafd524577cc90fcdd13a6f0bcbfb929a30ee90f..d5b6f2de791deb73357a797d5db7aa24ce45194c
https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-ValidationLayers/+log/fc5788170fbe2e29162862bc817357c7fb9a04e4..e0158a966a288dbbaca9609a76f34f91facce4a8
If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/vulkan-deps-angle-autoroll
Please CC angle-team@google.com,yuxinhu@google.com on the revert to
ensure that a human
is aware of the problem.
To file a bug in ANGLE:
https://bugs.chromium.org/p/angleproject/issues/entry
To report a problem with the AutoRoller itself, please file a bug:
https://issues.skia.org/issues/new?component=1389291&template=1850622
Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
Bug: b/399191283
Tbr: yuxinhu@google.com
Change-Id: Ic2bdc48ba5d69b80186306eda6753a0ab54ef98f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6302919
Commit-Queue: Yuxin Hu <yuxinhu@google.com>
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
|
|
0151051b
|
2025-02-25T11:20:15
|
|
Revert "Vulkan: Take stride into account for max buf size"
This reverts commit 91fe334eadd279746e06367142de6e8d9f8d00ed.
Reason for revert: breaks Android presubmit tests: https://android-review.git.corp.google.com/c/platform/external/angle/+/3506755
Original change's description:
> Vulkan: Take stride into account for max buf size
>
> * Added LimitToIntAnd() to limit the input value to a certain
> threshold in addition to the int limit.
>
> * Cached the max buffer size limit in the renderer.
> * mMaxBufferMemorySizeLimit
>
> * In vk_caps_utils: Capped the following buffer size-related limits
> to the maximum memory allocation size:
>
> * maxStorageBufferRange
> * maxTexelBufferElements
> * maxUniformBufferRange
>
> Bug: angleproject:391002353
> Test: KHR-GLES31.core.texture_buffer.texture_buffer_max_size
> KHR-GLES32.core.texture_buffer.texture_buffer_max_size
> Change-Id: Iee9b13f5440a4f5e6f952e7d2beaf9485f864c2d
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6283625
> Reviewed-by: mohan maiya <m.maiya@samsung.com>
> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
> Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
Bug: angleproject:391002353
Change-Id: I20f68f98dcf43fd8cd42f7dce2465332fdb3ab51
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6302249
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Commit-Queue: Yuxin Hu <yuxinhu@google.com>
|
|
9202e05a
|
2025-02-21T18:42:42
|
|
Vulkan: Invalidate the SharedCacheKey when cache gets evicted
When descriptorSet cache gets evicted, right now we have a bug that the
sharedCacheKey does not gets invalidated. This caused
SharedCacheKeyManager always think the sharedCacheKey is valid and the
mEmptySlotBits never gets cleared, which leads to mEmptySlotBits growth
over time, and increases CPU overhead when walking mEmptySlotBits
vector. This CL adds an assertion to ensure that all valid
sharedCacheKeys has a corresponding entry in the cache, which means
without this CL, some traces and dEQP tests are hitting the assertion.
This CL also fixes the bug.
Bug: b/384839847
Change-Id: If013443144aceb5d62f67f619074ef831e73653b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6292988
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Commit-Queue: Charlie Lao <cclao@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
9592b970
|
2025-02-21T12:33:57
|
|
Move LogFeatureStatus() into overrideFeatures()
Both overrideFeatures() and LogFeatureStatus() a looping through the
overridden features the same way, with one applying the feature override
and the other logging the feature being overridden.
Rather than looping twice, build up the feature override log string
concurrently in overrideFeatures() and return the string, which can be
logged (or not).
Bug: b/372694741
Change-Id: I70b06792046fe80057f45cefaf18bdd3d05f1f21
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6288657
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Tim Van Patten <timvp@google.com>
|
|
99032263
|
2024-12-30T16:05:22
|
|
Log EGL attribute feature overrides
Log the ANGLE feature overrides performed by the EGL attributes when
creating a display:
* EGL_FEATURE_OVERRIDES_ENABLED_ANGLE
* EGL_FEATURE_OVERRIDES_DISABLED_ANGLE
These log messages are useful on platforms that override features at
runtime using the EGL attributes. For example, when using a
configuration file to enable/disable ANGLE features.
This results in log messages like:
Feature: disableSeparateShaderObjects enabled
Bug: b/372694741
Change-Id: I35c374c8ec29e038008224049116cfc3265e70c0
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6133778
Commit-Queue: Tim Van Patten <timvp@google.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
56b6b628
|
2025-02-07T16:08:39
|
|
renderer_utils: Clean up Clang-tidy warnings
Clean up various Clang-tidy warnings in renderer_utils.[cpp|h].
Most of these are around for loops:
* Using const references, rather than making copies.
* Using range-based for loops.
There are other changes related to cleaning up ineffective const
qualifiers, unused values, trivial ctors/dtors, etc.
Bug: b/372694741
Change-Id: I1c88124a67a3e60537e1d5747603077f1c9cc8d3
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6244613
Commit-Queue: Tim Van Patten <timvp@google.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
|
|
91fe334e
|
2025-02-19T14:07:21
|
|
Vulkan: Take stride into account for max buf size
* Added LimitToIntAnd() to limit the input value to a certain
threshold in addition to the int limit.
* Cached the max buffer size limit in the renderer.
* mMaxBufferMemorySizeLimit
* In vk_caps_utils: Capped the following buffer size-related limits
to the maximum memory allocation size:
* maxStorageBufferRange
* maxTexelBufferElements
* maxUniformBufferRange
Bug: angleproject:391002353
Test: KHR-GLES31.core.texture_buffer.texture_buffer_max_size
KHR-GLES32.core.texture_buffer.texture_buffer_max_size
Change-Id: Iee9b13f5440a4f5e6f952e7d2beaf9485f864c2d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6283625
Reviewed-by: mohan maiya <m.maiya@samsung.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
|
|
5775a974
|
2025-02-21T11:00:05
|
|
Vulkan: Fix transition to FORIEGN and back in same submission
Image layout transitions are typically automatically handled. In some
cases however, the image layout is specifically "finalized". For
foreign images, the relevant cases are all about the point in time when
the image is being released.
When a foreign image's layout is finalized, a barrier is generated to
transition it to the FOREIGN queue on submission. Previously, an
incorrect assumption was made that after such a point, the VkImage will
no longer be used by any commands.
This was incorrect because of EGL Images, which let the same VkImage
(and ImageHelper) be shared between multiple textures. The following
scenario broke that assumption:
- Texture is bound to the (foreign) EGL image
- Texture is used and deleted
* VkImage's transition back to foreign is cached, but not executed
- Another texture is bound to the same EGL image
- Texture is used
* At this point, the texture is re-acquired from foreign, but it
wasn't released in the first place!
In this change, a vkQueueSubmit is issued after the foreign image's
layout is finalized to make sure the transition back to FOREIGN is
applied.
Bug: angleproject:42263241
Bug: angleproject:42262454
Bug: angleproject:390443243
Bug: chromium:382527242
Change-Id: Ibe3e6d60f282f9fb0eed1deba3325456017c3617
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6292804
Reviewed-by: mohan maiya <m.maiya@samsung.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
b47fffc8
|
2025-02-20T11:11:25
|
|
CL/VK: Add rewrite-packed-structs and int8 CLSPV option
To support structs with three- and four-component vectors,
--rewrite-packed-structs is needed as a CLSPV option.
The --int8 option is added to allow shaders to process
char buffers.
Tests-Passing: OCLCTS.test_vectors vec_align_packed_struct_arr
Bug: angleproject:397733768
Change-Id: I98ecc9e82bc599453c27f60737bde752c69decd4
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6284137
Reviewed-by: Austin Annestrand <a.annestrand@samsung.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
5e056364
|
2025-02-20T11:38:23
|
|
Ignore other attributes when use EGL_CONFIG_ID to choose config
Per spec, when use EGL_CONFIG_ID in eglChooseConfig, other attributes
should be ignored, so additional attributes should not be inserted in
this case.
Bug: angleproject:396190956
Change-Id: I1170dc5312a9590c972d81f91e3d2140f2145805
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6262970
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
f09a19ce
|
2025-02-21T17:27:30
|
|
OpenCL: Pass bufferPtrOffsets by reference not value
enqueueNativeKernel() is passing `const std::vector<size_t>
bufferPtrOffsets` by value instead of reference. Changed to pass by
reference in this CL.
Bug: b/42266859
Change-Id: I337eb62451631297c8f389c9f850ff9ddd2421ec
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6293727
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
db8c86bd
|
2025-02-22T20:33:31
|
|
Vulkan: Disable imageless framebuffers on buggy ARM drivers
Bug: chromium:371512561
Change-Id: Ibf8c4ed84a29139afd6d234690d240785656cc06
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6293786
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Solti Ho <solti@google.com>
Commit-Queue: Solti Ho <solti@google.com>
Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
34faa3db
|
2025-02-08T15:17:10
|
|
Fix issue that stride setting is incorrect when rotation is true
When rotateXY is true, stride should increase or decrease
on the Y axis.
Bug: angleproject:395131251
Change-Id: I0f5363c9952ccdf0a036499a9f918853eff7cd10
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6242496
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
Auto-Submit: Robic Sun <Robic.Sun@arm.com>
|
|
23df4f26
|
2025-02-21T10:30:04
|
|
Vulkan: Avoid storage grow related copy for mDefaultUniformBlocks
mDefaultUniformBlocks.uniformLayout is a std::vector, and my profile on
all app traces indicates quite some storage reallocation on this data.
This CL reserves enough storage upfront to avoids storage reallocation
in LinkTaskVk::initDefaultUniformLayoutMapping().
Bug: b/293297177
Change-Id: If249a373aa3bd1795757d974cbcfce38a153a813
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6288314
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Commit-Queue: Charlie Lao <cclao@google.com>
|
|
323c49a3
|
2025-02-20T15:44:08
|
|
Vulkan: Fix swap optimization after staged clear for MSAA
If the MSAA image only had a clear update and the update wasn't going
to be applied to the swapchain image, the clear update was accidentally
dropped because `flushStagedUpdates` wouldn't see the clear update which
is already extracted in `deferredClearValues`.
Test: angle_end2end_tests --gtest_filter=EGLSingleBufferTest.StagedClearResolveOnSwap/*
Bug: angleproject:382006939
Change-Id: I53ae26eeb8a7f38b7758f86bf97982a90b1990dd
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6285627
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Commit-Queue: Igor Nazarov <i.nazarov@samsung.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
e5b87adc
|
2025-02-20T15:32:16
|
|
Vulkan: Fix WindowSurfaceVk::hasStagedUpdates w.r.t MSAA
The old `hasStagedUpdates()` checked swapchain image for staged updates.
However in case of MSAA, staged updates are added to the
`mColorImageMS`. Universal solution is to check staged updates on the
renderpass image from `mColorRenderTarget`, which will be
`mColorImageMS` in case of MSAA surface, and the currently acquired
swapchain image otherwise.
No automated test is possible, since `glReadPixels()` still works as
expected. Other reason is that `ANGLE_VK_TRACE_EVENT_AND_MARKER` before
acquire inserts commands into the outside renderpass command buffer
causing flush to happen. In other words, the debug marker interfering
with the normal ANGLE behavior, so even visual test is not possible.
Bug: angleproject:237449314
Change-Id: I237514a640a23a33d894109856711c1eb2dcbb29
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6285626
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Igor Nazarov <i.nazarov@samsung.com>
|
|
ba174a76
|
2025-02-19T16:35:15
|
|
Vulkan: Bugfix for nullColorAttachmentWithExternalFormatResolve
When nullColorAttachmentWithExternalFormatResolve is VK_TRUE,
* The imageView in VkRenderingAttachmentInfo for dynamic rendering
should be VK_NULL_HANDLE.
* Push YUV resolveImageView as if it is the color attachment to ensure
the coherency between ops, clearValues and attachmentViews for both
dynamic rendering and render pass objects. Then pack the YUV resolve
information first as well.
* Add end2end tests that render and clear YUV with a depth attachment.
Bug: angleproject:395212980
Change-Id: I8b6173b41723ed7dc12359e181791fb1ac22fc41
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6262510
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
|
|
03bdf1ca
|
2025-02-18T16:37:49
|
|
Vulkan: Use correct actual FormatID for MSAA swapchain image
Implementation of "overrideSurfaceFormatRGB8ToRGBA8" feature missed
updating actual FormatID for the MSAA swapchain image. This bug makes
possible to initialize RGBA8 swapchain image and RGB8 MSAA image.
However, on practice MSAA is still RGBA8 because RGB8 renderable is
generally emulated on Android.
VUID-vkCmdResolveImage-srcImage-01386: srcImage and dstImage must have
been created with the same image format.
This fix is cosmetic and is not expected to fix any real bugs
(because RGB8 is generally emulated with RGBA8).
Bug: angleproject:42265147
Change-Id: Ief4b74ac31e93a655f5088b7927e970585255f25
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6275968
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Igor Nazarov <i.nazarov@samsung.com>
|
|
f9566385
|
2025-02-06T00:00:00
|
|
Fix GetBooleani_v validation
That entrypoint must require OpenGL ES 3.1.
Fixed: angleproject:394610814
Change-Id: I9ee80d1497afadfdc0d714e49bb97b741ad57b63
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6243878
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
|
|
be98f841
|
2024-11-30T02:11:05
|
|
Implicitly end PLS for framebuffer reads and writes
In preparation for removing the PLS allow list, convert more problematic
methods to the new paradigm of implicitly ending PLS instead of
generating errors.
Also simplify the disable logic for framebuffer modifications, and just
blindly disable PLS for framebuffer updates, regardless of whether it's
GL_READ_FRAMEBUFFER or GL_DRAW_FRAMEBUFFER.
Bug: angleproject:40096838
Change-Id: Ie4390a219f5f05ef0a3d00f405d4914592726283
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6077335
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
8f8b41e3
|
2025-02-14T17:54:51
|
|
Vulkan: Optimize for multiple TexSubImage calls in the same level
Based on app traces, some apps make glTexSubImage call for the same
level multiple times in a row. One extreme example is lumino_city, which
it creates a 2D texture with nullptr data, and then calls
glTexSubImage2D many times back to back for each row of the texture to
update the data. Because we uses std::vector to store the per level
update struct (SubresourceUpdate), it means we copy these data
structures every time it grows 2x, until it hit the max size 1081. The
other common case we get into is app update some area of the texture
(like google map and gacha_life) which also end up with a few
texSubImage calls back to back. The other more common case is we staged
a clear first and then glTexSubImage which end up with vector size of 2.
This CL changes to use std::deque instead of std::vector to store the
staged update for a given level, which allows it to grow without extra
penalty.
Bug: b/293297177
Change-Id: Iabbc143074ad9d6fcf47abbddee09ecf7f78d1a7
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6271964
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Commit-Queue: Charlie Lao <cclao@google.com>
|
|
c96844d9
|
2025-02-14T10:26:25
|
|
Vulkan: More vector storage fix
BufferPool::mBufferBlocks reserves 32 entry storage based on data
gathered from trace.
BufferPool::mEmptyBufferBlocks switched to queue since we almost never
walk the entire list unless it gets destroyed.
Renderer::CollectGarbage is changed to take only one object. The only
time it get called with more than one object is from
ImageHelper::releaseImage(), which in this CL we now creates and pass
GarbageObjects to Renderer::collectGarbage directly. This also allows me
to delete recursive CollectGarbage() and DestroyGarbage() functions
(which is doing emplace_back quite often, even though only two entries).
PipelineHelper::mTransitions is updated to reserve storage for 8 entries
based on trace data.
Bug: b/293297177
Change-Id: I3e4552939a780dd26f9b7b8a67deee0d52d4f9bc
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6270518
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Charlie Lao <cclao@google.com>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
|
|
bd643a1a
|
2025-02-19T12:16:50
|
|
Roll vulkan-deps from 2a09ac22553e to 126c9b378eb7 (19 revisions)
https://chromium.googlesource.com/vulkan-deps.git/+log/2a09ac22553e..126c9b378eb7
Manual suppression for new VVL error:
SYNC-HAZARD-READ-AFTER-WRITE for vkCmdDrawIndexed
Also rolling transitive DEPS:
https://chromium.googlesource.com/external/github.com/KhronosGroup/glslang/+log/ef5207f9f8cce5097568efb15d3297d8b5d13014..e66176c3f685b14dfa83882329e5d02f4e027c9b
https://chromium.googlesource.com/external/github.com/LunarG/VulkanTools/+log/0ed717a810d28e7533d935a7c0017f6d267a8671..c98e976b567735776a4dc692bc744231dae4b13a
https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Loader/+log/fde0f9718bd60b49cf8efc80d3fb7a093c309ac0..24e67179e2b0c7f9a2945927362c5ab0728e1fa8
https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Tools/+log/a9f88a232a4cd6634e47f0f93c8fac5789387a7a..dbe142e8f3a7f11478c2e4741c0d4c4b748fce4b
https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-ValidationLayers/+log/e3b763ef7c17f7fd6d21a7ffe4069b0e1b45469b..087c22a441e5fb8563516b6b515483898c843242
If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/vulkan-deps-angle-autoroll
Please CC angle-team@google.com,cnorthrop@google.com on the revert to
ensure that a human
is aware of the problem.
To file a bug in ANGLE:
https://bugs.chromium.org/p/angleproject/issues/entry
To report a problem with the AutoRoller itself, please file a bug:
https://issues.skia.org/issues/new?component=1389291&template=1850622
Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
Bug: b/397775556
Tbr: cnorthrop@google.com
Change-Id: I8a22df0dd3b8238abc1c9c6998604d9f20a3a6c2
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6280153
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
|