|
20a72581
|
2025-10-09T00:25:48
|
|
Skip the shader translator entirely with passthough shaders.
Reflect attribute and uniform information from the linked program in the
backend before the frontend links so that the link process can mostly
continue as usual.
BUG: angleproject:398857482
Change-Id: I88bcf28118deea278610d62cbb789d8c4097fb5a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/7022354
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
6233955b
|
2025-10-13T17:58:29
|
|
Optimize SetUniform for isFloat16 case
Before this change, we use a temporary std::vector<GLshort> to store
the transformed GLshort uniform data. This incurs heap memory
allocation and deallocation every time we call SetUniform().
This change removes the temporary std::vector<GLshort>, and use the
stack memory to store the transformed GLshort uniform data.
To make code easier to read, placing the UpdateBufferWithLayout()
function for the special GLshort case inside the SetUniform() itself,
and remove the UpdateBufferWithLayout implementation for GLshort type.
On Pixel 9, the driver_overhead_2 trace wall_time changes from 9.4 ms
to 8.7 ms after this change.
Bug: angleproject:405795981
Change-Id: I7508e4a3e3c4615129ef540b0b4d6b3feea0e705
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/7038417
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Yuxin Hu <yuxinhu@google.com>
|
|
eaad4345
|
2025-09-25T11:41:47
|
|
Fix issues from mixing regular/MSRTT multisampled renderbuffers
Mixing resolved and unresolved attachments results in inconsistent
sample states within the FBO, which violates the completeness
requirements. In ANGLE, the framebuffer completeness logic checks
RenderToTextureSamples only if the first attachment uses MSRTT mode.
However, it fails to account for cases where the first attachment uses
regular (non-MSRTT) mode. As a result, when the same framebuffer is
later used with MultisampledRenderToTexture, the sample count mismatch
between attachments may go undetected or misinterpreted, leading to
incorrect completeness status.
Bug: angleproject:447833937
Change-Id: I2d2743d7567b052b8df418447f287e6ac8af7b9a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6992818
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
|
|
99c47333
|
2025-10-15T13:21:19
|
|
[metal] Fix data race in commands scheduled sync
The recently added commands scheduled sync object adds a callback to
the command queue to be invoked when the scheduled handler for the
committed command buffer runs. This callback could be called after the
sync object is destoyed, so make sure it doesn't reference the original
sync object, but only a thread-safe ref-counted state object.
Bug: chromium:444702048
Change-Id: Ifaef54eae5dfdb0b6eb6b767120947e66a6a6964
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/7046662
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Auto-Submit: Sunny Sachanandani <sunnyps@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
0b9caaf7
|
2025-10-16T09:28:43
|
|
Vulkan: Limit atomic counters to 32
Technically, the limit for atomic counters can be very large; we use an
SSBO to emulate them, which can commonly be gigabytes.
However, some tests create as many atomic counters as possible, which
with the added logic to use those atomic counters result in huge
shaders, risking exhausting SPIR-V's 16-bit ids.
Given most GLES drivers expose a limit of 8, there's no reason for ANGLE
to expose 4096 of them. This limit is lowered to 32 in this change.
Bug: angleproject:42262227
Change-Id: I9f1db94bb688050cbd9b4eaa7af65317ab806322
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/7042357
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
|
|
665785f6
|
2025-10-11T14:11:26
|
|
Vulkan: Load the image when damage region is set
Ensure image loads when buffer age > 0 and damage region is set,
regardless of first eglQuerySurface call
Bug: angleproject:450967247
Change-Id: I5cae32fc3c3e8c0b26e9d8a6eb6c1365d0d12bf9
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/7031241
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Auto-Submit: Xin Yuan <xin.yuan@arm.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
|
|
3add1bfa
|
2025-10-10T12:31:30
|
|
FrameCapture: Add skip invalid condition
If array buffers bound to the vertex array object are deleted
and this vertex array object is not deleted, the replay could not work.
Added a skip condition when buffers bound to VAO are deleted.
Bug: b/448683996
Change-Id: I4c88438f81c9e8ff73f9dba994f445b7cb7ec58a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/7030341
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Mark Łobodziński <mark@lunarg.com>
|
|
4ad0cae3
|
2025-10-15T14:55:27
|
|
Fix OpenGL ES version string
Cache only the major and minor version for GLES
Bug: angleproject:386749841
Change-Id: I936ee56f19d1d459f855a643f9b67ae4f596a1d5
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/7047080
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: mohan maiya <m.maiya@samsung.com>
|
|
ac80018c
|
2025-08-17T06:33:17
|
|
CL/Vulkan: Set host cached bit for HOST_PTR buffers
Leads to better performance on "clEnqueueReadBuffer" operations
when CL buffers are created as host-pointer based buffers.
Bug: angleproject:42267018
Change-Id: I18048deea96858180b63cfad95fe33fbab7f11c9
Signed-off-by: kyongjoo.oh <kyongjoo.oh@samsung.com>
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6981096
Commit-Queue: Austin Annestrand <a.annestrand@samsung.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
7280d3d1
|
2025-10-14T09:56:58
|
|
Turn off preferSubmitAtFBOBoundary and add early submit logic
Disabling preferSubmitAtFBOBoundary for MALI GPUs and submit pending
commands at the draw call time if the number of write-commands in the
current render pass reaches a threshold to avoid delaying
the submission too much.
Bug: angleproject:447444701
Change-Id: I413a4beb7147afd4f064286433a76014b19a49c6
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6994438
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Auto-Submit: Sean Feng <Sean.Feng@arm.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
2027314b
|
2025-08-26T17:07:27
|
|
CL/Vulkan: Enable OpenCL kernel printf in logcat
Added `__android_log_write` for kernel print output buffer
in case of android build
Bug: angleproject:433980940
Change-Id: I4eac408076c3b4d804949724eff439137172fa54
Signed-off-by: hoonee.cho <hoonee.cho@samsung.com>
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6981095
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Austin Annestrand <a.annestrand@samsung.com>
|
|
774bca93
|
2025-10-08T18:41:13
|
|
[metal] Add commands scheduled sync object
We need a thread-safe way to wait for ANGLE Metal command buffers to be
scheduled for IOSurface synchronization with DrDC + Graphite on Mac.
The existing eglWaitUntilWorkScheduledANGLE API isn't thread-safe as it
reaches into ContextMtl innards to flush the command buffer.
This CL adds the EGL_ANGLE_metal_commands_scheduled_sync extension which
introduces a EGL_SYNC_METAL_COMMANDS_SCHEDULED_ANGLE sync object type.
This sync object is signaled when pending Metal commands are scheduled
to run on the GPU (MTLCommandBufferStatusScheduled). These sync objects
are thread-safe - eglClientWaitSync() can be called on any thread even
without a current context which is needed for DrDC + Graphite on Mac.
Bug: chromium:444702048
Change-Id: Ia13b352385a6fefaa026526ef74f6e596a6a6964
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/7027996
Auto-Submit: Sunny Sachanandani <sunnyps@chromium.org>
Reviewed-by: Quyen Le <lehoangquyen@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Sunny Sachanandani <sunnyps@chromium.org>
|
|
c1ae67dc
|
2025-08-18T17:26:21
|
|
cl/vk: Introduce Int64 Atomic support
Checks for VK_KHR_shader_atomic_int64 and
enables/reports the following if supported:
cl_khr_int64_base_atomics
cl_khr_int64_extended_atomics
Bug: angleproject:447192709
Change-Id: I47102efd3e269d518558993f6068bfc4f9dd79b6
Signed-off-by: Austin Annestrand <a.annestrand@samsung.com>
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6981099
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
4d52bedb
|
2025-08-12T00:28:48
|
|
CL/Vulkan: Add 3.0 atomic memory order feature macros
With OpenCL 3.0, generic atomic_{load,store} functions
are defined with memory_order_seq_cst and memory_scope_device
as memory order and scope. For these corresponding feature
macros need to be enabled. Setting them up accordingly.
Bug: angleproject:379669750
Change-Id: I355cf4107fee10d203837ca0aa4a9f473cd81929
Signed-off-by: hoonee.cho <hoonee.cho@samsung.com>
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6981092
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Austin Annestrand <a.annestrand@samsung.com>
|
|
7c7fcb92
|
2025-07-14T07:56:22
|
|
CL/Vulkan: Allocate descriptor sets under lock
Multiple threads in the application are accessing the OpenCL
runtime simultaneously, resulting in multiple SharedPtr of
mDynamicDescriptorPools[] being created for a single context.
This can lead to incorrect reference counting and
potentially cause `DynamicDescriptorPool::destroy` to be
called unexpectedly. This fixes the concurrent access issue
through acquiring the descriptor set mutex
just before initializing mDynamicDescriptorPools to ensure that
only one mDynamicDescriptorPools[] is created per context.
Bug: angleproject:383999367
Tests-Passing: test_integer_ops int_logic
Change-Id: Iba0fad6813a08e1631b73d5efae4f4639892b36f
Signed-off-by: hoonee.cho <hoonee.cho@samsung.com>
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6981091
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Austin Annestrand <a.annestrand@samsung.com>
|
|
e9e17890
|
2025-09-24T15:21:17
|
|
CL/Vulkan: Make CommandsStateMap as self contained
The `CommandsStateMap` object is used to capture all the state that
needs post-processing after a command batch is finished. Making this as
a standalone object.
Bug: angleproject:446112158
Change-Id: I1f33741da15fe32aae06cba79650dc76426490d5
Signed-off-by: Gowtham Tammana <g.tammana@samsung.com>
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6981090
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Austin Annestrand <a.annestrand@samsung.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
80130da0
|
2025-10-01T14:53:23
|
|
Vulkan: Enable recycleVkEvent on swiftshader
Given that no GPU has reported that vkCreateEvent() + vkDestroyEvent()
has more overhead than vkCmdResetEvent(), we will keep the
recycleVkEvent feature flag off on all major hardware.
Enable the recycleVkEvent feature on swiftshader so we can
test the VkEvent recycle code path.
Bug: b/440066521
Change-Id: I0eb30ea9a01e287664effa33cef5227f9f438a56
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/7004937
Commit-Queue: Yuxin Hu <yuxinhu@google.com>
Reviewed-by: Charlie Lao <cclao@google.com>
|
|
45b0571e
|
2025-09-24T15:20:53
|
|
Vulkan: Add barrier log only when present
Bug: angleproject:446112158
Change-Id: I4eb94c1514df5a2eaec70267e2dbbd5a1c2579bd
Signed-off-by: Gowtham Tammana <g.tammana@samsung.com>
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6975005
Commit-Queue: Austin Annestrand <a.annestrand@samsung.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
ea35293a
|
2025-04-14T15:52:02
|
|
CL/Vulkan: Dump commandstream on request
Dump the command stream to stdout when feature flag
`debug_cl_dump_command_stream` is enabled.
Bug: angleproject:446112158
Change-Id: I58ea7eec4c842aee382568c7f41c99a242d29680
Signed-off-by: Gowtham Tammana <g.tammana@samsung.com>
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6975004
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Austin Annestrand <a.annestrand@samsung.com>
|
|
02ffcb36
|
2025-08-01T08:13:21
|
|
CL/VK: Fix heap overflow when kernel args exceed size
Prevented memory corruption by validating argument size against
allocated push constant size before copying.
Bug: angleproject:447192711
Tests-Passing: test_basic vector_swizzle
Change-Id: I73b03a31089ad922b9ad7c2295fd1578d60458ec
Signed-off-by: kyongjoo.oh <kyongjoo.oh@samsung.com>
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6981098
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Austin Annestrand <a.annestrand@samsung.com>
|
|
715e935d
|
2025-10-08T21:16:08
|
|
D3D11: Add UMA metrics for Create*Shader's timing
Bug: chromium:399642827
Change-Id: Iaf22b598305d8c11ec0ea9bafa6cd1361db571f5
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/7022089
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Auto-Submit: Quyen Le <lehoangquyen@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Quyen Le <lehoangquyen@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
fd353919
|
2025-10-03T14:32:05
|
|
Vulkan: Fix VMA assertion
The primitive restart may generate zero size, and VMA does not like it.
Make sure we not pass down zero size here.
Bug: angleproject:448916158
Change-Id: I9a901127e8de11ab008e39330bd2eb93a9f135bc
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/7008828
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Charlie Lao <cclao@google.com>
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
|
|
01280f65
|
2025-07-29T10:14:54
|
|
CL/Vulkan: Remove spurious clear
The external events corresponding to a command stream submit and
processed and cleared before vkSubmit. So remove the spurious clear at
the time finish post processing.
Bug: angleproject:446112158
Change-Id: If2efcc3173e400ad2d386ca374eebe9d9f310692
Signed-off-by: Gowtham Tammana <g.tammana@samsung.com>
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6981089
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Austin Annestrand <a.annestrand@samsung.com>
|
|
b276d1f8
|
2025-10-03T08:56:54
|
|
Vulkan: Add supportShaderPixelLocalStorageAngle feature
Don't expose GL_ANGLE_shader_pixel_local_storage extension for Samsung
Bug: angleproject:386749841
Change-Id: Ia22a6e8d8625db2abc7e7e9816ac34b7a7dec92c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/7006000
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: mohan maiya <m.maiya@samsung.com>
|
|
51fcd399
|
2025-10-03T10:39:14
|
|
Revert "Vulkan: Suppress buggy VU"
This reverts commit a83d674ed6b9096a5c5b1f3e3924aaa340bd3867.
Reason for revert: Buggy VU was disabled in VVL
Original change's description:
> Vulkan: Suppress buggy VU
>
> Bug: angleproject:448630613
> Change-Id: Ibccc4fbbe6257a3b96f5ccb112fec866cc2c3efe
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/7003828
> Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org>
> Commit-Queue: Yuxin Hu <yuxinhu@google.com>
> Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Bug: angleproject:448630613
Change-Id: I19ebc3cb83d9ceefcfbbb92df0a0e1bde4ff7a36
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/7007012
Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
|
|
41bc2afa
|
2025-10-02T16:22:33
|
|
Vulkan: Remove mBindingDirtyBitsRequiresPipelineUpdate
mBindingDirtyBitsRequiresPipelineUpdate and
mAttribDirtyBitsRequiresPipelineUpdate are used to avoid
GraphicsPipelineDesc::updateVertexInput() call. This function is not
being used when supportsVertexInputDynamicState is enabled, which almost
all recent drivers do. We could potentially do similar optimizations
when supportsVertexInputDynamicState is enabled to avoid
RenderPassCommands::setVertexInput() call. But the logic is complex
enough not really worth it (See crrev.com/c/6961186 for draft CL). If
any, simply compare the new value and old value probably is as good as
checking the dirty bits. In this CL, all these dirty bits checking are
removed so that we do not waste CPU cycles to track these dirty bits
while not being used at all when supportsVertexInputDynamicState.enabled
is true.
Bug: b/439073246
Bug: b/442636174
Change-Id: I7d71d4fc9388612e7c6ccc50a2e781325fe953bc
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/7007241
Commit-Queue: Charlie Lao <cclao@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
|
|
8f8f0439
|
2025-10-02T15:44:46
|
|
Group the class methods together
In previous many CLs, I intentionally not move around the code for ease
of code review. Now everything has settled down, it is the time to
regroup class methods together.
Also renamed some various in VertexArrayVk to be consistent with each
other.
No functional change is expected in this CL.
Bug: b/439073246
Bug: b/433331119
Change-Id: I84f9a2ff9ea20f359e2f546ecb4e3e503b805748
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/7007472
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Commit-Queue: Charlie Lao <cclao@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
62b00f86
|
2025-10-02T12:19:23
|
|
Vulkan: Further minimize VertexArrayVk::syncDirtyEnabledAttrib
This CL splits the streaming handling into its own function:
syncDirtyEnabledAttrib is now splitted into
syncDirtyEnabledNonStreamingAttrib and syncDirtyEnabledStreamingAttrib.
This minimize the condition check inside syncDirtyEnabledAttrib.
VertexArrayVk::syncDirtyEnabledAttrib() function has a check of
bufferGL->getSize() > 0 as well as hasAtLeastOneVertex. And if either of
them are false, they simply point to empty buffer. This CL merges these
this fallout case into hasAtLeastOneVertex and added ASSERT to ensure
that if buffer size is 0, hasAtLeastOneVertex is false.
Bug: b/439073246
Change-Id: I5e3592c31469d15f5321208eb0278b10e447118c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6987341
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
2247ebec
|
2025-10-02T09:52:40
|
|
Trace/Replay: Don't reset max shader/program ID
The mMaxShaderProgramID variable was being reset between captures.
This could result in trace crashes when the temp shader/program
start ID conflicted with active programs or shaders.
Test: angle_trace_tests --gtest_filter=*identity_v
Bug: b/448817125
Change-Id: I49c1d94b5824a8eaee444f7e4eb323ddab1a3edc
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/7006451
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
|
|
7b4ff0b2
|
2025-10-01T16:30:47
|
|
Vulkan: Updates to onFramebufferBoundary
1. Rename to the more appropriate onFrameBoundary
2. Add method to renderer for better encapsulation
3. When being moved to the background some apps unMakeCurrent
the contexts and exit without calling other frame boundary
APIs. Handle such usecases by treating
ContextVk::onUnMakeCurrent(...) as a frame boundary
Bug: angleproject:386749841
Change-Id: Ic2a8ecb631d132d99f8508f45f3b454c49f6624e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/7004936
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: mohan maiya <m.maiya@samsung.com>
Reviewed-by: Charlie Lao <cclao@google.com>
|
|
b152eb30
|
2025-09-12T21:20:08
|
|
Vulkan: Refine conditions to force submit immutable textures
To minimize unnecessary submissions, make the activation
conditions for forceSubmitImmutableTextureUpdates feature
more precise.
This also enables the feature for Samsung devices.
Bug: b/444728814
Change-Id: Idaf6b36596752f55ec6ba0ca1e4ff516f3a280df
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6945861
Reviewed-by: mohan maiya <m.maiya@samsung.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: mohan maiya <m.maiya@samsung.com>
|
|
7994bf76
|
2025-09-29T11:55:00
|
|
Vulkan: Avoid double-setting the fragment shading rate
Because there were two handlers for fragment shading rate, one for the
QCOM extension and one for EXT, every time the render pass started, it
would set the fragment shading rate to 1x1 twice.
Bug: angleproject:420310117
Change-Id: I905c504c7a7b80b5e7173e5d6a7cabe6f271e7a1
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6995362
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: mohan maiya <m.maiya@samsung.com>
Reviewed-by: Charlie Lao <cclao@google.com>
|
|
17307955
|
2025-09-30T18:08:18
|
|
Vulkan: Add a threshold for RefCountedEventRecycler::mEventsToReset
Surface Flinger process is not guaranteed to call
Renderer::flushOutsideRPCommands(), in that case
RefCountedEventRecycler::mEventsToReset is never cleaned up and
send back to RefCountedEventRecycler::mEventsToReuse list, which causes
file descriptors leaking. This change adds a threshold for the number
of items in RefCountedEventRecycler::mEventsToReset. If the threshold
is reached, don't add item to RefCountedEventRecycler::mEventsToReset,
destroy the items instead.
Bug: b/440066521
Change-Id: If4aa0b14ab15e70f192f380e3b9707b405dd6fcb
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/7001562
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Yuxin Hu <yuxinhu@google.com>
|
|
7093e400
|
2025-09-29T14:31:06
|
|
Vulkan: Fix buffer size for vertex array
* In syncDirtyEnabledAttrib() in VertexArrayVk, the array buffer size
used for binding (BindVertexBuffers2()) has been changed to that of
bufferHelper.
Bug: angleproject:448047351
Change-Id: I852e4839cba698c01f92644cf32fadf366c0b54f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6996428
Commit-Queue: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
a83d674e
|
2025-10-01T12:42:48
|
|
Vulkan: Suppress buggy VU
Bug: angleproject:448630613
Change-Id: Ibccc4fbbe6257a3b96f5ccb112fec866cc2c3efe
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/7003828
Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Yuxin Hu <yuxinhu@google.com>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
|
|
c4e942d6
|
2025-09-25T02:47:45
|
|
Tidy up some README.chromium files in Angle.
Backfills the Update Mechanism field for dependencies
and cleans up some of the other fields which are out of
date.
Bug: chromium:379934539
Change-Id: I9a952e905ce00c379c4d593dd67b7e0fc6f1794e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6981101
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
e12bb29c
|
2025-08-01T15:34:26
|
|
Recompute vertex capacity when resuming transform feedback.
Extract vertex capacity computation into recomputeVertexCapacity()
and call it from both begin() and resume() to handle cases where
the backing buffer size changes while transform feedback is paused.
Add a new WebGL specific test to TransformFeedback to test the expected
behavior when making the backing buffer smaller via glBufferData.
Bug: angleproject:437706201
Change-Id: I3ac8e1e983ab868e34c1bdac249ce17a40e274f0
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6830709
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Kimmo Kinnunen <kkinnunen@apple.com>
|
|
ba5db43c
|
2025-09-27T08:51:25
|
|
Vulkan: support MESA PanVK compatibility
Naming wise:
1. isARMProprietary: ARM Mali DDK
2. isMesaPanVK: MESA PanVK
Compatibility wise:
1. No behavior change for ARM proprietary driver.
2. Gone through each isARM check and update to isARMProprietary for
those not applicable to MESA PanVK.
3. Fixed some isMaliJobManagerBasedGPU check which assumes the ARM
prorietary driver.
4. Enabled doubleDepthBiasConstantFactor for MESA PanVK.
Bug: b/399142853
Bug: b/447647367
Test: no unexpected regressions in dEQP-EGL.* and dEQP-GLES*
Test: dEQP-GLES3.functional.polygon_offset.* pass
Change-Id: I8f830632b4caf2e63a3ae87e15825e21476bf595
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6992252
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Auto-Submit: Yiwei Zhang <zzyiwei@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
|
|
f95cbef4
|
2025-09-07T17:50:37
|
|
Reland "Add a "noncoherent" layout qualifier to PLS"
This is a reland of commit ef9c5ce43110f4f8ba56124bdee927944ce3ddd1 with
an invalid assert removed.
Original change's description:
> Add a "noncoherent" layout qualifier to PLS
>
> Raster ordering can be expensive. If an app knows the geometry in a draw
> does not overlap, it can mark the PLS planes as noncoherent and opt for
> using barriers instead.
>
> Bug: angleproject:40096838
> Change-Id: I2d686c2e64f51940face186637a9fcadcc251bef
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6923300
> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
> Reviewed-by: Kenneth Russell <kbr@chromium.org>
> Commit-Queue: Chris Dalton <chris@rive.app>
Bug: angleproject:40096838
Change-Id: I55077a973063427dfb0d510c87e75ec86ce8bb43
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6991929
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
|
|
020c8ea3
|
2025-09-26T12:35:25
|
|
Disable convertLowpAndMediumpFloatUniformsTo16Bits on non-ARM devices
It is unknown if other GPUs need this explicitly 32-bit to 16-bit
casts, and the performance impact of this feature needs to be verified
across different GPUs.
Bug: b/405795981
Change-Id: I1b450aea58d6f4a20eddac5c9edceb4ebac4d999
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6990532
Commit-Queue: Yuxin Hu <yuxinhu@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
6218bbd4
|
2025-09-26T12:20:39
|
|
Vulkan: Make min submit command count dynamic
* Turned the constant submit count threshold to a variable that can
be set for different devices independently.
* Added feature flag to enable forcing submission for certain GL
commands, such as Clear and Invalidate.
* If disabled, it would treat all commands the same and submit at
the count threshold without exception.
Bug: b/422507974
Change-Id: Ib13d36adfdcf75aa865dafadc279287f4a4bd1c7
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6990531
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
|
|
94777428
|
2025-08-08T10:36:22
|
|
Shading rate should be {1,1} when enabled PER_SAMPLE
According to spec, if FETCH_PER_SAMPLE_ARM is enabled, the fragment
shading rate is set to {1,1}.
Bug: angleproject:437957110
Change-Id: I3ea6958f1aaec5f13923f62001906c7c6c71e09e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6839957
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Auto-Submit: Tingwei Guo <tingwei.guo@arm.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
|
|
193e9cda
|
2025-09-25T15:26:39
|
|
Revert "Vulkan: Simplify/Fix DmaBufImageSiblingVkLinux import probing"
This reverts commit d917f77130e5194e82418f3bdaa2cd5b2af55c03.
Reason for revert: Google Meet Regression https://crbug.com/445863166
Original change's description:
> Vulkan: Simplify/Fix DmaBufImageSiblingVkLinux import probing
>
> Remove the multi-format probing logic in DmaBufImageSiblingVkLinux.
> Use the renderer’s base VkFormat and a single check with
> VkImageFormatListCreateInfo, instead of looping over mVkFormats with
> mutable/non-mutable combinations. This cuts down redundant queries
> and streamlines initImpl.
>
> Also, this CL fixes some issues occur when mapping DRM format into
> Vulkan backend formats.
> - Default to SampleOnly but prefer Renderable if the modifier properties
> exposes both sampling and rendering, since usage at import time is
> unknown.
> - Fix emulated-format handling issue by using getIntendedFormatID() and
> getActualImageFormatID() instead of deriving both IDs from VkFormat with
> GetFormatIDFromVkFormat() directly.
>
> Bug: angleproject:442313595
> Bug: angleproject:426475684
> Change-Id: Ia38d8e7901da10948a2c15eb284b055359dd4a2d
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6904888
> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
> Reviewed-by: mohan maiya <m.maiya@samsung.com>
Bug: angleproject:442313595
Bug: angleproject:426475684
Bug: chromium:445863166
Change-Id: I530e9b363a2e25ec2325e3933a409d0aae9940c0
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6986844
Commit-Queue: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Auto-Submit: Yuxin Hu <yuxinhu@google.com>
|
|
1f40285c
|
2025-09-24T11:54:44
|
|
Vulkan: Bypass buffer for VA if Bind*Buffers2
Due to added support for BindVertexBuffers2 and BindIndexBuffer2,
there would be no need to allocate a buffer for vertex arrays via
getBufferForVertexArray() if the related features are supported. It
should be possible to directly reference the original buffer and the
proper offset instead without errors.
* The buffer handles and offsets in VertexArrayVk now get the original
buffer handle and offset instead of using getBufferForVertexArray().
* getBufferForVertexArray() will now be used only when the following
feature is disabled:
* useVertexInputBindingStrideDynamicState
* (which is used as condition for vkCmdBindVertexBuffers2())
* Renamed the function for index buffer: getIndexBufferForVertexArray()
This will be used when the following feature is disabled:
* supportsMaintenance5
* (which is used as condition for vkCmdBindIndexBuffer2()))
* Moved the rest of the code in getBufferForVertexArray() to ~Impl(),
which is used by both the functions above.
* Removed redundant condition from the vertex input binding stride
dynamic state feature.
Bug: chromium:40059200
Bug: angleproject:394337110
Change-Id: I665611f92058048a9778aa4b823fabfad7c96c84
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6980316
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
Reviewed-by: Charlie Lao <cclao@google.com>
|
|
392d4a4d
|
2025-09-24T15:58:23
|
|
Windows: Fix angle_enable_trace build
The writeFile helper was modified to take only two parameters.
Test: Build on Windows with angle_enable_trace = true
Bug: b/436880895
Change-Id: I603cb1e85a7f9c1f0d2d008adf3a6c9351b4252a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6981094
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Auto-Submit: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
|
|
69745720
|
2025-09-23T11:16:21
|
|
[WebGPU] Implement texture copy from cpu reads.
This CL implements a slow path to copying from a
texture that reads data from the CPU. This path
is taken when the src and destination formats
differ.
Bug: angleproject:438268609
Change-Id: I5a81fbed5bbac68c48537d8c7a2fcc487c31e76e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6847147
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Matthew Denton <mpdenton@chromium.org>
Auto-Submit: Liza Burakova <liza@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
35b92525
|
2025-08-13T15:27:32
|
|
Remove lock from GenVertexArrays/IsVertexArray
VertexArrays are per context anyway and is thread safe, so there is no
need for shared lock. This CL moves mVertexArrayMap from Context to
PrivateState so that it won't be accessed by other APIs.
Bug: b/433331119
Change-Id: I466a79762e887dbec78b796b52028420837cff59
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6977163
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Charlie Lao <cclao@google.com>
|
|
ea4dab49
|
2025-07-08T18:49:19
|
|
cl/vk: add missing map routine locks/counts
thread-heavy workloads are exposing parent buffer
and sub-buffer mapping/map-count logic.
using map lock/count to remedy this.
Bug: angleproject:376722715
Change-Id: I1e5cba76f388fa62f244a9372238b2526e910b60
Signed-off-by: Austin Annestrand <a.annestrand@samsung.com>
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6973873
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
cb3b51a6
|
2025-09-12T20:45:38
|
|
Vulkan: Respect externalFormat properties for AHB
When the Vulkan driver sets `VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT` in
`VkAndroidHardwareBufferFormatPropertiesANDROID::formatFeatures`, ANGLE
has the option of using `VK_FORMAT_UNDEFINED` rather than the reported
`VkAndroidHardwareBufferFormatPropertiesANDROID::format` if the feature
set is what is desired.
This patch introduces separate checks of `formatFeatures` and the
capabilities of `format`, and modifies the validation and creation of
`VKImage`s to specify a format explicitly only when this would be
necessary to conform to user intent expressed by the usage of the AHB.
Test: atest GpuFormatIdentityTest
Bug: b/440416844
Change-Id: I629b556c1d1daffbced0992f421db2bcd95bbada
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6944813
Commit-Queue: Charlie Lao <cclao@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
|
|
24fdc63a
|
2025-09-24T11:52:30
|
|
Vulkan: Disable recycleVkEvent
Until we figure out whats causing VkEvent leak, disable the
recycleVkEvent feature for now.
Bug: b/440066521
Change-Id: I1b56554e8986b7113b12280d30cce2aae54b9589
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6981088
Commit-Queue: Charlie Lao <cclao@google.com>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
|
|
e3dc97b1
|
2025-09-22T16:38:28
|
|
Metal: fix SDK condition macro for mathMode.
It was missing conditions for tvOS and visionOS and the conditions were
> instead of >=.
Bug: chromium:383994655
Change-Id: I0a565a7028a3fe43b745419d9bac1da0abcc99be
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6972592
Reviewed-by: Alexey Knyazev <lexa.knyazev@gmail.com>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
7acb00a4
|
2025-09-15T15:35:51
|
|
Add egl config support GL_RGB16F for Linux Headless
Add egl config support GL_RGB16F for Linux Headless. If it is
renderable, then ANGLE would generate EGL config for this format.
Bug: angleproject:446545299
Change-Id: I213fc6856c561890762eb8548a9a22b3e6fb53f1
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6975604
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
dd51c3e5
|
2025-09-16T00:03:20
|
|
Vulkan: Expand usage of BindVertexBuffers2
* bindVertexBuffers2() can now be used when vertex input dynamic
state is enabled.
* Since dynamic vertex input already sets the strides, there
is no need to add the strides to bindVertexBuffers2() anymore
and passing in nullptr should work.
* Added the following token: BindVertexBuffers2NoStride
* This is used to avoid the condition check overhead for the
draw calls taking this code path.
* Removed the condition of vertex input dynamic state from using
vertex input binding stride.
* The following pipeline flags can now be added to a pipeline
object at the same time:
* VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE
* VK_DYNAMIC_STATE_VERTEX_INPUT_EXT
* Changed the condition of positive vertex attribute count to any
vertex attributes to add input binding stride flag to the pipeline.
Bug: chromium:40059200
Change-Id: Id3be458580da0ca46db554bf292f240dae4d5097
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6944912
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
Reviewed-by: Charlie Lao <cclao@google.com>
|
|
b4d1333d
|
2025-07-24T10:28:25
|
|
Fix the issues when blitting within same resources
Per GLES spec,when the attachments in src and dst framebuffers are
identical, angle should generate GL_INVALID_OPERATION.
But different mipmap levels of a texture, different layers of a 3D
texture or 2D array texture, and different faces of a cube map texture
do not constitute identical buffers, these are valid operations.
Bug: angleproject:433816259
Change-Id: Ie6d34819dfbc2faa4af22ec370e59c1ed4521bcb
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6780168
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
Auto-Submit: Xin Yuan <xin.yuan@arm.com>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
|
|
81d5ad4b
|
2025-09-23T16:54:46
|
|
FrameCapture: Set GL_TEXTURE_CROP_RECT_OES texture parameter
Add texture parameter setting for GL_TEXTURE_CROP_RECT_OES
in frame capture (GLES1 only)
Bug: b/446779901
Change-Id: I174dc351292b3a928f75419590f5eaea37c5f376
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6975608
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Mark Łobodziński <mark@lunarg.com>
|
|
ddc6885d
|
2025-09-22T17:22:20
|
|
Remove SubjectMessage::ContentsChanged handler from gl::Texture
Case statement for SubjectMessage::ContentsChanged in
gl::Texture::onSubjectStateChange was added during the development of
multisampledRenderToTextureEXT on Windows.
Since we're removed the partial implementation, we no longer need to
handle this condition.
Bug:chromium:443111620
Change-Id: I78f83121491c295961386e1e2a4da191c0ce7171
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6975022
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
205a9a22
|
2025-09-22T14:04:59
|
|
FrameCapture: set starting binding GL_ELEMENT_ARRAY_BUFFER
set starting binding GL_ELEMENT_ARRAY_BUFFER of vertex array object.
Bug: b/446464003
Change-Id: I64f05694f66909fba81dc454df871d4cd49c20bf
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6968196
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
3da898aa
|
2025-09-17T05:15:40
|
|
Add missing include for windows
Bug: chromium:40263312
Change-Id: I3c4c82c3f6ec1c4b26b6a26b2fe56945be0351aa
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6957755
Auto-Submit: Matt Stark <msta@google.com>
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
c41ec91d
|
2025-07-03T13:34:09
|
|
CL/Vulkan: Zero-copy support added for CL Images
- Using syncHost now for HostTransferConfigVisitor
- Modified the interface of copyImageToFromBuffer
Bug: angleproject:444481344
Change-Id: Iad315952720fcb23cbc0e58321594cb4d0db71dd
Signed-off-by: Shyam Manohar <s.manohar@samsung.com>
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6939059
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Austin Annestrand <a.annestrand@samsung.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
bc69e27d
|
2025-06-19T11:25:35
|
|
CL/Vulkan: Add helper routine to calculate VkBufferImageCopy
When copying image to buffer and buffer to image, we need to construct
VkBufferImageCopy object. Setting up a helper function for command
usage.
Bug: angleproject:444481344
Change-Id: I4d156454cea6e0de87604aaecde8809f1669de8c
Signed-off-by: Gowtham Tammana <g.tammana@samsung.com>
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6939058
Commit-Queue: Austin Annestrand <a.annestrand@samsung.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
91263bbb
|
2025-09-18T14:55:02
|
|
Vulkan:Improve ContextVk::handleDirtyGraphicsDefaultAttribs
ContextVk::handleDirtyGraphicsDefaultAttribs() calls
updateDefaultAttrib(), which basically does the work
ContextVk::onVertexArrayChange() is doing. This CL simplify the code by
calling onVertexArrayChange directly from
handleDirtyGraphicsDefaultAttribs. onVertexAttributeChange is removed.
This also has the advantage that onVertexArrayChange put the for loop
inside if check, versus current implementation does all the if check
inside the for loop.
Bug: b/439073246
Change-Id: Ic7b7f531f2f831d16f34794e23fefc9569a3e142
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6967318
Commit-Queue: Charlie Lao <cclao@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
|
|
a8ed5bd1
|
2025-09-20T16:38:48
|
|
Vulkan: Disable convertLowpAndMediumpFloatUniformsTo16Bits for Samsung
Bug: angleproject:405795981
Change-Id: Ib71a5121ab71df57cd30ece8698694f11f91c563
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6970446
Commit-Queue: mohan maiya <m.maiya@samsung.com>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
|
|
0e719508
|
2025-09-22T11:37:36
|
|
Metal: Gate mathMode usage on compile time SDK versions.
Integrators of ANGLE who compile with SDK versions lower than macOS 15
would get compile errors by referencing mathMode.
Bug: chromium:383994655
Change-Id: I152403977c1233e4049f13f3d99cdd12fdf87073
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6973058
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Avi Drissman <avi@chromium.org>
|
|
50927761
|
2025-09-19T14:45:24
|
|
Vulkan: Add externallySynchronizePipelineCacheAccess feature
Acquire renderer's pipeline cache mutex IFF
externallySynchronizePipelineCacheAccess feature is enabled
Bug: angleproject:386749841
Bug: angleproject:445240187
Change-Id: I91804e2713944768a5379adc3113ce7632a17111
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6969910
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: mohan maiya <m.maiya@samsung.com>
|
|
02b53738
|
2025-09-08T08:55:23
|
|
Trace/Replay: Fix context grouping issues
In tracing Harry Potter Magic Awakened, issues related to context
grouping were found affecting shader and program state. While these
objects are shared among all contexts, their state is not. This led to
race conditions in object lifetimes as well as incorrect states for
operations dependent on stader/program state.
Test: angle_trace_tests --gtest_filter=*harry_potter_magic_awakened
Bug: b/445208963
Change-Id: I8dbb22f72c917103f947cd34d088c4db0cd39731
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6950247
Commit-Queue: Mark Łobodziński <mark@lunarg.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
|
|
1e1830b7
|
2025-09-10T15:35:54
|
|
Vulkan: Return length=0 if the bufSize of glGetActiveAttrib is 0
Bug: angleproject:444058258
Change-Id: I9d1bd6f85f4340e1d330317923b954e5bfaeb3b9
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6933702
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Auto-Submit: Panfeng Hou <panfeng.hou@arm.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
c07bed66
|
2025-09-17T10:36:27
|
|
Trace/Replay: Allow for ignored uniform locations
If a uniform location is -1 it must be ignored and no changes can
be made. Skip default uniform location updates for these locations.
Test: Capture GFXBench car chase scene
Bug: b/441583445
Change-Id: Ifd476636f241a352ad058890bf945cf337e61f6d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6961035
Commit-Queue: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
|
|
75f6faf1
|
2025-09-05T17:01:43
|
|
Vulkan: Use size in BindVertexBuffers2
* Added the following attribute array to VertexArrayVk:
mCurrentArrayBufferSizes
* Updated during syncing/updating the vertex array attributes.
* Added the pointer for buffer sizes to the following call:
vkCmdBindVertexBuffers2EXT()
Bug: chromium:40059200
Change-Id: I754741d12a729d42dab7e0f0b166a174c8d86181
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6917838
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
|
|
61c452ba
|
2025-09-03T17:23:37
|
|
Vulkan: Disable supportsShaderFramebufferFetch for Samsung
Disable framebuffer fetch extensions for Samsung.
Bug: angleproject:445083429
Change-Id: I89828b148ea1ac8ad2d59626e15d5f9358fe5b3c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6962954
Reviewed-by: mohan maiya <m.maiya@samsung.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: mohan maiya <m.maiya@samsung.com>
|
|
3d60009c
|
2025-02-26T00:09:37
|
|
CL/Vulkan: Don't serialize on external CQ events
At the moment, the vulkan backend is setup with a single queue for all
command buffer recordings. So flushing the external cq's on its
dependencies is sufficient enough.
Bug: angleproject:446112158
Tests-Passing: ocl_cts.test_events
Change-Id: I7310f1b5e24abf7476b7a753a280456050e1afd5
Signed-off-by: Gowtham Tammana <g.tammana@samsung.com>
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6939057
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Austin Annestrand <a.annestrand@samsung.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
7db4a404
|
2025-09-19T18:12:41
|
|
Vulkan: Fix UBSan by initializing CopyImageParameters
A sporadic UBSan crash was caused by reading
'copyYuvWithoutColorConversion' member from an uninitialized
CopyImageParameters struct.
Fix this by zero-initializing the 'params' variable at the call site
in TextureVk.cpp
Bug: b/446185698
Bug: b/445180744
Change-Id: I92db7a735b91df8603698bb2a33d95ec6d7556a7
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6965689
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Auto-Submit: Solti Ho <solti@google.com>
|
|
096924c1
|
2025-06-13T17:26:20
|
|
CL: Consolidate cl::{Offset,Extents} types
The following definitions were equivalent, so consolidating their
definitions.
- cl::MemOffsets ~ cl::Offset
- cl::Coordinate ~ cl::Extents
Bug: angleproject:444481344
Change-Id: I6c1bd68bc3260b8da0ab4b4796668caf474e56a1
Signed-off-by: Gowtham Tammana <g.tammana@samsung.com>
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6939056
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Austin Annestrand <a.annestrand@samsung.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
04cbd20d
|
2025-06-16T11:06:44
|
|
CL/Vulkan: Fix the rect size calculation
Take into consideration on the extraneous region when calculating the
size of the enclosing buffer size for buffer rects.
Bug: angleproject:444481344
Change-Id: Ifd146035565abf5bea0650ccee375bc2b28a55c1
Signed-off-by: Gowtham Tammana <g.tammana@samsung.com>
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6939055
Commit-Queue: Austin Annestrand <a.annestrand@samsung.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
b1fc47c7
|
2025-09-17T18:21:02
|
|
Vulkan: add check for vertexAttributeInstanceRateZeroDivisor
Allow zero divisor for vertex attributes when
mVertexAttributeDivisorFeaturesmVertexAttributeDivisorFeatures.vertexAttributeInstanceRateZeroDivisor
is true.
Bug: b/439073246
Change-Id: I68705faffcefb38360f6fbcf5d937d1d902180aa
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6961233
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Commit-Queue: Charlie Lao <cclao@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
17c0d100
|
2025-09-16T13:59:36
|
|
Vulkan: Remove VertexArrayVk::updateActiveAttribInfo
This function get called from DIRTY_BIT_VERTEX_ARRAY_BINDING context
dirty bit processing. It is doing exact same work as
ContextVk::onVertexArrayChange(), which was already been optimized in
earlier CL. In this CL VertexArrayVk::updateActiveAttribInfo() is
deleted and onVertexArrayChange() is being used, which does minimum
things when supportsVertexInputDynamicState is enabled.
Bug: b/439073246
Change-Id: I6b388a8f89a63e654d290c6f8d2212052b8c0d1f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6945076
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Commit-Queue: Charlie Lao <cclao@google.com>
|
|
cba665f3
|
2025-09-11T17:59:41
|
|
Vulkan: Add fast path for supportsVertexInputDynamicState
In earlier CLs, we have stored stride/offset/format/divisor in Vulkan
structs directly in VertexArray, this CL try to send these structs to
vulkan driver directly without making another copy. divisor code has
been modified to update inputRate as well as divisor in VertexArrayVk.
WHen program and VertexArray's attribute types matches we use
VertexArray's mVertexInputBindingDesc and mVertexInputAttribDesc without
any data copy. If attribType mismatch then we make a copy and patch up
the stride/format.
Bug: b/439073246
Change-Id: I905b1e6d0609ffc4eb63b47e11a84f8617e06c29
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6898416
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Charlie Lao <cclao@google.com>
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
|
|
f28c8029
|
2025-09-17T16:02:40
|
|
Re-enable the feature that transforms float uniforms to 16 bits
Re-enable the feature after suppressing the WebGL conformance tests:
https://chromium-review.googlesource.com/c/chromium/src/+/6937051.
Temporary disable this feature on PowerVR while the bugs are
under investigations.
Bug: angleproject:405795981
Bug: angleproject:443302350
Bug: angleproject:443302625
Change-Id: I8263bd6fcf120b7bed8211f0439962be40afd992
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6962958
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Commit-Queue: Yuxin Hu <yuxinhu@google.com>
|
|
1b5fc24c
|
2025-09-17T16:36:33
|
|
Metal: Avoid deprecated fastMathEnabled on newer MacOS.
Use the mathMode and mathFloatingPointFunctions properties instead. The
new enum properties are set to the equivalent bool value from before.
Bug: chromium:383994655
Change-Id: Ia28f5b8358fe0721183dd6041432856d25e16475
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6962694
Reviewed-by: Avi Drissman <avi@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
7217890d
|
2025-06-17T11:51:08
|
|
CL/VK: Add SerializedExecution feature knob
Feature allows for each enqueue-able CL command
to submit and wait for fence (debugging aid).
Bug: angleproject:444491489
Change-Id: I16b7e74f2a321680a81ab3c8a18dd9534a64ce1a
Signed-off-by: Austin Annestrand <a.annestrand@samsung.com>
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6941617
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
9e8f3c1f
|
2025-06-06T15:01:59
|
|
CL/VK: Cleanup buffer and image map handling
- Create/move memory map routine(s) to CLBufferVK/CLImageVk.
- Update image staging buffer routines.
- Remove unused CLMemoryVk routines.
Bug: angleproject:444481344
Change-Id: Ibd8361ce8eec67a1891effe0fee344ef977d25dd
Signed-off-by: Austin Annestrand <a.annestrand@samsung.com>
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6941607
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
44db20f2
|
2025-09-17T15:57:09
|
|
Revert "Add a "noncoherent" layout qualifier to PLS"
This reverts commit ef9c5ce43110f4f8ba56124bdee927944ce3ddd1.
Reason for revert: Causes issues on Apple silicon crbug.com/445727125
Original change's description:
> Add a "noncoherent" layout qualifier to PLS
>
> Raster ordering can be expensive. If an app knows the geometry in a draw
> does not overlap, it can mark the PLS planes as noncoherent and opt for
> using barriers instead.
>
> Bug: angleproject:40096838
> Change-Id: I2d686c2e64f51940face186637a9fcadcc251bef
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6923300
> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
> Reviewed-by: Kenneth Russell <kbr@chromium.org>
> Commit-Queue: Chris Dalton <chris@rive.app>
Bug: angleproject:40096838
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Change-Id: Ibc24bed27cec406b6e4ffa9aaa8fe3a2110b58ba
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6962955
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Commit-Queue: Brian Sheedy <bsheedy@chromium.org>
|
|
7201e17d
|
2025-09-16T11:04:05
|
|
Vulkan: Move divisor>MaxVertexAttribDivisor to VA::syncState
Another preparation for use mVertexInputBindingDesc directly. Instead of
checking divisor > renderer->getMaxVertexAttribDivisor() in ContextVk
code, this CL take care of them in VertexArrayVk::syncState, so that all
other code do not need to take care of it.
Bug: b/439073246
Change-Id: Id938c168a1490e072e6f4bb08b85b60b55968ddf
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6955256
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Charlie Lao <cclao@google.com>
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
|
|
b3e715de
|
2025-07-15T13:43:31
|
|
cl/vk: Fix user-event handling
- add missing internal retain for user-event setting
- add missing predicate for condition variable wait
- fix double-alloc on user-event backend creation
- mImpl is created during "initBackend", not ctor
Bug: angleproject:444482493
Change-Id: I48fa8bca43a06d5ff8b2bceb884a924840ec5682
Signed-off-by: Austin Annestrand <a.annestrand@samsung.com>
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6941605
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
e542cb6c
|
2025-09-15T16:35:34
|
|
Vulkan: Split handleDirtyGraphicsVertexBuffers into two funcs
ContextVk::handleDirtyGraphicsVertexBuffers() has two code paths that
are quite different, depends on if supportsVertexInputDynamicState is
enabled or not. This CL splits this function into two so that 1) code is
much easier to read that what is done in each case and 2) get rid of if
check at draw time.
Bug: b/439073246
Change-Id: Iaf9f84fb20d82e784f9dfe8ece321cff94b7b58d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6956208
Commit-Queue: Charlie Lao <cclao@google.com>
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Auto-Submit: Charlie Lao <cclao@google.com>
|
|
0cc9b7be
|
2025-09-03T11:33:37
|
|
Support more YUV formats in CopyTextureCHROMIUM
Add support for formats in GL_ANGLE_yuv_internal_format as source
textures to glCopyTextureCHROMIUM. These formats are common
AHardwareBuffer formats and Chrome uses them as copy texture sources
when decoding video.
Bug: chromium:405308165
Change-Id: Ic817cce83b676ee9a517bee4fac6ef94a174961f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6908295
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
938c80d5
|
2025-09-17T11:57:39
|
|
Fix missing include for <ratio> used for std::nano.
Bug: b/412761856
Change-Id: I7535e7176e4372df6948f903504594e448153d48
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6961860
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Auto-Submit: Loko Kung <lokokung@google.com>
Commit-Queue: Loko Kung <lokokung@google.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
130bdaa9
|
2025-09-10T12:51:37
|
|
Vulkan: Store VkFormat in VkVertexInputBindingDescription2EXT
In preparation for next CL that uses VkVertexInputBindingDescription2EXT
directly, this CL also stores the VkFormat in
VkVertexInputBindingDescription2EXT directly. mDefaultAttribFormatIDs is
added to store the angle::FormatID for the default attribute (used when
attrib is disabled in VertexArray)
Bug: b/439073246
Change-Id: Ia36758b258be23676b9b12c0c7cec7adefe1036a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6935270
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Commit-Queue: Charlie Lao <cclao@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
1252d9aa
|
2025-05-30T14:16:23
|
|
CL: Create frontend event and pass to enqueue APIs
Since frontend cl_event object does not depend on enqueue
API routines, we can construct it early and then pass to
mImpl enqueue API calls (for any backend that needs it).
Also update backend routines to init their backend
event implementations using frontend event object.
Bug: angleproject:444482493
Change-Id: I459dbf34f10cb6b30245479c9966f876d6e905d7
Signed-off-by: Austin Annestrand <a.annestrand@samsung.com>
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6941604
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
5298dccc
|
2025-09-13T21:04:47
|
|
Vulkan: Fix depth/stencil blit src layer
The depth/stencil views used in blit viewed the exact layer, so they are
always 2D and no layer parameter is needed.
Tests upcoming in
https://chromium-review.googlesource.com/c/angle/angle/+/6780168
Bug: angleproject:433816259
Change-Id: I7fa105d2734c47c86d4d0e82e8f68dc1a23e4612
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6944631
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
|
|
f8c8264a
|
2025-09-17T10:01:22
|
|
Support RGBX format with GL_RGBA when using glTexSubImage2D
Add an additional combination support with GL_RGBA in glTexSubImage2D
for RGBX format.
Add an end2end test.
Bug: angleproject:444335354
Change-Id: I96fc9d3543fc58c9f666bf149f78cf9049758a32
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6938945
Reviewed-by: Charlie Lao <cclao@google.com>
Auto-Submit: Aurora Zhang <Aurora.Zhang@arm.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
c8af6941
|
2025-09-16T14:51:55
|
|
Vulkan: Enable FragmentShadingRateEXT
CTS fix patch was merged, enable per draw and per primitive VRS.
Bug: angleproject:397255625
Change-Id: I681a52d9d28572153ff868cfbfc71657f26e3b21
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6953541
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Auto-Submit: Panfeng Hou <panfeng.hou@arm.com>
|
|
2f564f1c
|
2025-09-16T16:46:36
|
|
mac: handle Metal toolchain being unbundled from Xcode 26
The Metal toolchain was formerly part of Xcode, but in Xcode 26, it has
been unbundled and is now a separate install. Attempting to use the
Metal toolchain without installing it results in a build error, such as:
error: error: cannot execute tool 'metal' due to missing Metal
Toolchain; use: xcodebuild -downloadComponent MetalToolchain
By running the suggested command, the Metal toolchain can be installed,
but the existing angle build does not know how to find it correctly.
For system Xcode installations, tools from the Metal toolchain (`metal`
and `metallib`) can be run via `xcrun`. This construct should work
equally well for older Xcode versions, for situations where it’s still
in use.
For the hermetic toolchain, we’ll continue splicing the Metal toolchain
into the location it had previously been avialable (see
https://chromium-review.googlesource.com/c/6950738), although this is
subject to change in the future.
Bug: chromium:423933062, chromium:445400016
Change-Id: I139eca51938f7cecfec9b90fd488947160ef4ec9
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6955000
Auto-Submit: Mark Mentovai <mark@chromium.org>
Commit-Queue: Mark Mentovai <mark@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
ef9c5ce4
|
2025-09-07T17:50:37
|
|
Add a "noncoherent" layout qualifier to PLS
Raster ordering can be expensive. If an app knows the geometry in a draw
does not overlap, it can mark the PLS planes as noncoherent and opt for
using barriers instead.
Bug: angleproject:40096838
Change-Id: I2d686c2e64f51940face186637a9fcadcc251bef
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6923300
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Chris Dalton <chris@rive.app>
|
|
cf04616b
|
2025-09-11T12:16:54
|
|
Trace/Replay: Make SetupReplayContext(main) last in setup
The SetupReplayContext function for the main context was always
executed first in the main setup replay function -- move it to last
to minimize issues where Frame1 is expecting specific shader state
from the main context.
Test: angle_trace_tests --gtest_filter=*harry_potter_magic_awakened
Bug: b/445208963
Change-Id: Ia48760e704465150617ffd33d419195723a51285
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6950246
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
|
|
8e7fa804
|
2025-09-15T14:06:38
|
|
Check shaderFloat16 feature support for enabling Float16 in Spirv
According to VK_KHR_shader_float16_int8 device extension spec:
"It introduces two new optional features shaderFloat16 and shaderInt8
which directly map to the Float16 and the Int8 SPIR-V capabilities."
We should check if the shaderFloat16 is supported before we generate
SPIRV that declares SPIR-V Capability Float16
Bug: angleproject:405795981
Change-Id: Ied7edfbed81ed5b862907c9bb1e772cb43acdb8b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6919673
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Xiang Wang <xwxw@google.com>
|
|
f0370a41
|
2025-09-09T19:44:57
|
|
Vulkan: Use the GENERAL layout if VK_KHR_unified_image_layouts
This lets ANGLE simplify synchronization by generally being able to use
memory barriers instead of listing image barriers separately. Although
the more specific access masks from VK_KHR_synchronization2 is possibly
necessary for some hardware to work optimally
(VK_ACCESS_2_SHADER_SAMPLED_READ_BIT in particular).
It also lets ANGLE optimize a very specific scenario. Take an image
used in the following scenario:
1. Copy to image in a transfer operation
2. Sample from image in the fragment shader of render pass 1
3. Sample from image in the vertex shader of shader pass 2
When GENERAL is not used, there's a layout transition between steps 1
and 2, changing the layout from TRANSFER_DST to
SHADER_READ_ONLY_OPTIMAL (with dst stage == fragment shader). Later, at
step 3, we need to make sure the vertex shader at least waits for this
layout transition to finish... a dependency which is not expressible in
Vulkan:
* There cannot be a dependency to step 1, because the layout transition
is not necessarily done
* There is no stage mask that signifies the end of a layout transition.
Without GENERAL, ANGLE has no choice but to issue a fragment->vertex
dependency before step 3, serializing render pass 2's vertex pass with
render pass 1's fragment pass on tilers.
When using the GENERAL layout instead, step 3 can issue a
transfer->vertex memory barrier, including using a VkEvent,
parallelizing the two render passes.
The above optimization is possible after this change, but not yet
implemented.
Bug: angleproject:422982681
Change-Id: Ieaae6f92b8b7d1e9c80c810a759c64b1e81d2dc1
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6936485
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
|
|
98915e44
|
2025-09-12T14:15:05
|
|
Vulkan: Fix blit src missing mip
Bug: angleproject:433816259
Bug: angleproject:40644750
Change-Id: I50261279224dea8e37beff388207b927399d099a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6944327
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Charlie Lao <cclao@google.com>
|
|
7a630c62
|
2025-09-15T16:29:55
|
|
FrameCapture: Disable GL_EXT_texture_norm16 during capture
Test: Lineage2M
Bug: b/445241477
Change-Id: Ib4cfd87f0b79646965ea3e24db5b725062cfa725
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6951980
Auto-Submit: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Mark Łobodziński <mark@lunarg.com>
Commit-Queue: Mark Łobodziński <mark@lunarg.com>
|
|
b496b7a5
|
2025-09-14T22:56:16
|
|
Vulkan: Bug fix to tracking of last non-shader-read-only access
Observed when an image is sampled in one shader stage and then another,
the tracking of which non-shader stage the image was last accessed in
was accidentally showing the first shader stage the image was sampled
in.
Bug: angleproject:388307202
Change-Id: Ic809994b67c00226cad44d9dbedec923639ca5b5
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6947445
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
|
|
46444b3d
|
2025-09-09T16:13:58
|
|
Vulkan: Use VkVertexInputBindingDescription2EXT to store stride
This is preparation for next CL. Since most driver supports
VK_EXT_vertex_input_dynamic_state, which uses
VkVertexInputBindingDescription2EXT and
VkVertexInputAttributeDescription2EXT to send stride/divisor/offset to
the vulkan driver, why not store these directly in these structs instead
of store gl::AttribArray<> and copy then into
VkVertexInputBindingDescription2EXT/VkVertexInputBindingDescription2EXT
later. This CL only replaced mCurrentArrayBufferRelativeOffsets,
mCurrentArrayBufferStrides, mCurrentArrayBufferDivisors with
mVertexInputBindingDesc and mVertexInputAttribDesc. It still does the
data copy, which means this CL is mostly a mechanical change. But it
makes the next CL diff smaller.
Bug: b/439073246
Change-Id: Ie3c2034df07ea5e973b07a15f715fdb7c73ec04d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6933260
Commit-Queue: Charlie Lao <cclao@google.com>
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|