|
4c964bc7
|
2025-05-15T00:00:00
|
|
Roll third_party/OpenGL-Registry/src/ 5bae8738b..200cea403 (74 commits)
https://chromium.googlesource.com/external/github.com/KhronosGroup/OpenGL-Registry/+log/5bae8738b23d..200cea4030cb
Additional changes:
* Removed obsolete workarounds for mismatching
signatures between CreateShaderProgramvEXT
and CreateShaderProgramv.
* Aligned GL backend bindings for GL_OVR_multiview
entry points with the specs.
* Updated include/GLES2/gl2ext.h.
Bug: angleproject:409484297
Change-Id: Ifbb63dcc4bad312b22a368455a121e088b346fab
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6596941
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
392dc591
|
2025-05-15T00:00:00
|
|
Remove GL_CHROMIUM_sync_query
Fixed: angleproject:420627279
Change-Id: I26dac7c55a7cf6b04121658144e1387be65d2569
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6593552
Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
88f1a668
|
2025-05-20T10:35:36
|
|
Query sample count by getting image format props
ANGLE should query the image format properties to set
TextureCaps.sampleCounts based on internalformats.
Bug: angleproject:418815176
Change-Id: I7718121008acd9bb9bbb9964af5842646d7a689a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6564528
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
Auto-Submit: Robic Sun <Robic.Sun@arm.com>
Reviewed-by: Charlie Lao <cclao@google.com>
|
|
90668ecf
|
2025-05-25T10:51:52
|
|
Vulkan: Reset uniform buffer dirty bit on program change
When a program changes all of its non-texture shader resources are
invalidated, there is no need to re-invalidate uniform buffers.
Bug: angleproject:386749841
Change-Id: I7e941784c40046cef3a2ce297e6941a963b3a8dc
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6583476
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: mohan maiya <m.maiya@samsung.com>
|
|
eafcbbf9
|
2025-05-27T11:24:17
|
|
Vulkan: Reformat VVL error message
Remove the VVL skip messages that no longer apply.
Set the messageContents1 and messageContents2 to nullptr for ease of
clean up later.
Bug: angleproject:399191283
Change-Id: I6d4477a6c401e6b7d2915b1fc574413be31fdc9b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6594251
Commit-Queue: Yuxin Hu <yuxinhu@google.com>
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Auto-Submit: Yuxin Hu <yuxinhu@google.com>
|
|
6542fea9
|
2025-05-07T17:28:45
|
|
Vulkan: Fix SpirV Error in Tessellation Control Shader
When feature varyingsRequireMatchingPrecisionInSpirv is enabled,
in the generated SpirV, if the shader output varying precision
needs to be adjusted, we create a new shader varying to replace the
original shader output varying, and save the original shader output
varying to the replacement shader output varying at the end of the
function. However, this does not work for tessellation control shader,
because the SpirV generated will perform following equivalent peudo
code:
layout (vertices=3) out;
in mediump float tc_in[];
out mediump float tc_out[];
highp float original_out[];
void main()
{
original_out[gl_InvocationID] = tc_in[gl_InvocationID];
// some other code in between
tc_out = original_out;
}
The last line will attempt to write to all indice of tc_out. However,
according to the spec, "each tessellation control shader invocation may
write only to those outputs corresponding to its output patch vertex.
Tessellation control shader must use the special variable
gl_InvocationID as the vertex number index when writing to per-vertex
output variables."
This change fixes the problem by keeping the precision of tessellation
control shader output as it is, and adjust the precision of
tessellation evaluation shader input instead.
Bug: b/42266751
Change-Id: I398545e2cbbf703c716d6738f1ba278baac4171f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6521225
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Yuxin Hu <yuxinhu@google.com>
|
|
27a1b2c9
|
2025-03-13T09:10:54
|
|
Metal: Fix crash with 3d tex, alpha, depth
Fix a crash when generating mipmaps for a 3d texture that has
mipmaps with w,h == 1, i.e. depth > max(2*w, 2*h).
Bug: angleproject:419755713
Change-Id: I7bf7f1f71c03b2bf6f8a30df30dc77ad06d433fe
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6580167
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Kimmo Kinnunen <kkinnunen@apple.com>
Auto-Submit: Kimmo Kinnunen <kkinnunen@apple.com>
|
|
dac0ef51
|
2025-05-27T18:36:56
|
|
WebGPU: Add a feature to avoid wgpuInstanceWaitAny
Synchronous waiting is not available in Chrome's renderer process yet.
Add a temporary feature to avoid some WaitAny calls and just log errors
instead.
Bug: angleproject:413078308
Change-Id: I67e54dfcfc093fd250da8cc616c05d44b78c8d64
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6593531
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
2a18fdbf
|
2025-05-21T16:14:51
|
|
Fix sync issue between XFB output and UBO 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 UBO, it is necessary to end the render pass
between the two draws and add a barrier.
// xfb write
glBindBufferBase(GL_TRANSFORM_FEEDBACK_BUFFER, 0, xfb);
glBeginTransformFeedback();
glDrawArrays();
glEndTransformFeedback();
// Draw with same buffer as UBO
glBindBuffer(GL_UNIFORM_BUFFER, xfb);
glDraw();
Bug: angleproject:418568423
Change-Id: Ia294d174111c6104b55762590ec26056ee759b53
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6572198
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
7470cae4
|
2025-05-15T00:00:00
|
|
GL: Do not emulate EXT_base_instance
If a driver does not support the corresponding
commands, do not expose the extension at all,
regardless of the enabled features.
Bug: angleproject:355645824
Change-Id: Ideaae32e401c169690ca3aca6e437443a4b038f2
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6580170
Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
f0c46b2a
|
2025-05-25T10:44:23
|
|
WebGPU: Do not set autoresizingMask on the iOS Metal Layer
autoresizingMask is not a member on iOS builds. This mirrors the window
surface in the Metal backend.
Bug: angleproject:342213844
Change-Id: I8b5cfbb2b7f7af4f3284ddd7055e68e762c77883
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6584993
Reviewed-by: Colin Blundell <blundell@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
4b375fe5
|
2025-05-23T18:44:54
|
|
WebGPU: Fix NoOpErrorScope constructor.
We would always build with asserts enabled on our bots and missed that
this constructor did not match the ErrorScope constructor.
Bug: angleproject:342213844
Change-Id: Ieb73e6e1b0a0359b0ad336f14b7b9580c2ecc00b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6580169
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
61e383dc
|
2025-05-23T18:41:57
|
|
WebGPU: Fix build on iOS and ChromeOS.
Make sure we return a NativeWindowSystem in all branches.
Build the Metal window surface on iOS.
Bug: chromium:419793882
Change-Id: Ic829c83b71c18df9907ef729320377d82958f6ad
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6580168
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
275745ff
|
2025-05-23T12:59:03
|
|
Vulkan: Fix warning about shared present mode support
An incorrect warning was issued about shared present mode being
requested without support for it, even if shared present mode was _not_
being requested.
Bug: b/412446258
Change-Id: I33f4ea9bcbd09695375010da93a68b375cfc8c8e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6578819
Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
525757d6
|
2025-05-22T16:32:32
|
|
Vulkan: Reformat VVL Error Message
Change the error message to use the extraProperties field.
Set the messageContents1 and messageContents2 to nullptr for ease
of clean up later.
Bug: angleproject:394598470
Change-Id: I0b7aec0b7e9a6e5206c89caae712e76db3338c4e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6581371
Auto-Submit: Yuxin Hu <yuxinhu@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
150f1242
|
2025-03-11T18:34:37
|
|
Metal: Provoking vertex conv. reads out of buffer
The provoking vertex helper would encode the addresses of index count
and primitive count variables, not their values. This would cause
the provoking vertex conversion shader to read overly many indices.
Not testable easily from the API, as the excessive read is hard to
test. Would cause context loss on the existing tests when run with
validation.
Bug: angleproject:419755715
Change-Id: Id81ecc66513c0eac1e95d11937f12d9bebb5e11e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6578202
Auto-Submit: Kimmo Kinnunen <kkinnunen@apple.com>
Commit-Queue: Kimmo Kinnunen <kkinnunen@apple.com>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
c1e806de
|
2025-05-22T15:59:01
|
|
WebGPU: Allow providing an external WGPUDevice.
Update EGL_ANGLE_platform_angle_webgpu with a new parameter which allows
initializing DisplayWgpu with a pre-existing WGPUDevice. The adapter and
instance are queried from this device.
Bug: angleproject:42266898, angleproject:414827222
Change-Id: I3159ebe19750e75c5cf9aa395332f48385fdb4d9
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6578196
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
|
|
3cf7a604
|
2025-05-17T19:39:08
|
|
WebGPU: Add extensions for importing external textures
Add EGL_ANGLE_device_webgpu which exposes the adapter and device used
by ANGLE internally.
Add EGL_ANGLE_webgpu_texture_client_buffer which allows importing
external WGPUTexture handles if they share the same device as ANGLE
(queried from EGL_ANGLE_device_webgpu).
Bug: angleproject:418022112
Change-Id: I0683d36b84a0f8e0e9b68a5ec0d3aa8b7a95152c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6553063
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
3f012a43
|
2025-05-14T17:11:06
|
|
Vulkan: Move VertexArray::ElementBuffer away from observer
Right now, VertexArray's element buffer is always observing buffer's
change. In previous CLs, we have moved vertex array away from
subject/observer usage. This CL moves element buffer away from
subject/observer as well. Since the gl::Buffer tracks buffer's binding
to each context's current vertex array's binding point,
kElementArrayBufferIndex is added to VertexArrayBufferBindingMask bits
so that the element buffer is tracked exactly the same as other vertex
array buffer bindings. The VerextArray code has been modified to handle
this special bit, since element buffer has its own binding point
VertexArrayState::mElementArrayBuffer as opposed to
VertexArrayState::mVertexBindings. After this CL, VertexArray object
should be completely off subject/observer usages.
Bug: angleproject:400711938
Change-Id: I662ddfabc95034bdc7734939c944ab033f41801c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6552160
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Charlie Lao <cclao@google.com>
|
|
3c0b2787
|
2025-05-17T19:36:42
|
|
WebGPU: Implement EGLImages
Implement EGLImages for WebGPU. Cube maps, and non-zero mip sources
are not supported yet.
Bug: angleproject:418022112
Change-Id: I59955aee907167a1829f870b7d0730a6269d814c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6557130
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
937cf23c
|
2025-05-13T16:11:47
|
|
Vulkan: Remove VertexArrayBufferContentsObservers
When vertex array needs to convert buffer's data, right now it uses
Subject/Observer to subscribe notifications from buffers about the data
change. Since we always dirty all binding point when we bind
VertexArray, or app has to rebind buffer to vertex array if its on the
other context, this notification really is only needed for the current
context's vertex array. In prior CLs we already moved notification from
buffer to the current context's vertex array away from Subject/Observer
usage pattern. This CL did similar things to
VertexArrayBufferContentsObservers::mContentsObservers.
VertexArrayBufferContentsObservers has been deleted in this CL. Each
VertexArrayImpl now tracks the need of content observer with a bit mask
of each bindingIndex (which is tracked by
mContentsObserverBindingsMask). When a buffer's content changes,
gl::Buffer will retrieve this bit mask from backend and pass it to the
current gl::Context, which sends to current VertexArray object, which
then set proper DATA dirty bits on VertexArray based on the binding bit
mask. If back end think it does not need any data conversion, then the
bit mask is zero and nothing will be done. This further removes
dependence on subject observer, which enables us to avoid taking shared
context lock for glEnableVertexAttribArray and
glDisableVertexAttribArray.
Bug: angleproject:400711938
Change-Id: Ieb0c09c042a560dd121242b63ec24478482399b3
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6549157
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Charlie Lao <cclao@google.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
dc43c3ba
|
2025-05-17T19:28:20
|
|
WebGPU: Implement Renderbuffers
Implement the RenderbufferWgpu class. Add the concept of a non-owned
webgpu::ImageHelper for supporting EGLImage in the future.
Fix some missing texture formats that now get tested with dEQP.
Bug: angleproject:418022112
Change-Id: Ie1239ec581e62044e7c8723fc33cb7565d50575c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6557129
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
f537c6d9
|
2025-04-28T17:30:13
|
|
Allow passing a DawnProcTable to DisplayWgpu.
Bug: angleproject:42266898, angleproject:414827222
Change-Id: Ibf381461881244c9a874f2d24d3248995ea0760c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6496389
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Matthew Denton <mpdenton@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Liza Burakova <liza@chromium.org>
|
|
70b90f22
|
2025-05-09T16:51:31
|
|
WebGPU: Use the C API only from the proc table
Define WGPU_SKIP_DECLARATIONS so that errors are generated when using
the global c or cpp functions.
The default proc table getter requires the cpp API is visible. Hide this
in a new wgpu_proc_utils so the rest of the WebGPU backend cannot see
those APIs.
Bug: angleproject:342213844
Change-Id: Ia1e9bfd25b0bb538cebeaa0efe7b9d2eeabc990d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6534317
Reviewed-by: Liza Burakova <liza@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Matthew Denton <mpdenton@chromium.org>
|
|
3158d638
|
2025-05-06T17:08:56
|
|
WebGPU: Store the WebGPU proc table in wrappers
Instead of relying on the global WebGPU functions, pass the proc table
to the object wrappers.
Bug: angleproject:342213844
Change-Id: I79a5e819ffac5b366fed0a159a6cef116b5e82b3
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6514676
Reviewed-by: Liza Burakova <liza@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Matthew Denton <mpdenton@chromium.org>
|
|
b4d39a07
|
2025-05-19T11:07:08
|
|
Reformat VVL Error Message
Tests failed in this manual roll
https://chromium-review.googlesource.com/c/angle/angle/+/5689521
no longer runs into the SYNC-HAZARD-WRITE-AFTER-WRITE VVL error.
Remove the VVL error from the skipped VVL error list.
Bug: angleproject:352094384
Change-Id: I8b0a4baebd7276fc6d42e0357a3b6f49adb0b4f4
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6564666
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Auto-Submit: Yuxin Hu <yuxinhu@google.com>
Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
|
|
56becf05
|
2025-05-16T16:58:34
|
|
WGPU: texSubImage2D() should mark textures as dirty
TextureWgpu now observes its ImageHelper's edits to staged
subresources and notifies its observers (Texture) that it has
changed, ensuring TextureWgpu::syncState() is called before
draw if glTextSubImage2D() was called earlier.
Also ends the current render pass when flushing subresource
updates, otherwise if the texture is being used by the current
webgpu::CommandBuffer (staged render pass commands), the texture
may be updated before the staged commands are actually submitted
to the GPU.
Bug: angleproject:389145696
Change-Id: I07db566fca970e877a0d3faa3ceb02f8425c799a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6502676
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Matthew Denton <mpdenton@chromium.org>
|
|
e6231b0f
|
2025-05-16T10:29:46
|
|
Reformat VVL Error Message
catalyst_black trace no longer runs into the
SYNC-HAZARD-WRITE-AFTER-READ VVL error mentioned in
http://anglebug.com/42266390.
Remove the VVL error from the skipped error list.
Bug: angleproject:42266390
Change-Id: I7e3055e61632e1de42dc24233724f73beefef653
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6557942
Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Auto-Submit: Yuxin Hu <yuxinhu@google.com>
|
|
4a5e20f2
|
2025-05-15T11:20:31
|
|
WGPU: Round uniform buffers to the alignment of a uniform struct
The default uniforms are packed into a struct, and structs in WGPU's
uniform address space are always aligned to 16. I.e. RequiredAlignOf
(struct S, uniform) = roundUp(16, AlignOf(S)) and AlignOf(S) is at
most 16.
The uniform buffer should be sized to include all bytes of the struct
including the padding bytes at the end.
Fixes bugs like "The shader uses more bytes of the buffer (224) than
the layout's minBindingSize (212)"
Bug: angleproject:376553328
Change-Id: I7e52e81a6a6f45470d14e891888627ac6d0d9c02
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6549155
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Liza Burakova <liza@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
96c9f065
|
2025-05-15T19:22:29
|
|
WGPU: Flip y for the default framebuffer
Bug: angleproject:389145696
Change-Id: I0d527ad3dc24dbca7e9d914b03edacdc257a568f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6477137
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Matthew Denton <mpdenton@chromium.org>
|
|
b74a4714
|
2025-05-15T10:24:41
|
|
Reformat VVL Error Message
diablo_immortal trace on swiftshader no longer runs into the
SYNC-HAZARD-WRITE-AFTER-READ error mentioned in b/42266309.
Remove the VVL error from the VVL error skip lists.
Bug: angleproject:42266309
Change-Id: I53a5377ea26541a37dc251717d3f2d08f553a3a6
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6551848
Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
Auto-Submit: Yuxin Hu <yuxinhu@google.com>
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
|
|
9b16a3e9
|
2025-05-05T16:43:19
|
|
WebGPU: Remove last references to cpp API
Bug: angleproject:414831373
Change-Id: I25c03de40c579bf984d9a905ecf655c82d239811
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6512149
Reviewed-by: Matthew Denton <mpdenton@chromium.org>
Reviewed-by: Liza Burakova <liza@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
147f4810
|
2025-05-05T16:33:19
|
|
WebGPU: Use WebGPU C API for Display and error utils
Bug: angleproject:414831373
Change-Id: I56f90e453a746399c65956cc73eb4fcb020bcb5e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6512148
Reviewed-by: Matthew Denton <mpdenton@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Liza Burakova <liza@chromium.org>
|
|
1faf6ef2
|
2025-05-05T15:18:58
|
|
WebGPU: Use WebGPU C API for Programs and Buffers
Bug: angleproject:414831373
Change-Id: I773f26483f53957bdfb8321b2a557df7febb376c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6512147
Reviewed-by: Matthew Denton <mpdenton@chromium.org>
Reviewed-by: Liza Burakova <liza@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
cf0565f2
|
2025-05-14T17:59:41
|
|
WebGPU: Pack render pass descriptors
The render pass descriptors stored in FramebufferWgpu contained
references to textures that were fragile and depended on the
RenderTargetCache keeping the texture views alive.
Refactor the desc so that it does ref counting like the cpp interface
and clean up some FramebufferWgpu logic around copying descs.
Bug: angleproject:414831373
Change-Id: Ibea96e013474cc43aa30909b596b8898ebccef98
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6546256
Reviewed-by: Liza Burakova <liza@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Matthew Denton <mpdenton@chromium.org>
|
|
6ba47bed
|
2025-05-13T12:44:06
|
|
Vulkan: Use GS input prim type for warmup pipeline
For graphics pipeline creation, the primitive topology should be set
in the input assembly state create info (unless for dynamic state).
This can come from the primitive mode in ProgramExecutableVk
(prepareForWarmUpPipelineCache()). Currently, the patch mode is used
if there is a tessellation shader, and triangle strip otherwise.
However, if there is a geometry shader without tessellation, this
can lead to a VVL error on certain platforms if the primitive mode for
the pipeline does not match the input primitive type for the geometry
shader.
* Updated the primitive mode in the above function for the case of
geometry shader without tessellation shaders, to be set to the input
primitive type of the GS.
* This will be used later for graphics pipeline initialization
for the input assembly state info (in case of vertex input).
* (GraphicsPipelineDesc::initializePipeline())
* Removed the following VVL suppression:
VUID-VkGraphicsPipelineCreateInfo-pStages-00738
Bug: angleproject:303219657
Change-Id: I8d804fd87438033071261a5002a4155e6d62d27c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6541872
Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
69841d3c
|
2025-04-30T23:55:16
|
|
WebGPU: Use WebGPU C API for Textures and Framebuffers
Bug: angleproject:414831373
Change-Id: I6b547a726b22e8eb5d407e2d6340b1d18bf39033
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6503024
Reviewed-by: Liza Burakova <liza@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
d82036f5
|
2025-05-15T09:43:03
|
|
WebGPU: Add missing destructor for object wrappers.
Bug: angleproject:414831373
Change-Id: I65aa17b5cbac2564140491744461bc94e9ae9f2d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6551496
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Liza Burakova <liza@chromium.org>
|
|
ad05f93b
|
2025-05-08T00:00:00
|
|
Vulkan: Fix debug marker handling
Used passed length in InsertEventMarker and
PushGroupMarker commands because markers do
not have to be null-terminated.
Bug: angleproject:408709155
Change-Id: I6221223dabc1b01dbc175bfb7f5aeb41b9e67c6f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6552401
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
|
|
a06e4d49
|
2025-05-08T00:00:00
|
|
Metal: Implement InsertEventMarker
* Added a missing command buffer call.
* Renamed related symbols to match Metal API.
* Removed ConvertMarkerToString helper because
marker length is now handled in the frontend.
Bug: angleproject:417857731
Change-Id: Ifa9edaafaf16af9913420554e5847a5a25b8d2f1
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6549282
Reviewed-by: Quyen Le <lehoangquyen@chromium.org>
Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
|
|
cc02a537
|
2025-05-05T22:12:42
|
|
Vulkan: move the recycled fence reset from fetch to destroy.
move the fence reset from main thread to gc thread to avoid
blocking at gfxstream.
Bug: b/400480303
Change-Id: I7940fcb4a1edad5e388f1afdde97a3261a5cc4d3
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6519236
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Commit-Queue: Hailin Zhang <hailinzhang@google.com>
|
|
74bf9527
|
2025-05-14T13:52:24
|
|
Reformat VVL Error Message
diablo_immortal trace on swiftshader no longer runs into the
SYNC-HAZARD-WRITE-AFTER-WRITE VVL error mentioned in b/42266309.
Remove the VVL error from the VVL error skip lists.
The trace does run into a different SYNC-HAZARD-WRITE-AFTER-WRITE
error and another SYNC-HAZARD-READ-AFTER-WRITE error, which are already
covered by two existing entries in the VVL error skip lists, and this
change updates the comments accordingly.
Bug: angleproject:42266309
Change-Id: I3466d8d8320750c7edef52c6629fb2dd377da284
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6548199
Commit-Queue: Yuxin Hu <yuxinhu@google.com>
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
|
|
ad18dc93
|
2025-04-02T16:23:50
|
|
D3D11: Remove the message from Buffer11 to gl::Buffer
This CL removes the D3D back end's usage of Subject/Observer from
Buffer11 to gl::Buffer. BufferFeedback argument has been added to
various functions and directly applied to gl::Buffer object (which will
propagate to VertexArray and texture/XFB if needed).
gl::Buffer::mImplObserver is removed in this CL, and no longer a
Observer.
Bug: angleproject:400711938
Change-Id: Idf4d423904d057ab3a1e52acf8e2496df606cb89
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6514288
Commit-Queue: Charlie Lao <cclao@google.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
f5f6704c
|
2025-03-27T13:58:14
|
|
Vulkan: Remove mArrayBufferObserverBindings
Right now VertexArray observes gl::Buffer change. Buffer change will end
up with many virtual function calls on VertexArray. GL spec says that
when buffer changes, only the current context's vertex array have to
pick up the changes without any GL API call. All other context's vertex
array must issue bind calls to pick up the buffer's state change. This
CL removes VertexArray::mArrayBufferObserverBindings as gl::Buffer's
observer. The Buffer's change is directly applied to current context's
vertexArray (Note that gl::VertexArray still have mContentsObservers
which is not touched in this CL. Once the content observer also removed,
there will be no observer calls into gl::VertexArray which allows us to
do further optimizations on vertex arrays.)
In order to further reduce the overhead, we also tracks vertex array's
binding index in the buffer. When a buffer is bound to current vertex
array, the bit is set at that index and bit is removed when buffer is
unbound. When vertex array becomes un-current, all bits are cleared.
Since a buffer could be bound to multiple context's current vertex
array, that bitmask is tracked for multiple contexts with the contextID.
Bug: angleproject:400711938
Change-Id: I9ad91573e101d7bf11a742a3d823bd8965f43395
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6419663
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Charlie Lao <cclao@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
64888cb8
|
2025-04-24T00:00:00
|
|
Align multiview extensions usage with the specs
As per the specs, the OVR_multiview2 extension requires
and implicitly enables the OVR_multiview extension.
Cleaned up the extension state checks
and added dependency tests.
No functional changes.
Fixed: angleproject:417173927
Change-Id: I67d2c19f4ed2f2450bf7fe2a92625cc9525ca020
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6535750
Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
3bbdee0f
|
2025-03-28T11:55:24
|
|
Vulkan: Remove Subject/Observer from BufferImpl
Right now the gl::Buffer back end send message to the front end and then
gl::Buffer propagate the message to the observers (vertex array,
textures, transform feedback). We are seeing many of these kind of
message passing (mainly to vertexArray), and each message is a virtual
function call. The message call also lacks of context information that
we can not do certain optimizations. This CL adopts the new API feedback
argument approach for buffer APIs from the back end to the front end.
The only difficulty I ran into is D3D backend where the message could be
delivered from draw calls. For now the subject/observer code path is
still kept in the gl::Buffer, but no back end will use it except D3D11.
That will be removed in the later CL when D3D11 switch to use feedback
mechanism.
BYPASS_LARGE_CHANGE_WARNING
Bug: angleproject:400711938
Change-Id: I5fb3b660fd4260b9ba691239ad777b575b31e2ab
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6408892
Commit-Queue: Charlie Lao <cclao@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
e2352b29
|
2025-05-12T10:55:39
|
|
Reformat VVL Error Message
TraceTest.life_is_strange no longer runs into below VVL error:
{"SYNC-HAZARD-READ-AFTER-WRITE",
"type: VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, "
"imageLayout: VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL",
"usage: SYNC_FRAGMENT_SHADER_SHADER_"},
Remove the VVL error from the skipped message list.
Bug: angleproject:42266180
Change-Id: Iddaea23b3afd8bb6238caa6aaadc49eb8469da51
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6534653
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Commit-Queue: Yuxin Hu <yuxinhu@google.com>
|
|
481000fd
|
2025-04-30T16:42:39
|
|
WebGPU: Move pipeline creation to the C API.
Bug: angleproject:414831373
Change-Id: I3c4f7d22bce569d9813a580fd1f3d839ff165976
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6503023
Reviewed-by: Matthew Denton <mpdenton@chromium.org>
Reviewed-by: Liza Burakova <liza@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
ce454fee
|
2025-04-30T15:24:34
|
|
Add RAII wrappers for WebGPU C API objects.
To ease the transition, add constructors from the cpp wrappers currently
in use. These will be deleted when we have fully moved to the C API.
Update the WebGPU CommandBuffer code to use the new wrappers and C API.
Bug: angleproject:414831373
Change-Id: I428349d84e1f79725eb836da5bb3d384ae296d75
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6501618
Reviewed-by: Matthew Denton <mpdenton@chromium.org>
Reviewed-by: Liza Burakova <liza@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
db33baf4
|
2025-05-09T14:13:08
|
|
Reformat VVL Error Message
life_is_strange no longer runs into the SYNC-HAZARD-WRITE-AFTER-READ
VVL error it used to, remove the VVL from the skipped VVL entries.
The trace does run into another VVL error on Linux AMD GPU, update the
comment.
Bug: angleproject:42266180
Change-Id: I6010ca1540e1d8774992173c853b904c0b3bd117
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6534138
Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
|
|
506f8a95
|
2025-05-08T17:03:30
|
|
Vulkan: Fix incorrect shaderWrite to shaderWrite detection
There is an optimization we added in
https://chromium-review.googlesource.com/c/angle/angle/+/5719258 that
avoids inserting WAW barrier in between two back to back shaderWrite to
the buffer, unless it is app introduced barrier via glMemoryBarrier call
(i.e, it is app's responsibility to issue such WAW barrier instead of
ANGLE). There is a bug in that logic that if there is a vertex read in
between two shaderWrite, we will incorrectly treat it like two
shaderWrites. That caused we skipped WAR before the second shaderWrite.
This CL fix the logic by also looking at read access on the buffer.
Bug: angleproject:350994515
Bug: angleproject:416573908
Change-Id: I5bbbeff4d7222a644d1c994bffda7fd9ea292c17
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6526949
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Charlie Lao <cclao@google.com>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
|
|
a3f6a9c8
|
2025-05-05T10:16:53
|
|
WebGPU: Don't call destroy on null textures
.Destroy requires a valid texture.
Bug: angleproject:414831373
Change-Id: I9d586f38a3f1b910b4c14552d3c9a6b43b4a5e22
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6512850
Reviewed-by: Matthew Denton <mpdenton@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
d221cf40
|
2025-04-24T00:00:00
|
|
Adjust EXT_base_instance emulation conditions
* EXT_base_instance may be emulated only on the
GL backend. Other backends either support it
directly or do not support at all.
* EXT_base_instance is never exposed to WebGL.
Bug: angleproject:355645824
Change-Id: I1edea83d83b1e6865eee8022c7110b05ea37d989
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6527730
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
|
|
60d6c94f
|
2025-04-24T00:00:00
|
|
Metal: Implement draw_elements_base_vertex extensions
Fixed: angleproject:40096829
Change-Id: I288a38fbfa6a39cd9d683302722ebfaf495ba8db
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6527729
Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
b729fb74
|
2025-05-08T11:35:46
|
|
Reformat VVL Error Message
Test Texture2DTest.UploadThenVSThenNewRPThenFS/ES2_Vulkan
no longer runs into the VVL error. Remove the VVL error from
the skipped VVL message list.
Bug: angleproject:42265925
Change-Id: I5d854b8b091847f136c8e57620f8dd8c72d59503
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6525049
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
Auto-Submit: Yuxin Hu <yuxinhu@google.com>
|
|
16b2bf5e
|
2025-05-06T16:23:24
|
|
Vulkan: Only expose ASTC HDR if 3D textures supported
Not all hardware supports ASTC HDR for 3D textures.
This CL adds a check for each ASTC HDR format, querying the driver
for 3D support, and tracking it as a feature. We use that feature
when deciding to expose GL_KHR_texture_compression_astc_hdr.
Test: dEQP-GLES31.functional.copy_image.compressed.viewclass_astc_8x8_rgba
Bug: b/407634958, b/416095435
Change-Id: Iaa6f26e247c7e6c7451f3d4eb8dd7175509bf45f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6515816
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
|
|
00845fd6
|
2025-05-06T14:13:18
|
|
WebGPU: Do not reuse windows with multiple surfaces
Multiple Dawn backends do not handle re-creating a surface for a native
window. Instead of working around this by caching in the display, rework
our test runner to recreate the OS window and surface instead of just
the surface.
Release all resources in DisplayWgpu::Terminate. Otherwise they wont be
deleted until the display is reinitialized or the test executable
terminates.
Bug: angleproject:342213844
Change-Id: Ic31264a5e646a54c988ef47ca664d8575fda94eb
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6515886
Reviewed-by: Liza Burakova <liza@chromium.org>
Reviewed-by: Matthew Denton <mpdenton@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
317f81db
|
2025-05-01T14:17:47
|
|
Fix EGL_RENDER_BUFFER query if EGL_SINGLE_BUFFER unsupported
eglCreateWindowSurface() can have the EGL attribute EGL_RENDER_BUFFER
specified:
EGL_RENDER_BUFFER specifies which buffer should be used by default for
client API rendering to the window, as described in section 2.2.2. If
its value is EGL_SINGLE_BUFFER, then client APIs should render
directly into the visible window. If its value is EGL_BACK_BUFFER,
then all client APIs should render into the back buffer. The default
value of EGL_RENDER_BUFFER is EGL_BACK_BUFFER.
Client APIs may not be able to respect the requested rendering buffer.
To determine the actual buffer that a context will render to by
default, call eglQueryContext with attribute EGL_RENDER_BUFFER (see
section 3.7.4).
To support EGL_SINGLE_BUFFER, Vulkan surfaces must support the
VkPresentModeKHR value VK_PRESENT_MODE_SHARED_DEMAND_REFRESH_KHR:
VK_PRESENT_MODE_SHARED_DEMAND_REFRESH_KHR specifies that the
presentation engine and application have concurrent access to a single
image, which is referred to as a shared presentable image. The
presentation engine is only required to update the current image after
a new presentation request is received. Therefore the application must
make a presentation request whenever an update is required. However,
the presentation engine may update the current image at any point,
meaning this mode may result in visible tearing.
However, this is only available on Vulkan devices that support the
extension VK_KHR_shared_presentable_image.
Add checking in Surface::initialize() to update Surface::mRenderBuffer
to EGL_BACK_BUFFER if the backend implementation does not support
EGL_SINGLE_BUFFER. This includes adding supportsSingleRenderBuffer() to
query the backend if it supports single render buffer mode, which
defaults to False. The Vulkan backend overrides this and the result is
based on support for VK_PRESENT_MODE_SHARED_DEMAND_REFRESH_KHR.
Bug: b/412446258
Test: EGLLockSurface3Test.WindowMsaaSurfaceReadTest/ES2_Vulkan_NoFixture
Test: EGLSingleBufferTest.VerifyMutableRenderBufferKHR/*
Change-Id: I4e6d56f01a895a5bd887580e6ffa34d574c87fad
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6506764
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
8ea69d84
|
2025-05-07T12:26:48
|
|
metal: Synchronize imported IOSurfaces with command buffer
We want to skip the various Metal waitUntilScheduled calls in Chromium
on single GPU systems and use only shared events for synchronization.
However, this doesn't work correctly today because ANGLE can do CPU
readbacks from the IOSurface without synchronizing with the command
buffer which contains the shared event wait. This is because ANGLE
doesn't know about the dependency between the IOSurface texture and the
shared event wait in the command buffer.
This CL makes BindTexImage mark the IOSurface texture as used so that we
wait for command buffer execution if we do a CPU readback. It reuses the
setWriteDependency mechanism on mtl::CommandBuffer.
Bug: chromium:40273077
Change-Id: I5d480f2c28abbd6d36cf1e1045461c84b3e4a1f0
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6514098
Reviewed-by: Quyen Le <lehoangquyen@chromium.org>
Auto-Submit: Sunny Sachanandani <sunnyps@chromium.org>
Commit-Queue: Sunny Sachanandani <sunnyps@chromium.org>
|
|
5c441a53
|
2025-05-06T13:00:32
|
|
Vulkan: Prefer MSRTSS for QCOM devices
The feature flag `preferMSRTSSFlagByDefault` was originally added
to avoid allocating extra memory if the images are created with the
MSRTSS flag by default. If it is disabled, the image will be recreated
with the said flag only if it bound to an MSRTT framebuffer.
* preferMSRTSSFlagByDefault is now enabled for QCOM driver versions
beyond 0777.0.
Bug: b/329911999
Change-Id: Iea72f864eac5ecfa97b5c99de5bd66ef09c54c0e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6516037
Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
fcfc9760
|
2025-05-06T11:26:40
|
|
Reformat VVL error message
The test
VulkanPerformanceCounterTest_ES31.TextureSampleByDrawDispatchDraw
no longer runs into the VVL error it used to have. Remove the VVL error
from the skipped VVL error list.
Bug: angleproject:42265504
Change-Id: I8eff929524b3e1bd015d96db2cc45b2c8f331170
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6514411
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Commit-Queue: Yuxin Hu <yuxinhu@google.com>
|
|
7447e8ac
|
2025-05-06T10:33:47
|
|
Vulkan: Driver workarounds on Qualcomm
Dynamic rendering is disabled on 512.800 due to crashes on some devices.
Imageless framebuffers are disabled on 512.805, suspecting cause of
crash on some other devices.
Bug: chromium:415738891
Bug: chromium:415968761
Change-Id: I71f533c7954b628ce897ed1dac478aed119658e4
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6512663
Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
|
|
c6e0448b
|
2025-05-05T10:49:32
|
|
Reformat VVL error message
The SYNC-HAZARD-WRITE-AFTER-READ VVL error is no longer observed
on TraceTest.special_forces_group_2, removed the error message from
skipped VVL error list.
The TraceTest.special_forces_group_2 now runs into a different
SYNC-HAZARD-READ-AFTER-WRITE VVL error, on Linux AMD GPU. An existing
entry in the skipped VVL error list already covers this error message.
Reformat that entry by adding the extraProperties, and changing the
messageContents1/messageContents2 fields to nullptr for ease of clean
up later.
Bug: angleproject:42264123
Bug: angleproject:397775556
Change-Id: I1681cd7f76dd2090e78584b08c25224d5b05d963
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6514289
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Commit-Queue: Yuxin Hu <yuxinhu@google.com>
|
|
2ca90dab
|
2025-05-02T22:38:38
|
|
Vulkan: Don't calculate vertex input state when dynamic
When vertex input state is dynamic,
VkGraphicsPipelineCreateInfo::pVertexInputeState can be nullptr. This
change makes sure time is not wasted calculating this state at pipeline
creation time.
The change also ensures drivers don't rely on info provided at compile
time by mistake.
Bug: angleproject:42265637
Change-Id: I54da8be7769f0dd0767df6d7774baa956475bf8d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6510082
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
|
|
c60d98ce
|
2025-05-03T01:06:02
|
|
WGPU: Ship driver uniforms in the bind groups to the shader
This writes driver uniforms to a WGPU buffer and ships that
buffer to the shader. Right now this creates a new buffer every time
a driver uniform changes.
Bug: angleproject:389145696
Change-Id: Icfbce4d995ef593e703a597bb96e72173ec29cda
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6477136
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Matthew Denton <mpdenton@chromium.org>
|
|
ce795fa8
|
2025-04-28T15:31:25
|
|
Reformat VVL error message
Set messageContents1 and messageContents2 fields to nullptr,
for ease of clean-up in follow-up changes.
Make the extra properties fields more specific.
Bug: angleproject:42265363
Bug: angleproject:415382790
Bug: angleproject:415383266
Change-Id: I032bc82c6aeb16281c868778db827318fa833005
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6496650
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Auto-Submit: Yuxin Hu <yuxinhu@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
|
|
18ec8824
|
2025-05-02T12:42:26
|
|
Vulkan: Exclude RADV from global cache preference
* Added exception for AMD/RADV machines from the following flag:
preferGlobalPipelineCache
* (Due to no information regarding the effect of this flag on
those platforms)
Bug: b/411442610
Change-Id: Ifd9e2fe02e488d51cbb9e070106e86ac21e8533d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6509821
Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
Auto-Submit: Amirali Abdolrashidi <abdolrashidi@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
16e0dfd9
|
2025-03-20T10:59:26
|
|
Vulkan: Add feature flag to recycle VkEvent
This CL adds a feature flag to enable/disable the VkEvent recycling.
Given ARM prefers taking CPU overhead of creating and destroying VkEvent
when last reference count to VkEvent goes away instead of the extra GPU
overhead comes with vkCmdResetEvents, VkEvent recycling is disabled on
ARM.
Bug: angleproject:409441956
Change-Id: I288be6f7cfcbc4dd9c4701d20fba44349f25befc
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6376784
Commit-Queue: Charlie Lao <cclao@google.com>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
f6e1d4d7
|
2025-05-02T12:02:09
|
|
Fix include header case mismatches
This CL fixes the include header names to be aligned with the actual
file names. It's problematic for cross compile on Linux, where file
system is case sensitive.
Context:
Goma/Reclient's deps scanner was able to handle those case mismatches.
But, Siso's builtin remote execution doesn't resolve them automatically.
Bug: b/401959048
Change-Id: I98282899e31ea801058f82d4cad770413634f4f3
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6508684
Reviewed-by: Charlie Lao <cclao@google.com>
Auto-Submit: Junji Watanabe <jwata@google.com>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
|
|
a3b20796
|
2025-04-25T13:12:08
|
|
Vulkan: Add flag to prefer renderer pipeline cache
* Added the following feature: preferGlobalPipelineCache
* The renderer's pipeline cache will be used to create pipelines,
including for warm-up.
* mPipelineCache in the program is not saved when this flag is
enabled.
* Currently enabled for NVIDIA and AMD.
* Impact on captured trace (w/ compiling inactive shaders)
* Decrease in peak system memory usage on Windows/NVIDIA:
* ~7600 MB -> ~3900 MB
* Decrease in peak RES memory usage on Linux/NVIDIA:
* ~7100 MB -> ~3600 MB
Bug: b/411442610
Change-Id: I04929569f0f8d59a77c52505072faa0244ef1393
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6495155
Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
|
|
c52183bd
|
2025-04-11T11:17:10
|
|
Reset sample coverage after fbo change on Adreno
Adreno drivers cache some internal value based number of samples in
currently bound FBO and glSampleCoverage value, but doesn't update it on
FBO change.
So if we set sample coverage to 1 when FBO with 1 samples bound and then
switch to FBO with 4 samples it behaves like coverage is 0.25 instead of
1.
To avoid this, reset sample coverage after each FBO change.
Bug: chromium:408364831
Change-Id: I7d5e36926e8568f4c652049b43ecdbe382ddc293
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6447878
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Vasiliy Telezhnikov <vasilyt@chromium.org>
|
|
9bcfb38f
|
2025-04-30T23:12:19
|
|
Vulkan: Disable MSRTSS on buggy qualcomm drivers
Bug: chromium:413427770
Change-Id: I62499c3aa04f3786a0deb6afcaafb7976f2a6446
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6501621
Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
|
|
4b69ba93
|
2025-04-28T16:45:56
|
|
WGPU: upload texture bind groups and configured samplers
GLSL samplers are split into separate sampler/texture variables
in WGSL. Before this CL, the WGSL translator generated shaders
that look like:
@group(1) @binding(@@@@@@) var ANGLE_sampler_samp2D :
sampler;
@group(1) @binding(@@@@@@) var ANGLE_texture_samp2D :
texture_2d<f32>;
@group(1) @binding(@@@@@@) var ANGLE_sampler_sampCube :
sampler;
@group(1) @binding(@@@@@@) var ANGLE_texture_sampCube :
texture_cube<f32>;
This CL replaces those with actual binding numbers
@group(1) @binding(0) var ANGLE_sampler_samp2D :
sampler;
@group(1) @binding(1) var ANGLE_texture_samp2D :
texture_2d<f32>;
...
Such that @binding(n*2) is the WGSL sampler variable corresponding
to the n-th GLSL sampler and @binding(n*2+1) is the WGSL texture
variable corresponding to the n-th GLSL sampler.
This CL then generates binding group layouts matching the above,
and uploads textures and configured samplers in bind groups.
This makes some of the deqp_gles2 tests 2d texture tests pass,
though some fail because they need a flipped y coordinate.
Not yet supported:
1. arrays of samplers
2. shadow samplers
3. cube textures
Bug: angleproject:389145696
Change-Id: I2ab18ae5ebb4d1289101266bd9451576aa04ce2a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6382272
Reviewed-by: Liza Burakova <liza@chromium.org>
Auto-Submit: Matthew Denton <mpdenton@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
c884460a
|
2025-04-24T16:43:04
|
|
Vulkan: Fix deferred clears vs noop multidraw
Bug: chromium:407828338
Change-Id: I5da22aeb72605bb7943fa5ae079ae297d00888f7
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6488794
Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
e5680ba6
|
2025-04-14T17:43:07
|
|
Fix mInFlightCommands.empty() assert in CommandQueue destroy
When initialize a higher priority shared Context, ANGLE internal call
updateContextsPriority to submit previously flushed commands. This
submission is not tracked by any Context. Add
Renderer::mSubmittedResourceUse to record submitted queue serials not
belonging to any Context to fix the assertion.
Bug: angleproject:410996556
Change-Id: I7a91e47c0233832b8806637f295dffd1ff54f729
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6458623
Reviewed-by: Igor Nazarov <i.nazarov@samsung.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Auto-Submit: Neil Zhang <Neil.Zhang@arm.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
d392eeae
|
2025-04-22T10:54:13
|
|
Vulkan: Force host-image-copy for LUMA textures on ARM
Bug: angleproject:42266771
Change-Id: I79a8fe14ba389195d5846261752be847bc13bcf4
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6479371
Commit-Queue: Yuxin Hu <yuxinhu@google.com>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
cdcf6a63
|
2025-04-22T10:19:33
|
|
Add R10X6G10X6B10X6A10X6 support on angle
Bug: angleproject:409355677
Change-Id: I8115ca73a038360f673552532e9d9b87ff846867
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6438114
Commit-Queue: Yuxin Hu <yuxinhu@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
|
|
d698500d
|
2025-04-08T09:05:42
|
|
Fix an ASSERT() crash in ExternalFence SyncWaitFd().
https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetFenceFdKHR.html
If pGetFdInfo->handleType is VK_EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT
and the fence is signaled at the time vkGetFenceFdKHR is called, pFd
may return the value -1 instead of a valid file descriptor.
So when above scenario happens, ANGLE will get a -1 fd from
vkGetFenceFdKHR(), and then Angle will call SyncWaitFd() with the
invalid fd, it will cause an ASSERT() crash.
Bug:angleproject:409342980
Change-Id: I48d4d21d531e40f8ba275918454632ae14fec04b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6439303
Auto-Submit: Peng Huang <penghuang@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
691140da
|
2025-04-22T21:05:44
|
|
Vulkan: Do not skip VUID-vkQueueSubmit-pSignalSemaphores-00067
... when "VK_EXT_swapchain_maintenance1" is enabled.
Original problem is a VVL bug, introduced in:
62e9314e2eb9c58af42f6f1b613d200d5362598d
layers: Track semaphore is in use by swapchain
It was later partially fixed in:
88934ae6acf0c8b8ae169df9607e779ac4a70239
layers: Fix waiting on present fence did not have effect
Bug is only fixed when using present fences (when
"VK_EXT_swapchain_maintenance1" is enabled).
Without present fences, VUID error still prints the following:
Swapchain image 0 was presented but not re-acquired, so VkSemaphore
0x41c700000041c7 may still be in use and cannot be safely reused with
image index 0.
a) Use a separate semaphore per swapchain image. Index these
semaphores using the index of the acquired image.
Since problem only happens in a shared present mode, re-acquiring the
image causing "VUID-vkAcquireNextImageKHR-surface-07783". It is also
unclear from the Vulkan spec if the image may be re-acquired in shared
present mode, but it is currently not necessary.
When not using present fences, ANGLE tracks present semaphores by
attaching submit serial to the previous present operation when same
image is presented. This guarantees to use more than one present
semaphore (in a shared present mode) and not to reuse semaphore with
signal operation pending. This is more strict synchronization than what
is suggested by the VUID error in the item (a).
However, it is debatable if this is ANGLE's or VVL error. If it is not
a VVL error, it at least should provide correct message of how to fix
the problem in case of a shared present mode. Theoretically, ANGLE may
fix this error by only using present semaphore for the initial present,
and skip it for all subsequent present operations, since image is
already shared with the presentation engine and present operation is
only used for notification purposes.
Bug: angleproject:408190758
Change-Id: Id0dc3c0efcba72e844ba6b2c241d0076f70fcd51
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6480175
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
6f9f343a
|
2025-04-16T14:45:33
|
|
Reland "Vulkan: Prune superseded updates during host-image-copy"
This is a reland of commit f8a8adf63c5834a725d1bd752acc6d63c3f45c05
Original change's description:
> Vulkan: Prune superseded updates during host-image-copy
>
> Bug: angleproject:42266771
> Change-Id: I7aa8e85720a54537389df615b575ddfa9951770d
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6462475
> Reviewed-by: Yuxin Hu <yuxinhu@google.com>
> Reviewed-by: Cody Northrop <cnorthrop@google.com>
> Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org>
> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Bug: angleproject:42266771
Change-Id: I95e6f1d2421327a6394e627f03ef5b4cddf4a1e1
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6480011
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
3f88a505
|
2025-04-03T17:29:20
|
|
GenerateMipmap encode and decode sRGB when GL_SKIP_DECODE_EXT is set
According to the spec, if TEXTURE_SRGB_DECODE_EXT is set before
GenerateMipmap for a texture with format sRGB, mipmap generation should
skips the encode and decode steps during mipmap generation, matching the
mipmap generation for a non-sRGB texture.
Bug: angleproject:406829410
Change-Id: Icea8c27a1ab2f20e9fd6c8d79187c0c5cfe8e789
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6428506
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Auto-Submit: Tingwei Guo <tingwei.guo@arm.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: mohan maiya <m.maiya@samsung.com>
|
|
50a4ad19
|
2025-04-22T09:29:17
|
|
Revert "Vulkan: Prune superseded updates during host-image-copy"
This reverts commit f8a8adf63c5834a725d1bd752acc6d63c3f45c05.
Reason for revert: Has a bug in the calculation of image layers whose
updates should be dropped.
Bug: angleproject:42266771
Original change's description:
> Vulkan: Prune superseded updates during host-image-copy
>
> Bug: angleproject:42266771
> Change-Id: I7aa8e85720a54537389df615b575ddfa9951770d
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6462475
> Reviewed-by: Yuxin Hu <yuxinhu@google.com>
> Reviewed-by: Cody Northrop <cnorthrop@google.com>
> Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org>
> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Bug: angleproject:42266771
Change-Id: I2b992c8598f58c40386338ade3cf59ffdb03abd5
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6480413
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org>
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
|
|
f355e2b3
|
2025-04-15T18:58:25
|
|
Vulkan: Remove preferDriverUniformOverSpecConst
This was practically true for every vendor on Android (where rotation
matters). For Qualcomm, it was also true due to a bug in version
checking and didn't seem to be causing any concerns. Where pre-rotation
is supported, it is better to enable this feature to avoid excessive
pipeline creation.
This change removes the feature and makes sure ANGLE always uses
uniforms for rotation instead of spec consts. While technically this
may have an adverse effect on platforms that never need pre-rotation,
the ability is retained for all vendors since pre-rotation is finding
its way into more platforms and would likely eventually be needed
everywhere anyway.
Bug: angleproject:42265878
Bug: angleproject:42262166
Change-Id: I4b64c04da46db08cfdd44b60789b66d93d8e8b17
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6459025
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Reviewed-by: mohan maiya <m.maiya@samsung.com>
Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
|
|
07eeca12
|
2025-04-17T20:58:19
|
|
Metal: prevent padding in state cache's structs.
Fixed: angleproject:411845677
Change-Id: I8a9635634e66f86c132205f75825a916481f7ad0
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6468239
Commit-Queue: Quyen Le <lehoangquyen@chromium.org>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
|
|
f6a350de
|
2025-04-17T20:43:08
|
|
Metal: fix rasterSamplecount not used in comparing render passes.
RenderPassDesc's rasterSamplecount was not used to comparing two
render passes' descriptors.
Note: no reported bug found related to this missing comparison yet.
This bug most likely affects render passes without any attachment
(PLS?). Because if the 2 render passes have the same attachments, their
rasterSamplecount values must also be equal.
There was also a missing rasterSamplecount comparison in
RenderPipelineOutputDesc::operator==. However, this function is not
used. When comparing two render pipelines,
RenderPipelineDesc::operator== is used instead, which is currently
implemented using memcmp. So removing the former to avoid confusions.
Bug: angleproject:411845677
Change-Id: Ic9b1867226561d096c1fb8ca2194b657d29daa18
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6468238
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Quyen Le <lehoangquyen@chromium.org>
|
|
f8a8adf6
|
2025-04-16T14:45:33
|
|
Vulkan: Prune superseded updates during host-image-copy
Bug: angleproject:42266771
Change-Id: I7aa8e85720a54537389df615b575ddfa9951770d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6462475
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
|
|
a9f2f87f
|
2025-04-15T13:46:34
|
|
Vulkan: Update version macros
* Updated the deprecated version macros
* VK_VERSION_MAJOR -> VK_API_VERSION_MAJOR
* VK_VERSION_MINOR -> VK_API_VERSION_MINOR
* VK_VERSION_PATCH -> VK_API_VERSION_PATCH
* VK_MAKE_VERSION -> VK_MAKE_API_VERSION
* Added a separate case for QCOM drivers in getVersionString().
* The major version is now OR-ed with 512.
* (New drivers seems to have a major version of 512, which falls
not within the major field, but the variant field, when using
the VK_API_VERSION_x macros.)
Bug: angleproject:42267006
Change-Id: Ic9b761d182ff49c3ede43c7bd14f366f945fbf36
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6460682
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
4b9525b2
|
2025-04-04T00:00:00
|
|
Remove all getClientMajorVersion helpers
Client version checks should use
proper struct compare operations.
Bug: angleproject:408843436
Change-Id: I92cd91d1e7e6daa761f79060835aa534c5671264
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6467460
Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
a6a7de5a
|
2025-04-16T14:28:13
|
|
Vulkan: Sync perf counters in finishImpl(...)
.. instead of finish(...) so other code paths like onDestroy(...)
have a chance to update perf counters before decoupling from the
sharegroup
Bug: angleproject:386749841
Change-Id: Ib0f847dda2274686ed9e5d3c8211ee5a364e4b65
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6463366
Commit-Queue: mohan maiya <m.maiya@samsung.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
408f5853
|
2025-04-04T00:00:00
|
|
Make gl::Version data members private
* Further simplified gl::Version implementation by
making data members private and merging them.
* Used proper version struct comparisons instead
of accessing individual version components.
* Moved known version constants to Version.h
for broader availability.
* Removed no longer used helpers:
* PrivateState::getClientMinorVersion()
* State::getClientMinorVersion()
* Context::getClientMinorVersion()
Bug: angleproject:408843436
Change-Id: I3ae8f495269d649253fa2381ecbfc018a184fa20
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6460787
Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
|
|
b64d380e
|
2025-04-15T00:54:22
|
|
Vulkan: Ghost texture's image backing if overwritten
If the texture's image is in use by the GPU but is overwritten
completely, this change releases the old image and creates a fresh one.
If the texture was used in a render pass, this avoids breaking the
render pass. Otherwise, it allows the new image to be initialized with
VK_EXT_host_image_copy functionality. In the very least, an unnecessary
barrier is avoided.
As a targeted optimization, this functionality is limited to non-array
2D color textures which are known to benefit from this ghosting in
applications. Other texture types can be easily added, but need lots of
tests to be added.
Bug: angleproject:42265356
Change-Id: I18a7587599e36f9f70109264ddc1003b24b8b2df
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6456345
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
0ed51ec7
|
2025-04-10T22:41:22
|
|
Vulkan: Disable color attachment usage for LUMA formats
Bug: angleproject:42265356
Change-Id: If97fd59e85febfdf345a36097901a2015aa4183b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6447236
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
|
|
49d0a332
|
2025-04-08T16:07:17
|
|
Vulkan: Remove ring buffer allocators
* Removed the ring buffer allocator functionality from ANGLE:
angle::RingBufferAllocator
* Also removed the related common files.
* (Pool allocators will be used at all times.)
* Removed the placeholder functions from the pool allocator.
* Removed the following BUILD flag:
angle_enable_vulkan_shared_ring_buffer_cmd_alloc
* Removed redundant line from ContextVk.
Bug: b/410036490
Change-Id: I368fb93a66ddfd192018b09f65004a32339abd5a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6442640
Reviewed-by: Igor Nazarov <i.nazarov@samsung.com>
Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
33e035f9
|
2025-04-04T00:00:00
|
|
Enforce correct usage of gl::Version
In preparation for the implementation update,
ensured that gl::Version struct is always
initialized with 8-bit values.
Bug: angleproject:408843436
Change-Id: Idcc925b49cadc7fdc4f05ff2acaed8020e72a32e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6458758
Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
4be3143c
|
2025-04-10T15:18:52
|
|
Vulkan: Vertex attribute hole crash workaround
When the start vertex index of glDrawArrays is not 0, this hole
case will crash again.
* Added a condition to bypass the attribute update if the
attribute pointer is null.
* Added a glDrawArrays(GL_TRIANGLES, 3, 3) in unit test
VertexAttribPointerCopyBufferFromInvalidAddress
Bug: angleproject:359729255
Change-Id: I1d7f50dc56080ef0b4e48c4c3c983189a26171c1
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6445172
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Auto-Submit: Mavis Deng <mavis.deng@arm.com>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
|
|
ac8607a9
|
2025-03-27T16:46:21
|
|
Vulkan: Disable graphics pipeline on ARM due to performance loss
ARM is investigating on Graphics Pipeline Library(GPL) on contents
whose performance loss is unacceptable. Therefore, it's recommended
to disable GPL until the problematic area gets fixed and the final
performance data is acceptable.
Bug: angleproject:404581992
Change-Id: I2bcb5f8bca3d64be0e947d7262a615ef867532ef
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6400174
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
|
|
a3f2545f
|
2025-04-11T14:03:08
|
|
Tests that exercise overwriting textures while in use
The first three tests are credit Cheryl Wei <@arm.com>, adopted from
https://chromium-review.googlesource.com/c/angle/angle/+/3366193
The change also exposed the fact that the force_fallback_format with
ASTC leads to assertion failure if ASTC emulation is not built. This
change adjusts the format table to fix that as well.
Bug: angleproject:42265356
Change-Id: Ib68355f317472d8cc3f035b492b273ac452a8217
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6447202
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
|
|
d32c6c03
|
2025-04-11T15:12:24
|
|
Vulkan: Treat present SURFACE_LOST_KHR as OUT_OF_DATE
... when in shared present mode.
Handle `VK_ERROR_SURFACE_LOST_KHR` the same way as
`VK_ERROR_OUT_OF_DATE_KHR`, because on some platforms (observed on
Android) swapchain recreate still succeeds making this error behave the
same as OUT_OF_DATE. In case of a real surface lost, following
swapchain recreate will also fail, effectively deferring the failure.
This will avoid generating swap buffers failure unnecessarily, which may
cause abortion of the application.
Bug: angleproject:409809766
Change-Id: Ie8abd6b10f160254c94abc0f799195d7414681e3
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6450580
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Igor Nazarov <i.nazarov@samsung.com>
|
|
5dd05578
|
2025-04-14T07:34:57
|
|
Revert "GL: Allow untranslated shaders to pass through on GLES"
This reverts commit 4e77552b86a89b449ada6d6c18f84285f5812b1d.
Reason for revert: breaks ChromeOS and fuzzers
Bug: angleproject:398857482
Original change's description:
> GL: Allow untranslated shaders to pass through on GLES
>
> Add an EGL extension EGL_ANGLE_create_context_passthrough_shaders which
> uses the NULL translator and passes the original shader to the driver.
> The parser is still used for shader reflection.
>
> Bug: angleproject:398857482
> Change-Id: I7c5fcc318c7e11931f78c08dcbf4764bf77d397d
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6297527
> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
> Commit-Queue: Geoff Lang <geofflang@chromium.org>
Bug: angleproject:398857482, angleproject:410423936
Bug: chromium:410114655, chromium:410100607, chromium:410121218
Bug: chromium:410052365, chromium:410290507, chromium:410178288
No-Presubmit: true
Change-Id: I45b01960637a1cda05d21a7df6d07465f6a8f5e9
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6448984
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Auto-Submit: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
|
|
4e77552b
|
2025-02-24T18:04:32
|
|
GL: Allow untranslated shaders to pass through on GLES
Add an EGL extension EGL_ANGLE_create_context_passthrough_shaders which
uses the NULL translator and passes the original shader to the driver.
The parser is still used for shader reflection.
Bug: angleproject:398857482
Change-Id: I7c5fcc318c7e11931f78c08dcbf4764bf77d397d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6297527
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|