|
778969f2
|
2025-08-28T15:54:35
|
|
[WebGPU] Fix ImageHelper::flushSingleLevelUpdates
This change modifies ImageHelper:flushSingleLevelUpdates to
only send a flush command to the context once, instead of in each
iteration of the loop if there are multiple texture uploads.
This also means that the last texture upload is guaranteed to be
flushed, as otherwise that texture could be staged in the queue,
but a different command could redefine texture levels which
would delete the underlying texture handle but not the command
queued for that texture.
Bug: angleproject:438268609
Change-Id: I2d49b15fc921829175e99bdb550dddbd81179061
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6885223
Commit-Queue: Matthew Denton <mpdenton@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Matthew Denton <mpdenton@chromium.org>
|
|
6f0337a0
|
2025-08-28T23:13:22
|
|
Avoid some needless c_str() calls.
Remove conversions from string -> char* -> string, as detected some
time ago by a clang compiler plugin. Typically, this occurs when
passing a c_str() result to a function that expects a string argument.
Bug: b/412730353
Change-Id: I1d9c83e9ed5c4900eec266e71f534661f0f3d4d4
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6896657
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Auto-Submit: Tom Sepez <tsepez@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
a02670d6
|
2025-08-26T20:41:16
|
|
Move unsafe buffers inside header guard macros
While this is exactly opposite of what Chromium has chosen to do,
there is an issue with clang-format trying to indent preprocessor
directives four spaces relative to include guard. This is because
Angle's .clang-format file specifies IndentPPDirectives: AfterHash
but Chromium's does not. The current placement is sufficient to
throw off clang-format's guard detection since the guard macro no
longer covers the entire file.
Bug: b/436880895
Change-Id: Ic6b99c8cef6213939cdf9b42af8730e1eb423065
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6885892
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Auto-Submit: Tom Sepez <tsepez@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
25390156
|
2025-08-21T00:13:19
|
|
Suppress unsafe buffers on a file-by-file basis in src/ [1 of N]
In this CL, we suppress many files but stop short of actually
enabling the warning by not removing the line from the
unsafe_buffers_paths.txt file. That will happen in a follow-on
CL, along with resolving any stragglers missed here.
This is mostly a manual change so as to familiarize myself with
the kinds of issues faced by the Angle codebase when applying buffer
safety warnings.
-- Re-generate affected hashes.
-- Clang-format applied to all changed files.
-- Add a few missing .reserve() calls to vectors as noticed.
-- Fix some mismatches between file names and header comments.
-- Be more consistent with header comment format (blank lines and
trailing //-only lines when a filename comment adjoins license
boilerplate).
Bug: b/436880895
Change-Id: I3bde5cc2059acbe8345057289214f1a26f1c34aa
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6869022
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
03068e0c
|
2025-08-20T17:36:22
|
|
[WebGPU] Implement direct copy for images.
This CL implements CopyImage specifically in cases
where the source is the same size and format as the
destination.
Bug: angleproject:438268609
Change-Id: Icf5f3685bb2f49874d996883c839515314f1c189
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6842317
Commit-Queue: Liza Burakova <liza@chromium.org>
Reviewed-by: Matthew Denton <mpdenton@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
2ef85c24
|
2025-07-09T17:13:52
|
|
Vulkan: Add support for GL_EXT_fragment_shading_rate
Add support for GL_EXT_fragment_shading_rate.
Bug: angleproject:420310117
Change-Id: I7b368afc45baf8551c222b2569991269117d385b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6726817
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Auto-Submit: Panfeng Hou <panfeng.hou@arm.com>
Reviewed-by: Charlie Lao <cclao@google.com>
|
|
a1d5d102
|
2025-07-22T02:15:43
|
|
WGSL: Allow matrices as in/out vars in shaders
WGSL only supports scalars and vectors in in/out vars in shaders,
matrices will need to be broken into column vectors and then
put back together at the beginning (or end) of the shader.
Arrays also need to be split, which will be done in another CL.
Bug: angleproject:42267100
Change-Id: If1ba28c1b687ae0a3a5a554479f0ff0b5d9df39c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6777201
Commit-Queue: Matthew Denton <mpdenton@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Liza Burakova <liza@chromium.org>
|
|
5fd368aa
|
2025-07-30T14:45:55
|
|
Replace Surface::getWidth/Height() with getSize()
Most places in the code use both `getWidth/Height()` methods at the same
time. On some back-ends it is more optimal to have single method.
For example, `WindowSurfaceWGL` first uses `GetClientRect()` Win32 API
inside each method to then calculate width and hight in each method,
causing repeated `GetClientRect()` call.
The only place where only one of the methods may be used is from
`SurfaceImpl::getUserSize()` when one of the parameters is `nullptr`,
which is only possible from `QuerySurfaceAttrib()` function. This
method is rewritten to use new `getSize()` method and then use whatever
dimensions is requested by the caller. This may cause
`QuerySurfaceAttrib()` inefficiency on some back-ends that get width and
height of the surface differently (`SurfaceEGL` for example). In such
cases `getUserSize()` is overridden to avoid returning a dimension
which is not required.
After this change all places in the code that previously used both
`getWidth/Height()` methods (like `Surface::getAttachmentSize()`) will
be more efficient. The `QuerySurfaceAttrib()`, on the other hand, will
have slightly more overhead on back-ends where base
`SurfaceImpl::getUserSize()` method is used, which only happens on
back-ends with trivial `getSize()` implementation.
Bug: angleproject:397848903
Change-Id: I4a22701a1e62ee4e7d07e77cac5b388050d98e4d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6802440
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Igor Nazarov <i.nazarov@samsung.com>
|
|
b4d84458
|
2025-05-23T18:08:19
|
|
Move Buffer from VertexBinding to VertexArray
In later CL we will not taking shared context lock for certain
VertexArray API calls. VertexArray itself is per context, so this sounds
reasonable to do. The main challenge here is a lot of VertexArray
function end up accessing gl::Buffer object, which could be modified by
other shared contexts. In order to safely not taking the shared context
lock, we need to separate out Buffer object out of VertexArray itself so
that these lockless APIs will take VertexArray that does not have access
to buffer.
In this CL, VertexArray is split into two classes: VertexArrayPrivate is
everything in VertexArray except buffers. VertexArray is a subclass of
VertexArrayPrivate and owns all the buffers. Buffer is removed from
gl::VertexBinding class. In order to let back end access to buffers,
VertexArrayImpl holds a weak reference to
VertexArray::mVertexArrayBuffers (which is a vector of buffers).
Further, VertexArrayBufferBindingMask mBufferBindingMask is moved from
VertexArrayState into VertexArray class well, since it tracks which
index has a non-null buffer. The bulk of change are due to the
VertexARrayImpl constructor change, since it now takes
vertexArrayBuffers argument. Other bulk of changes are due to
VertexBinding no long has the buffer, but you need to get it directly
from VertexArray or VertexArrayImpl.
This CL also reverts some of the change in crrev.com/c/6758215 that
mVertexBindings no longer contains kElementArrayBufferIndex.
BYPASS_LARGE_CHANGE_WARNING
Bug: b/433331119
Change-Id: I15f4576f7c5c8d8f4d9c9c07d38a60ce539bfeea
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6774702
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Commit-Queue: Charlie Lao <cclao@google.com>
|
|
8dca0efe
|
2025-07-21T15:29:10
|
|
Replace VertexArray::DIRTY_BIT_LOST_OBSERVATION with API call
This dirty bit was added so that back end can inspect buffers and set
proper VertexArray::DirtyBitType. The same thing can achieved by add a
virtual function on VertexArrayImpl class. The advantage of virtual
function on VertexArrayImpl is that all back end essentially have the
same implementation and we can just implemented in VertexArrayImpl
instead of duplicate in each back end. The other advantage is after this
CL DIRTY_BIT_BINDING_n and DIRTY_BIT_BUFFER_DATA_n will be well aligned
instead of offset by 1 caused by DIRTY_BIT_LOST_OBSERVATION. The other
motivation of this change is in later CL I want to move
mBufferBindingMask out of VertexArrayState, which means back end will
not have access to it. By using VertexArrayImpl API, I can pass
mBufferBindingMask directly to the back end via function parameter. So,
this CL removed DIRTY_BIT_LOST_OBSERVATION, added
VertexArrayImpl::checkBufferForDirtyBits().
Bug: b/433331119
Change-Id: I5c8cbc9bace63db416e86c2ae3631f74a12b20b8
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6775986
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Commit-Queue: Charlie Lao <cclao@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
3f170c17
|
2025-07-11T15:35:01
|
|
Roll third_party/dawn/ (1684 commits) and clean up WGPU_BREAKING_CHANGEs
With this roll, Dawn has completed the WGPU_BREAKING_CHANGE_* changes,
so the old paths are no longer used.
The roll:
https://dawn.googlesource.com/dawn.git/+log/7a8946456d49..d85fc050fef7
Created with:
roll-dep third_party/dawn
Bug: chromium:427242889
Change-Id: Ia17fbc1447944e7bcea20d5004367d94cf7be10e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6729918
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Auto-Submit: Kai Ninomiya <kainino@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
5d124404
|
2025-06-17T17:04:12
|
|
WebGPU: Fix bind groups leaking in CommandBuffer.
Wrap all per-submission member variables in a struct so that we can
reset everything at once using the default constructor. This avoids
similar leaks in the future.
Bug: chromium:413078308
Change-Id: I3f926c82905b73b27d6b751cfe2878a41ced916a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6652290
Reviewed-by: Matthew Denton <mpdenton@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
41144603
|
2025-06-06T10:56:03
|
|
WebGPU: Handle Dawn breaking change in CreateInstance
Needed in order to update Dawn to match the standard webgpu.h, here:
https://dawn-review.googlesource.com/c/dawn/+/245242
Bug: chromium:414868137
Change-Id: I2bdf5bd5747a8da8ed0612a99d70eee8a3d09ecb
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6652516
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Auto-Submit: Kai Ninomiya <kainino@chromium.org>
|
|
dea162cc
|
2025-06-09T15:43:05
|
|
WebGPU: Finalize command blocks when starting a new one
The command buffer abstraction would not finalize blocks of commands
when creating a new block, leading to possible infinite loops when
processing the commands.
Bug: chromium:413078308
Change-Id: Idf4e95a5ccc71f3ddc9a4202e5e000c0e2cd5f87
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6629473
Reviewed-by: Liza Burakova <liza@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
243ebfa7
|
2025-06-16T16:07:06
|
|
WebGPU: Allow glReadPixels from non-base mip levels.
Before, the WebGPU backend always read from the base level
of the texture attached to the current framebuffer.
Bug: angleproject:42267090
Change-Id: Ibe5b8575f6fa90c1942ba566485b6175ee10f808
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6634558
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Auto-Submit: Matthew Denton <mpdenton@chromium.org>
|
|
005336e4
|
2025-06-11T17:17:16
|
|
WGPU: Basic texture cubes
Allows uploading to texture cube faces and sampling from them
in shaders using samplerCube.
Bug: angleproject:420782526
Change-Id: I45d4370fcc418f39afb225114d13632a78c7c200
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6593999
Reviewed-by: Liza Burakova <liza@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Matthew Denton <mpdenton@chromium.org>
|
|
c6b3440b
|
2025-06-06T23:34:33
|
|
Vulkan: Add G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16 support.
Add support for YCBCR_P010 format.
Bug: b/408996471
Change-Id: I899533b604e5b2fd0ad1fb1e940dd1f119179794
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6628658
Reviewed-by: Solti Ho <solti@google.com>
Auto-Submit: Shashank Sharma <shawshanks@google.com>
Commit-Queue: Yuxin Hu <yuxinhu@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
433906d7
|
2025-05-29T16:22:18
|
|
WebGPU: Protect against null compilation info.
compilationInfo is an optional parameter of this callback.
Bug: chromium:413078308
Change-Id: I12770c566b3daad5eaf8d6c8b66e464a85da06f7
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6596988
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
7ddc219f
|
2025-05-28T22:25:37
|
|
WebGPU: Handle Dawn breaking change in QueueWorkDoneCallback
Needed in order to update Dawn to match the standard webgpu.h, here:
https://dawn-review.googlesource.com/c/dawn/+/243697
Bug: chromium:414868699
Change-Id: Ib52c0e32b685ef3f9f05fe1fe549ab16e8eec610
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6600550
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Auto-Submit: Kai Ninomiya <kainino@chromium.org>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
78048112
|
2025-01-15T15:13:14
|
|
Fix IndexRange::vertexIndexCount calculation
Use only one loop.
Avoid redundant primitive restart index parameter.
Avoid calling GetPrimitiveRestartIndexFromType() because the algorithm
relies on the value being numeric_limits<T>::max().
Fixes a bug where primitive restart case would process the value
after first primitive restart twice, once in both for loops. This would
result in incorrect vertexIndexCount.
Fix by removing IndexRange::vertexIndexCount, and instead using
IndexRange::mCount == 0 to signify empty range.
Bug: angleproject:401284933
Change-Id: Ifaeb9949f2e852fb7c5ef80bc47f72bfabba21a6
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6333541
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Auto-Submit: Kimmo Kinnunen <kkinnunen@apple.com>
Commit-Queue: Kimmo Kinnunen <kkinnunen@apple.com>
|
|
3dcf109d
|
2025-04-10T17:19:09
|
|
WebGPU: Refactor syncClientArrays.
This change adds a few helper methods for syncClientArrays
to improve readability
Bug: angleproject:401499251
Change-Id: Ida427f80e07f469b83ff12850169b2110e65743c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6441946
Reviewed-by: Matthew Denton <mpdenton@chromium.org>
Commit-Queue: Liza Burakova <liza@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
f4ff9241
|
2025-04-08T14:37:08
|
|
WGPU: add utils for converting between GLSL and WGSL types
...specifically those related to textures and samplers.
Bug: angleproject:389145696
Change-Id: If3bec56b70c04443928ef0d4e1e1a40b5c578cc0
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6441818
Reviewed-by: Liza Burakova <liza@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Matthew Denton <mpdenton@chromium.org>
|
|
0e28c030
|
2025-04-02T17:26:28
|
|
ScalarizeVecAndMatConstructorArgs on WGSL shaders.
WGSL does not support mixing types in the constructors of vectors and
matrices. Use the ScalarizeVecAndMatConstructorArgs traverser to
scalarize these constructors and update it to cast to the destination
type if the inputs are not in that type already.
Bug: angleproject:395659799
Change-Id: I4c270f2b18e79393e3c187916f33ad719bc88a63
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6427067
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
ecc378cc
|
2025-03-03T16:43:33
|
|
Reland "Dont use Subject/Observer for SwapchainImageChanged"
This is reland of the following CL
https://chromium-review.googlesource.com/c/angle/angle/+/6319893
Because we do deferred ANI (VkAcquireNextImage) call until image is
needed, we need a way to force Context to go through
FramebufferVk::syncState call (FramebufferVk::syncState calls
WindowSurfaceVk::getAttachmentRenderTarget, which end up calling ANI.
Right now we uses subject/observer mechanism, by sending
angle::SubjectMessage::SwapchainImageChanged to all observers of
WindowSurfaceVk. In this case it is egl::Surface. Then eglSurface
redirects this message to its observers, which are all gl::Framebuffer's
attachments: color, depth, stencil. Even though only color attachment
needs to be notified, but because we don't have a separate list of
observers, depth/stencil attachment also receive the notification and
they early out. Then gl::Framebuffer sets
DIRTY_BIT_COLOR_BUFFER_CONTENTS_0 dirty bit and send the
angle::SubjectMessage::DirtyBitsFlagged to Context, which dirty DrawFBO
and ReadFBO and dirty cached state. Note that this is specific for swap
image changed case, there is no surface property change (surface
property change will still trigger the subject/observer message with
SubjectMessage::SubjectChanged message, but this occurs rarely). This
gets worse for apps that uses multiple contexts, for the example
pokemon_masters_ex has three contexts, each context has its own default
frame buffer that attach to the same surface, and we never remove
non-current context from the observer list. This end up with
egl::Surface has 12 observers and for every frame, it loop over the list
of 12 observers and send message (virtual function call) to each of
them. Color attachment also ends up sending two messages to Context, one
for Read FBO and another for Draw FBO. There are total 21 virtual
function calls. Even for single context usage, you have 6 virtual
function calls, for every frame.
EGL spec says "an EGLSurface must be current on only one thread at a
time", any other context must call EGLMakeCurrent in order to use this
surface, which will add all necessary dirty bits at that time. So we
really only need to notify current context. In this CL,
SwapchainImageChanged no longer uses subject/observer mechanism, so this
message is removed.
This CL still uses subject/observer mechanism to send DirtyBitsFlagged
from Framebuffer back to context. We could call setDrawFramebufferDirty
and setReadFramebufferDirty directly, but that will require to remove
the "const" decoration out of gl::Context which generates too much code
diff, so onStateChange(angle::SubjectMessage::DirtyBitsFlagged) is still
used.
Bug: angleproject:400711938
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6319893
Commit-Queue: Charlie Lao <cclao@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Change-Id: I017b0e8934b5194a520828fa5c4af1d6e3ef9aac
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6404621
|
|
5024ccef
|
2025-03-25T11:37:19
|
|
WebGPU: Emulate line loops with primitive restarts
Bug: angleproject:383356846
Change-Id: Iab1d658cb3c5e32f88241f6757d1c2e5a84bf8ec
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6297524
Commit-Queue: Liza Burakova <liza@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
3cfc0ce2
|
2025-03-24T07:41:33
|
|
Revert "Vulkan:Dont use Subject/Observer for SwapchainImageChanged"
This reverts commit 48103cb2f2b292cb50cc5a29546b358b2e47fd29.
Reason for revert: assert fails
https://ci.chromium.org/ui/p/angle/builders/ci/android-arm64-exp-test/7085/overview
I 22:27:33.697 77.533s _RunTestsOnDevice(17221FDF6000A4) [ RUN ] EGLAndroidAutoRefreshTest.SwapCPUThrottling/ES3_Vulkan_NoFixture
INFO:root:ERR: SurfaceVk.cpp:3165 (getCurrentFramebuffer): ! Assert failed in getCurrentFramebuffer (../../src/libANGLE/renderer/vulkan/SurfaceVk.cpp:3165): mAcquireOperation.state == ImageAcquireState::Ready
Original change's description:
> Vulkan:Dont use Subject/Observer for SwapchainImageChanged
>
> Because we do deferred ANI (VkAcquireNextImage) call until image is
> needed, we need a way to force Context to go through
> FramebufferVk::syncState call (FramebufferVk::syncState calls
> WindowSurfaceVk::getAttachmentRenderTarget, which end up calling ANI.
> Right now we uses subject/observer mechanism, by sending
> angle::SubjectMessage::SwapchainImageChanged to all observers of
> WindowSurfaceVk. In this case it is egl::Surface. Then eglSurface
> redirects this message to its observers, which are all gl::Framebuffer's
> attachments: color, depth, stencil. Even though only color attachment
> needs to be notified, but because we don't have a separate list of
> observers, depth/stencil attachment also receive the notification and
> they early out. Then gl::Framebuffer sets
> DIRTY_BIT_COLOR_BUFFER_CONTENTS_0 dirty bit and send the
> angle::SubjectMessage::DirtyBitsFlagged to Context, which dirty DrawFBO
> and ReadFBO and dirty cached state. Note that this is specific for swap
> image changed case, there is no surface property change (surface
> property change will still trigger the subject/observer message with
> SubjectMessage::SubjectChanged message, but this occurs rarely). This
> gets worse for apps that uses multiple contexts, for the example
> pokemon_masters_ex has three contexts, each context has its own default
> frame buffer that attach to the same surface, and we never remove
> non-current context from the observer list. This end up with
> egl::Surface has 12 observers and for every frame, it loop over the list
> of 12 observers and send message (virtual function call) to each of
> them. Color attachment also ends up sending two messages to Context, one
> for Read FBO and another for Draw FBO. There are total 21 virtual
> function calls. Even for single context usage, you have 6 virtual
> function calls, for every frame.
>
> EGL spec says "an EGLSurface must be current on only one thread at a
> time", any other context must call EGLMakeCurrent in order to use this
> surface, which will add all necessary dirty bits at that time. So we
> really only need to notify current context. In this CL,
> SwapchainImageChanged no longer uses subject/observer mechanism, so this
> message is removed.
>
> This CL still uses subject/observer mechanism to send DirtyBitsFlagged
> from Framebuffer back to context. We could call setDrawFramebufferDirty
> and setReadFramebufferDirty directly, but that will require to remove
> the "const" decoration out of gl::Context which generates too much code
> diff, so onStateChange(angle::SubjectMessage::DirtyBitsFlagged) is still
> used.
>
> Bug: angleproject:400711938
> Change-Id: I61354516fd0aa307714b7abd30c6b6e45ff7b496
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6319893
> Commit-Queue: Charlie Lao <cclao@google.com>
> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
> Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Bug: angleproject:400711938
Change-Id: Ib7899d1ac63a1f86af0953a1d25922578c470fc9
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6387755
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
|
|
48103cb2
|
2025-03-03T16:43:33
|
|
Vulkan:Dont use Subject/Observer for SwapchainImageChanged
Because we do deferred ANI (VkAcquireNextImage) call until image is
needed, we need a way to force Context to go through
FramebufferVk::syncState call (FramebufferVk::syncState calls
WindowSurfaceVk::getAttachmentRenderTarget, which end up calling ANI.
Right now we uses subject/observer mechanism, by sending
angle::SubjectMessage::SwapchainImageChanged to all observers of
WindowSurfaceVk. In this case it is egl::Surface. Then eglSurface
redirects this message to its observers, which are all gl::Framebuffer's
attachments: color, depth, stencil. Even though only color attachment
needs to be notified, but because we don't have a separate list of
observers, depth/stencil attachment also receive the notification and
they early out. Then gl::Framebuffer sets
DIRTY_BIT_COLOR_BUFFER_CONTENTS_0 dirty bit and send the
angle::SubjectMessage::DirtyBitsFlagged to Context, which dirty DrawFBO
and ReadFBO and dirty cached state. Note that this is specific for swap
image changed case, there is no surface property change (surface
property change will still trigger the subject/observer message with
SubjectMessage::SubjectChanged message, but this occurs rarely). This
gets worse for apps that uses multiple contexts, for the example
pokemon_masters_ex has three contexts, each context has its own default
frame buffer that attach to the same surface, and we never remove
non-current context from the observer list. This end up with
egl::Surface has 12 observers and for every frame, it loop over the list
of 12 observers and send message (virtual function call) to each of
them. Color attachment also ends up sending two messages to Context, one
for Read FBO and another for Draw FBO. There are total 21 virtual
function calls. Even for single context usage, you have 6 virtual
function calls, for every frame.
EGL spec says "an EGLSurface must be current on only one thread at a
time", any other context must call EGLMakeCurrent in order to use this
surface, which will add all necessary dirty bits at that time. So we
really only need to notify current context. In this CL,
SwapchainImageChanged no longer uses subject/observer mechanism, so this
message is removed.
This CL still uses subject/observer mechanism to send DirtyBitsFlagged
from Framebuffer back to context. We could call setDrawFramebufferDirty
and setReadFramebufferDirty directly, but that will require to remove
the "const" decoration out of gl::Context which generates too much code
diff, so onStateChange(angle::SubjectMessage::DirtyBitsFlagged) is still
used.
Bug: angleproject:400711938
Change-Id: I61354516fd0aa307714b7abd30c6b6e45ff7b496
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6319893
Commit-Queue: Charlie Lao <cclao@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
|
|
f38a081c
|
2025-03-06T12:34:20
|
|
WGPU: when copying to mip levels, copy correct size
Bug: angleproject:389145696
Change-Id: I78a2a573de371c1439033ef4e43f84906b076d41
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6333237
Reviewed-by: Liza Burakova <liza@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Matthew Denton <mpdenton@chromium.org>
|
|
4eb4165b
|
2025-03-07T10:24:05
|
|
Roll third_party/dawn/ 8119dbd27..7a8946456 (244 commits; 3 trivial rolls)
Need
https://dawn-review.googlesource.com/c/dawn/+/229494
to roll
https://chromium-review.googlesource.com/c/angle/angle/+/6334483
vulkan_platform.h:152:9: error: 'VK_USE_PLATFORM_XLIB_KHR' macro redefined
https://dawn.googlesource.com/dawn.git/+log/8119dbd27471..7a8946456d49
$ git log 8119dbd27..7a8946456 --date=short --no-merges --format='%ad %ae %s'
2025-03-07 cwallez [tint] Add support for binding_array to the IR validator
2025-03-07 hitawala [stream] Check for size invalidity before reserving in Stream::Read
2025-03-07 cwallez Reland "[dawn] Fix detection of __builtin_assume for DAWN_ASSERT"
2025-03-06 dawn-autoroll Roll ANGLE from 99ebd28ad246 to 0cdbc7814e59 (4 revisions)
2025-03-06 jiawei.shao Remove the redefinition of dawn::native::Vulkan::ClampFragDepthArgs
2025-03-06 jiawei.shao Vulkan: Implement PreferNotUsingMappableOrUniformBufferAsStorage()
2025-03-06 rharrison [tint][ir][fuzz] Re-enable SubgroupMatrix in IR binary
2025-03-06 shrekshao [Compat] Remove suppressions for ReadOnlyDepthStencilAttachmentTests
2025-03-06 thomasanderson [X11] Don't redefine VK_USE_PLATFORM_XLIB_KHR
2025-03-06 lokokung [dawn][emscripten] Fix Emscripten bindings for compilation messages.
2025-03-06 lokokung [dawn][native] Add validation for Infinities.
2025-03-06 lokokung [dawn][headers] Update wgpu::Surface APIs to match upstream.
2025-03-06 bsheedy [tools] Convert glob to use dependency injection
2025-03-06 cwallez [dawn][native] Track the set of BGLInternal separately from BGL.
2025-03-06 amaiorano tint: make PreventInfiniteLoops count down from uint32::highest() down to 0
2025-03-06 dsinclair Revert "Vulkan: Allow setting multiple `MemoryKind` bits"
2025-03-06 ynovikov Reland "Roll reclient, siso; update related DEPS to match Chromium"
2025-03-06 dawn-autoroll Roll ANGLE from 1a0c9db3748a to 99ebd28ad246 (8 revisions)
2025-03-06 cwallez Revert "[dawn] Fix detection of __builtin_assume for DAWN_ASSERT"
2025-03-05 zhaoming.jiang Dawn: Remove adapter from shader compilation request
2025-03-05 jiawei.shao Skip the test CreateBufferOOMWithValidationError when no validation
2025-03-05 lokokung [dawn][native] Make error scopes thread local.
2025-03-05 dawn-autoroll Roll ANGLE from 6b10ae3386b7 to 1a0c9db3748a (3 revisions)
2025-03-05 mohamedkhairy0101 tint: Improve error message for module-scope function calls
2025-03-05 mohammedashraf4599 add BOM error message
2025-03-05 cwallez [dawn] Fix detection of __builtin_assume for DAWN_ASSERT
2025-03-05 cwallez [tint] Add binding_array indexing to the resolver.
2025-03-05 kylechar Add SlabAllocator::DeleteEmptySlabs()
2025-03-05 dawn-autoroll Roll ANGLE from 73992d71f9d1 to 6b10ae3386b7 (7 revisions)
2025-03-05 shrekshao Remove enabling core-features-and-limits in backends
2025-03-04 lokokung [dawn][headers] Removes default UTF16 support.
2025-03-04 lokokung Reland "[dawn][headers] Remove obsolete ifdefs."
2025-03-04 jwata build: GN builds use Siso without Reclient in tools/setup-build script
2025-03-04 jrprice [vulkan] Fix subgroup matrix config gathering
2025-03-04 dawn-autoroll Roll ANGLE from bd8bc1055ecd to 73992d71f9d1 (1 revision)
2025-03-04 chrome-branch-day Activate dawn M135
2025-03-04 beaufort.francois Remove maxInterStageShaderComponents limit
2025-03-04 beaufort.francois Refactor Bindgroup constructors
2025-03-04 cwallez [tint] Add binding_array to the resolver
2025-03-04 cwallez Revert "[dawn][headers] Remove obsolete ifdefs."
2025-03-04 lokokung [dawn][headers] Remove obsolete ifdefs.
2025-03-03 zhaoming.jiang Dawn: Cache limits in AdapterBase
2025-03-03 dawn-autoroll Roll ANGLE from 19b35fcbff31 to bd8bc1055ecd (5 revisions)
2025-03-03 lokokung [dawn][headers] Adds extension support for UTF-16 in compilation message.
2025-03-03 jrprice [spirv] Only add explicit layout decorations on types that need them
2025-03-03 kainino [emscripten] Add emsdk to DEPS for Wasm builds
2025-03-03 lokokung [dawn][wire] Adds Dawn wire invalid extension struct and handling.
2025-03-03 jrprice [dawn] Validate workgroup size for subgroup matrix
2025-03-03 jrprice [inspector] Reflect the use of a subgroup matrix
2025-03-03 jrprice [tint] Reject non-compute shaders that use subgroup matrices
(...)
2025-02-18 zhjiang Dawn: Tighten the scope of ScopedTintICEHandler
2025-02-18 dawn-autoroll Roll DirectX Shader Compiler from 6b68f3b5832c to fcbd2a184294 (2 revisions)
2025-02-18 jiawei.shao Replace `PipelineCompatibilityToken(0)` with `kExplicitPCT`
2025-02-18 yulong.fs fix memory address value passed to emwgpuDelete()
2025-02-18 dsinclair [spirv-reader][ir] Implement OpConvertFToU
2025-02-18 kainino dawn::DynamicLib: Leak all DLLs on Windows ASan builds
2025-02-18 dsinclair [spirv-reader][ir] Implement ConvertFToS
2025-02-18 petermcneeley Fix for assignment outside the range of representable type
2025-02-18 kainino Refactor TINT_ASAN_ENABLED into common DAWN_ASAN_ENABLED()
2025-02-18 gman Add a trace option to the Metal Backend
2025-02-18 dawn-autoroll Roll ANGLE from ba3dcfa4670d to 8dda514cb833 (3 revisions)
2025-02-18 dsinclair Mark function unused.
2025-02-18 dawn-autoroll Roll DirectX Shader Compiler from 20950d662f4d to 6b68f3b5832c (1 revision)
2025-02-17 dawn-autoroll Roll ANGLE from e0332c861004 to ba3dcfa4670d (1 revision)
2025-02-17 dawn-autoroll Roll vulkan-deps from 2a09ac22553e to 5d08bc0b0e23 (6 revisions)
2025-02-17 yulong.fs fix buffer destroy
2025-02-17 dawn-autoroll Roll ANGLE from 51d2561b5a6b to e0332c861004 (1 revision)
2025-02-17 lehoangquyen D3D: remove dead code used by the old external image API
2025-02-16 dawn-autoroll Roll Depot Tools from 77a800d7294d to 7a0dbd207449 (59 revisions)
2025-02-16 jiawei.shao Enable creating pipeline layout with null bind group layout by default
2025-02-16 dawn-autoroll Roll vulkan-deps from 2365826a66b2 to 2a09ac22553e (1 revision)
2025-02-15 dawn-autoroll Roll vulkan-deps from cc6490ed63e7 to 2365826a66b2 (5 revisions)
2025-02-15 dawn-autoroll Roll ANGLE from bef478f54e6e to 51d2561b5a6b (2 revisions)
2025-02-15 jie.a.chen Fix CooperativeMatrix extension index
2025-02-14 dawn-autoroll Roll ANGLE from 7afa2345f8d2 to bef478f54e6e (3 revisions)
2025-02-14 dsinclair [spirv-reader][ir] Register names instead of using new
2025-02-14 dsinclair [spirv-reader][ir] Support OpBranchConditional after OpSelectionMerge
2025-02-14 dawn-autoroll Roll vulkan-deps from 5cc3a63e8fdb to cc6490ed63e7 (5 revisions)
2025-02-14 gman Emit WGSL errors as part of GPUValidationError
2025-02-14 jimblackler [Kotlin] Update template now WGPUChainedStructOut has been removed.
2025-02-14 dawn-autoroll Roll ANGLE from cd7f92e1ed57 to 7afa2345f8d2 (6 revisions)
2025-02-13 petermcneeley Substitute overrides in IR (vk)
2025-02-13 shaoboyan [Spirv] Remove clamp_frag_depth attribute in Options
2025-02-13 dsinclair [spirv-reader][ir] Handle OpBranch instruction
2025-02-13 jrprice [ir] Add builtin struct support to the protobuf
2025-02-13 rharrison [tint][ir][val] Check Samplers & Textures address space
2025-02-13 jrprice [tint] Add flag for WGSL internal structures
2025-02-13 rharrison [tint] Replace unsafe casting with shift & mask in eval.cc
2025-02-13 rharrison [tint] Narrow warning suppression in table_data.h
2025-02-13 bajones Loosen Viewport validation requirements
2025-02-13 shrekshao [Compat] Add compat-min-es31 tags in expectations
2025-02-13 gman Remove old subgroups from dawn.node
2025-02-13 dawn-autoroll Roll ANGLE from 19c5293e1347 to cd7f92e1ed57 (9 revisions)
2025-02-13 dsinclair [spirv-reader][ir] Add names for functions and function parameters.
2025-02-13 dsinclair [spirv-reader][ir] Support names.
2025-02-13 dsinclair [spirv-reader][ir] Fixup mixed sign binary methods.
2025-02-13 dawn-autoroll Roll vulkan-deps from a88fd25a6a0d to 5cc3a63e8fdb (17 revisions)
2025-02-13 dsinclair Add suppressions for compat failures.
2025-02-13 jrprice [spirv] Emit Matrix*SignedComponents operands
2025-02-13 jrprice [tint] Subgroup matrix component types do not have to match
Created with:
roll-dep third_party/dawn
Bug: chromium:345261080
Change-Id: I9ee360934bcbd838d682ffabe5029cc7baecec9b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6333617
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
cb81b2b2
|
2025-02-27T16:52:29
|
|
Set mMappedState offset and size to actual mapped offset + size
Bug: angleproject:383356846
Change-Id: I68a4b4d3cb4c29071c9fb593b19fb55ded010950
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6308949
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Liza Burakova <liza@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
bc40362b
|
2025-02-18T13:24:31
|
|
Add line loop emulation for draw arrays
Bug: angleproject:383356846
Change-Id: I43f4835e17ecb2401418f77555fd70332612e1bf
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6090912
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Liza Burakova <liza@chromium.org>
Reviewed-by: Matthew Denton <mpdenton@chromium.org>
|
|
91deaea3
|
2025-02-13T13:57:37
|
|
Roll third_party/dawn/ 1eca38fa5..8119dbd27 (1982 commits; 30 trivial rolls)
https://dawn.googlesource.com/dawn.git/+log/1eca38fa5236..8119dbd27471
$ git log 1eca38fa5..8119dbd27 --date=short --no-merges --format='%ad %ae %s'
2025-02-12 zhuangxu Set MacOS deployment target to 11.0 when building with CMake
2025-02-12 dsinclair Revert "Remove stale WebGPU Compat CTS expectations"
2025-02-12 rharrison [tint][ir][fuzz] Add missing capability to tint::hlsl::writer::IRFuzzer
2025-02-11 shrekshao [Compat] Remove gles min31 end2end suppressions
2025-02-11 shrekshao [Compat] Fix toggle string for UseBlitForRG11B10UfloatTextureCopy
2025-02-11 rharrison [tint][ir][val] Add operand and result checks for MemberBuiltinCall
2025-02-11 rharrison [tint][ir][val] Check InstructionResult->Instruction is inst
2025-02-11 jrprice [node] Support subgroupMatrixConfigs query in dawn.node
2025-02-11 jrprice [vulkan] Enable subgroup matrix feature
2025-02-11 ynovikov Remove stale WebGPU Compat CTS expectations
2025-02-11 ynovikov Remove stale WebGPU CTS expectations
2025-02-11 dawn-autoroll Roll ANGLE from e746fb068fd3 to 19c5293e1347 (5 revisions)
2025-02-11 jrprice [metal] Enable subgroup matrix feature
2025-02-11 jrprice [dawn] Add SubgroupMatrixConfigs to adapter info
2025-02-11 kylechar Skip setting Vulkan object labels
2025-02-11 dsinclair [spirv-reader][ir] Add derivative operations.
2025-02-11 lehoangquyen D3D11: skip waiting on the fence that is owned by the same queue.
2025-02-11 dawn-autoroll Roll vulkan-deps from cd5e835851d1 to a88fd25a6a0d (8 revisions)
2025-02-11 dsinclair [spirv-reader][ir] Cleanup duplicate argument code.
2025-02-11 jrprice [dawn] Add feature for subgroup matrix extension
2025-02-11 dsinclair [spirv-reader][ir] Add support for `OpAny`.
2025-02-11 dsinclair [spirv-reader][ir] Add support for `OpAll`
2025-02-11 dsinclair [spirv-reader][ir] Add support for `OpBitReverse`.
2025-02-11 cwallez [tint] Make type::BindingArray use ArrayCount
2025-02-11 rharrison [tint][ir][val] Add additional checking to builtin calls
2025-02-11 dsinclair [spirv-reader][ir] Support `OpBitFieldUExtract`.
2025-02-11 lehoangquyen D3D11: return error if D3D feature level < 11.0
2025-02-11 shaoboyan Dawn Native: Setup ClampFragDepth offset in Vulkan Backend
2025-02-10 dawn-autoroll Roll ANGLE from c4caed5f649d to e746fb068fd3 (8 revisions)
2025-02-10 gman Compat: Fixup Device Limits
2025-02-10 dsinclair [spirv-reader][ir] Support `OpBitFieldSExtract`.
2025-02-10 dsinclair [spirv-reader][ir] Support `OpBitFieldInsert`.
2025-02-10 brandon1.jones Add Missing Synchronization For D3D12 Shared Buffers
2025-02-10 ynovikov Skip more textureSample tests on WebGPU CTS compat Android
2025-02-10 cwallez [dawn][frontend] Fix error message when @group > maxBindGroups
2025-02-10 dawn-autoroll Roll SwiftShader from 5017ce3c800e to 720189cae847 (1 revision)
2025-02-10 titouan Include tint fuzzers in high-end fuzzer build.
2025-02-10 dsinclair [spirv-reader][ir] Support `OpBitCount`.
2025-02-10 dawn-autoroll Roll ANGLE from 38aa0780bb36 to c4caed5f649d (28 revisions)
2025-02-10 jrprice [spirv] Require Vulkan Memory Model when fuzzing subgroup matrices
2025-02-10 jwata infra: Add project property to $build/siso
2025-02-10 dawn-autoroll Roll vulkan-deps from b4c8dd090b72 to cd5e835851d1 (1 revision)
2025-02-09 ynovikov Skip textureSample tests on WebGPU CTS compat Android
2025-02-09 dawn-autoroll Roll vulkan-deps from dbe0a14ab512 to b4c8dd090b72 (1 revision)
2025-02-08 ynovikov Remove stale WebGPU Compat CTS expectations
2025-02-08 ynovikov Remove stale WebGPU CTS expectations
2025-02-08 ynovikov Generalize Linux NVIDIA WebGPU CTS expectation
2025-02-07 dawn-autoroll Roll vulkan-deps from c32804ca5a39 to dbe0a14ab512 (9 revisions)
2025-02-07 shrekshao [Compat] fix glsl name collisions between stages for handle
2025-02-07 shrekshao Compat suppress min es31 failure tests
(...)
2024-08-15 rharrison [tint][ir][val] Improve checks on Returns
2024-08-15 petermcneeley [tint] Minor follow-up fix for insert before
2024-08-15 dawn-autoroll Roll ANGLE from 2003e06230b1 to 83ca89e58cef (6 revisions)
2024-08-15 dsinclair Allow marking expectations as INVALID.
2024-08-15 bsheedy Suppress additional Linux/NVIDIA failures
2024-08-15 chouinard Generate missing hlsl e2e tests
2024-08-15 petermcneeley [tint] MSL texture array negative integer clamp
2024-08-15 dsinclair Remove the CTS cache code
2024-08-15 amaiorano Generated missing tint e2e tests for ir.dxc.hlsl
2024-08-15 jiawei.shao Tint: Add validations on the type of `clip_distances`
2024-08-15 dawn-autoroll Roll ANGLE from 6fddb18d77a3 to 2003e06230b1 (6 revisions)
2024-08-15 jiawei.shao Tint: Add WGSL extension and built-in variable `clip_distances`
2024-08-15 jiawei.shao Remove `DeviceBase::ForceSetToggleForTesting`
2024-08-15 jiawei.shao Rename `BufferBase::GetUsage` and `BufferBase::GetUsageExternalOnly`
2024-08-15 bsheedy Suppress 16" Macbook failures
2024-08-14 rharrison [tint][ir][val] Check swizzles are well formed
2024-08-14 chouinard [tint] Implement quadSwapX, Y and Diagonal
2024-08-14 amaiorano [hlsl] Emit mip level 0 for storage textures
2024-08-14 amaiorano Regen ir.fxc.hlsl files
2024-08-14 jrprice [benchmark] Add --check-stale option
2024-08-14 dawn-autoroll Roll vulkan-deps from c297ee8a1d20 to 7660e21e64db (3 revisions)
2024-08-14 amaiorano Fix DXC roll
2024-08-14 dawn-autoroll Roll ANGLE from 5967afe70699 to 6fddb18d77a3 (3 revisions)
2024-08-14 dneto [tint] validate clamp const low <= const high when first arg is runtime-eval
2024-08-14 chouinard [tint] Implement quadBroadcast
2024-08-14 dawn-autoroll Roll ANGLE from fdd26da99a12 to 5967afe70699 (6 revisions)
2024-08-14 jrprice [benchmark][msl] Flatten bindings
2024-08-14 jrprice [benchmark] Split generated shaders into multiple lines
2024-08-14 jiawei.shao Don't check adapter nullability in the constructor of DeviceBase
2024-08-14 jrprice [benchmark] Generate map directly
2024-08-14 jrprice [benchmark] Convert SPIR-V when generating header
2024-08-14 jrprice [benchmark] Check in the generated header
2024-08-14 jrprice [benchmark] Remove spv_reader and wgsl_writer deps
2024-08-13 enga Add DeviceGetAdapter and AdapterGetInstance to client_side_commands
2024-08-13 jrprice [benchmark] Don't convert SPIR-V to WGSL at init
2024-08-13 rharrison [tint][ir][val] Check disards in validator
2024-08-13 chouinard [tint] Implement subgroupShuffleXor, Up and Down
2024-08-13 senorblanco Fix texture-only arg in combine samplers transform.
2024-08-13 jrprice [spirv] Remove ast_generate_bindings
2024-08-13 dawn-autoroll Roll vulkan-deps from 77d583f37170 to c297ee8a1d20 (3 revisions)
2024-08-13 jrprice [tint] Remove the quantizeToF16 AST polyfill
2024-08-13 jrprice [spirv] Remove AST backend
2024-08-13 jrprice [loopy] Switch to IR version of SPIR-V backend
2024-08-13 shrekshao [Compat] Use @size attribute for glsl pad struct
2024-08-13 jrprice Reland "[tint][benchmark] Generate depfile for inputs"
2024-08-13 jrprice [spirv] Move E2E expectations to default paths
2024-08-13 jrprice [spirv] Remove AST E2E expectations
2024-08-13 jrprice [tint] Only allow --use-ir with WIP IR backends
2024-08-13 dawn-autoroll Roll ANGLE from f8fc8ac36280 to fdd26da99a12 (4 revisions)
2024-08-13 dawn-autoroll Manual roll vulkan-deps from a5d4d42457c3 to 77d583f37170 (8 revisions)
Created with:
roll-dep third_party/dawn
Bug: angleproject:396213611
Change-Id: I124bbd59dccd14d8609c37ef62ccdd4455897b2c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6270256
Auto-Submit: Yuly Novikov <ynovikov@chromium.org>
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
cfb430c8
|
2025-02-10T13:19:05
|
|
Remove angle::ErrorStream helper
Most uses of the helper either use just the code or a fixed string,
which compiles to a few instructions. Using this helper adds 200+ bytes
of assembly to each use, due to the unneeded instantiation of
ostringstream which allocates a buffer etc. The combined effect of this
CL on an Android perf build is ~12KB (0.2%) reduction in size.
The cases where the message is actually formatted are converted to an
explicit use of ostringstream. Removing the helper so that the new code
is explicit about the intent to use ostringstream, or an alternative way
to format the message.
Discovered accidentally while looking into size reduction due to
__builtin_unreachable()
Semi-automated code change, risk of copy-paste mistakes should be
minimal.
Bug: angleproject:394129077
Change-Id: I47c2642d750d31416b08a1cfa435d5463c294e35
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6250078
Commit-Queue: Roman Lavrov <romanl@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
|
|
e746fb06
|
2025-01-23T13:23:30
|
|
WebGPU: Implement blending
Constant alpha is not handled yet. It needs to be emualted or added
to WebGPU.
Bug: angleproject:370690274
Change-Id: I5f8402f74ab08345b2f02c18e2d43fa39b2479a7
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6194554
Reviewed-by: Liza Burakova <liza@chromium.org>
Reviewed-by: Matthew Denton <mpdenton@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
9f8d7cc2
|
2025-01-23T13:27:19
|
|
WebGPU: Stream incompatible vertex and index data.
Support reading back index and vertex buffers to stream incompatible
source data. For now this includes:
* Non-multiple-of-4 stride vertex data
* Stride not a multiple of the type size
* Unsigned byte indices
Fix fallback formats so that all GLES formats have a fallback.
Fix CopyToFloatVertexData writing the alpha channel as Float32One
with a static_cast which converted Float32One (an integer) to a
float instead of bit-casting.
Bug: angleproject:368602384
Change-Id: I7eb1ba7ad1ec4292060c18de22f5948136cbb0a3
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6194556
Reviewed-by: Liza Burakova <liza@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
40523499
|
2025-01-29T12:13:45
|
|
WebGPU: Emulate line loops for drawElements
Bug: angleproject:383356846
Change-Id: I82a6dfad4a1c5d434f029701611e4b61344655f8
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6086120
Commit-Queue: Liza Burakova <liza@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
885a8060
|
2025-01-24T12:27:10
|
|
WebGPU: Implement depth/stencil test.
Force the compare function to Always when depth or stencil tests are
disabled.
Bug: angleproject:392604945
Change-Id: I67265b2e5eabe8e9fc3d1222140ee1b6a7c5cefa
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6198040
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Liza Burakova <liza@chromium.org>
|
|
bec97bbb
|
2025-01-23T13:29:04
|
|
WebGPU: Flip Y for ReadPixels
ReadPixels results are upside down. Flip the results in the PackPixels
functions.
TODO: Re-evaluate if this needs to be default-FBO only once more tests
are running.
Bug: angleproject:42267090
Change-Id: Ia5e5ee218de2e754f5de02a826f664d2f71efb76
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6194557
Reviewed-by: Liza Burakova <liza@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
a504b6a2
|
2024-11-25T15:59:05
|
|
Support GL_OES_required_internalformat
Enable GL_OES_required_internalformat GLES extension.
Bug: angleproject:364069034
Change-Id: Ia57548469abff189472aa20b13ca99179c45f2c0
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6038448
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Panfeng Hou <panfeng.hou@arm.com>
|
|
a41b798e
|
2024-11-21T11:07:34
|
|
WebGPU: Ensure mDefaultBindGroup is created
mDefaultBindGroup would not be created if the program has no uniforms
because they are not dirty. Mark all stages as dirty after linking.
Bug: angleproject:376553328
Change-Id: I1663791fa1642be052948c5acb8e403fa8b844f9
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6039006
Reviewed-by: Matthew Denton <mpdenton@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
4a835cf2
|
2024-11-01T13:31:00
|
|
WebGPU: send uniforms to GPU for use in shader
Basic uniforms should now be accessible in the shader during a draw
call, rather than just via glGetUniform*().
This is unoptimized and creates a new GPU-side copy of all the uniforms,
every time any uniform changes.
This sets up the bind group layout for a pipeline and sets the bind
groups in the renderer pass. Right now these bind groups only contain
the default uniform blocks, but in the future will need to contain
textures, samplers, and non-default uniform blocks (UBOs).
Bug: angleproject:376553328
Change-Id: I50891b81ab2ee374d674213257f76319c0222120
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5980972
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Liza Burakova <liza@chromium.org>
Commit-Queue: Matthew Denton <mpdenton@chromium.org>
|
|
4397ff2f
|
2024-10-25T16:55:30
|
|
Metal: SeparateCompoundStructDeclarations fails validation
Consider GLSL:
struct S { int i; } s;
s=s;
SeparateCompoundStructDeclarations would rewrite this to:
struct S { int i; };
S s';
s=s;
The interm rewrite would rewrite the specification and declaration of s,
but not the use sites. The use sites would use the old type, and thus
something that was not in the tree anymore. This would fail the
validation.
This kind of bug was previously fixed for SeparateDeclarations
in commit 18fa02bebf901dd8501de3176f6052ae4ce984be.
Fix by adding the logic to SeparateDeclarations, as it is already
doing almost the exact task, separating `struct S { ..} a, b`.
The separation is tested in GLSLTests.StructInShader and various
other draw tests. These pass with MSL, but these would also fail
validation if that was enabled.
Bug: angleproject:375523825
Change-Id: I1697103d0ba47616dbd3159f36f9e71cb2831c4b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5964899
Auto-Submit: Kimmo Kinnunen <kkinnunen@apple.com>
Commit-Queue: Kimmo Kinnunen <kkinnunen@apple.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
37dd8e92
|
2024-09-20T17:49:11
|
|
WebGPU: Stream client arrays
Add support for vertex attributes and index data without buffer
backings. Stream the data to buffers at draw time.
Bug: angleproject:368602384
Change-Id: I697b7882cdebf0dfab08fcffabd2d36048920547
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5878137
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
c94c37c1
|
2024-09-23T17:22:27
|
|
WebGPU: Skip ReadPixels if texture creation failed
If texture creation failed due to an unsupported format,
ReadPixels would crash calling a null conversion function.
Mark this case as UNIMPLEMENTED for now.
Bug: angleproject:42266974
Change-Id: Ifa34d9db3d0d14e8e382c2323b4e70d2b1a7d2a9
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5889090
Reviewed-by: Liza Burakova <liza@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
b16d105f
|
2024-10-03T10:25:32
|
|
Remove Desktop GL front-end support
For Desktop GL applications, please use Zink!
Bug: angleproject:370937467
Change-Id: Ie734634bb62a2e98c80e1b32d8b3d34624da3c04
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5905428
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
be8cc064
|
2024-10-02T15:12:42
|
|
DisplayWgpu: Remove wgpu::FeatureName::SurfaceCapabilities
This feature used to allow querying the wgpu::TextureUsage allowed with
a wgpu::Surface. This is no longer necessary to have as an extension
since wgpu::Surface supports this capability by default (after it was
made a replacement of wgpu::SwapChain).
Remove the now useless mention of this feature that was blocking the
removal of the feature's code from Dawn.
Bug: b/42241264
Change-Id: Ia097f2f6077fa655a2b4b495cdcf3f1fa5f23d55
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5904059
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
6cd8a2db
|
2024-09-20T14:01:17
|
|
WebGPU: Use SurfaceTexture instead of SwapChain.
The SwapChain api is deprecated.
Bug: angleproject:342213844
Change-Id: I664d09eb0a0e8bca2ad73d9362f1f754f4dfbc7b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5873858
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
|
|
0b610712
|
2024-09-20T12:00:17
|
|
WebGPU: Sync index buffers, add indexed draw calls
Bug: angleproject:368600230
Change-Id: Ibf1c4921635b525b7650e70ce7dc939e2bad2ebb
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5828229
Reviewed-by: Liza Burakova <liza@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
b563ede4
|
2024-09-20T20:30:21
|
|
WebGPU: initDefaultUniformBlocks outside of an ASSERT
initDefaultUniformBlocks was not being called in release builds and
crashing when attempting to read the uniform layout info.
Bug: angleproject:42267100
Change-Id: I9e13ffee1260e4f30aed24c7bfa9e767639a5c2b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5878925
Reviewed-by: Matthew Denton <mpdenton@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
bb14aa4d
|
2024-09-19T11:17:05
|
|
WebGPU: set vertex buffers.
This change actually sets the vertex attributes that are added to the
render pipeline description owned by the context, as well as sets
the vertex buffer in the pipeline.
Bug: angleproject:359823692
Change-Id: I5e94b357a4e6eadc1bbba54965cef94f90113b4e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5789155
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Liza Burakova <liza@chromium.org>
|
|
7e462c22
|
2024-09-17T15:32:41
|
|
WGPU: Implement SetUniform() enough so GetUniform() works
Lays out a shadow buffer for basic uniforms per-shadertype
in std140, which is close to matching WGPU's layout. This
does not actually pass the buffer to WGPU as a uniform
buffer. GetUniform() just reads from the shadow buffer.
This is copied from the VK backend and so some code is
deduplicated.
Bug: angleproject:42267100
Change-Id: I727dc9e09a7ccabbb617f148dd68590469883b07
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5867444
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Matthew Denton <mpdenton@chromium.org>
Reviewed-by: Liza Burakova <liza@chromium.org>
|
|
ca2e588b
|
2024-09-12T14:20:33
|
|
WebGPU: Add support for depth/stencil clears
This CL also adds helper methods to create webgpu depth/stencil
attachments for a render pass descriptor, as well as depth/stencil
attachment images.
Bug: angleproject:42267012
Change-Id: Iebef99ba34db2e50f56449d0737b3dbb03b90f2e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5750001
Commit-Queue: Liza Burakova <liza@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Matthew Denton <mpdenton@chromium.org>
|
|
8c12874c
|
2024-09-12T11:26:29
|
|
vulkan: add double buffer swapchain for fifo mode.
Double buffer swapchain usually drop the performance.
But at B* the default fps cap for silver device still at 30fps.
This change is for reduce latency.
Bug: b/311022968
Change-Id: Ida4044f439bbe3f235d53f5d1d2f945533cbb094
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5858255
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
c2a9300c
|
2024-09-10T19:33:33
|
|
WGSL: Rewrite input/output variables
GLSL builtin variables and in/out variables correspond to WGSL's main
function params and return value, so rewrite them accordingly.
This is done by generating structs to use as main function params and
return values, generating similar global structs, and copying the
former into the latter so the rest of the program can just use the
variables stored in the global structs.
Bug: angleproject:42267100
Change-Id: Ic3e1196f6fb95b963ce03845096a59ea7599d608
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5835347
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Matthew Denton <mpdenton@chromium.org>
|
|
84492ff3
|
2024-09-10T13:11:07
|
|
Sync vertex attributs in VertexArrayWgpu.
This change only sets vertex attributes within VertexArrayWgpu and
sets them in the render pipeline description owned by the context.
It does not yet set attributes in the output pipeline created in
CreatePipeline, as vertex buffers are also not set yet.
Bug: angleproject:359823692
Change-Id: I1c3848e15d790026d53d4ab5614b1125f773e06a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5781788
Commit-Queue: Liza Burakova <liza@chromium.org>
Reviewed-by: Matthew Denton <mpdenton@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
8522e835
|
2024-08-26T20:46:45
|
|
WebGPU: Avoid poping error scopes too many times
The ErrorScope RAII wrapper would pop the webgpu error scope
multiple times if the explicit PopScope funciton was called before
the destructor.
Bug: angleproject:362191737
Change-Id: I8caa7ab39addf03bc09a7cce517cde800c91653c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5815568
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Matthew Denton <mpdenton@chromium.org>
|
|
e10e31ed
|
2024-08-26T12:56:42
|
|
WebGPU: Add error handling macros for debugging.
Add a ANGLE_WGPU_SCOPED_DEBUG_TRY to create an error scope, execute
some commands and pop the scope in builds with assertions enabled.
A follow-up with full error handling at frame boundaries is still
needed.
Bug: angleproject:362191737
Change-Id: I4af9e1587f6d70bf14a3f6435b487e26424624ef
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5813006
Reviewed-by: Matthew Denton <mpdenton@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
b36d94dc
|
2024-08-02T16:23:03
|
|
WebGPU: Implement viewport and scissor
Tested using samples. dEQP tests covering viewport and scissor require
more shader translation to be completed.
Bug: angleproject:0
Change-Id: Ia76f2edeea5a07af1881704a21fafb64ab7df43a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5756127
Reviewed-by: Liza Burakova <liza@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
27c0f10a
|
2024-08-06T11:12:32
|
|
WebGPU: Generate texture formats when initializing surfaces.
Bug: angleproject:344814096
Change-Id: I873c6308e9c203fd759ccbf5a378056f2aca849c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5763218
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Liza Burakova <liza@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
057bc0f0
|
2024-08-07T11:38:54
|
|
WebGPU: Set multiple parameters in RenderPipelineDesc.
This change adds multiple setters to RenderPipelineDesc to set
various parameters within the DepthStencilState.
Bug: angleproject:42267012
Change-Id: I71eed7195477572295de6575bfa18d2c58ca93de
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5765553
Reviewed-by: Matthew Denton <mpdenton@chromium.org>
Commit-Queue: Liza Burakova <liza@chromium.org>
|
|
3e4fa128
|
2024-08-05T16:20:30
|
|
Store ImageHelper's queue by mip levels.
This change converts ImageHelper's mSubresourceQueue to store
a vector of updates for each mip level. This allows updates
to be flushed per mip level.
This also adds a call in the RenderTargetWgpu to flush updates
such that now when a framebuffer is flushing updates to
color attachments the associated render target ensures that
only updates associated with its mip level are flushed.
Bug: angleproject:42267012
Change-Id: I1abdbc842cf18b1bd897037bf11aeea9c6d09e14
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5759469
Reviewed-by: Matthew Denton <mpdenton@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Liza Burakova <liza@chromium.org>
|
|
c5d4c16f
|
2024-08-02T11:27:56
|
|
WebGPU: Initialize all GLES 2 and 3 caps
Instead of using the min caps, intialize them with limits from the
WebGPU limits struct or values from the spec.
Bug: angleproject:357017322
Change-Id: I15597b192d915dad7c3f6bacab048cf09999da6d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5759280
Reviewed-by: Liza Burakova <liza@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
31c0f439
|
2024-08-02T09:18:33
|
|
WebGPU: Centralize caps generation
All GL and EGL caps can be generated at display creation time for
WebGPU. Move all existing logic into a centralized GenerateCaps
function.
Bug: angleproject:357017322
Change-Id: I7398d4ee539192d64971023d9a598ac1f11592ad
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5759279
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Liza Burakova <liza@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
59f6d962
|
2024-07-30T21:36:00
|
|
WebGPU: Run dEQP GLES2 tests.
Add the flags and platform support needed to initialze the WebGPU
backend.
Set up initial test expectations with broad suppressions.
Current pass rate: 14.27%
Bug: angleproject:356399840
Change-Id: I1339cd978ca75b59a2e99ee81d93981dc6066f36
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5751601
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
279c69e5
|
2024-07-30T21:30:54
|
|
WebGPU: Fix intended/actual format mismatch for textures
Update WebGPU texture allocation size to use the actual format instead
of intended. Early-out with an UNIMPLEMENTED if the format is not
supported yet.
Bug: angleproject:356399840
Bug: angleproject:344814096
Change-Id: Idef9ad40c6b1d490964fc398fb077b117612a44b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5748448
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
cab7d1b6
|
2024-07-30T21:19:15
|
|
WebGPU: Obey buffer alignment rules
WebGPU buffers require a size aligned to 4 bytes and map buffer offsets
aligned to 8 bytes. Hide this requirement in The BufferHelper class by
doing the apropriate offsets during buffer creation and map calls.
This allows many dEQP tests to run without crashing due to WebGPU
buffer creation errors.
Bug: angleproject:356399840
Bug: angleproject:42267091
Change-Id: Id71c3b5db31aa712d5a88631efa4897d6205a41d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5748443
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
641bc04a
|
2024-07-30T21:25:44
|
|
WebGPU: Use the correct source format for ReadPixels
ReadPixels was using the format of the destination buffer which works
correctly for RGBA8 -> RGBA/UNSIGNED_BYTE but runs the wrong conversion
functions for other formats.
Bug: angleproject:356399840
Bug: angleproject:42267090
Change-Id: I7c46add3f643017f454136135afef697847a2383
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5748446
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
9da7fb15
|
2024-07-30T21:21:45
|
|
WebGPU: Don't log all renderpass closure reasons
This logging line spams the console excessively. For now, just make
sure there is a message associated with each renderpass closure reason.
Bug: angleproject:356399840
Change-Id: I2313d439837ffb11f11cd56194511e80fb312eba
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5748444
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
1953c606
|
2024-07-30T21:28:13
|
|
WebGPU: Fix ReadPixels from window surfaces.
The intended/actual formats were not initialized in this code path and
the created swap chain texture did not have the usage flags needed for
copying to a buffer for ReadPixels.
Bug: angleproject:356399840
Bug: angleproject:42267090
Change-Id: I8e4279eedb2b23f0d2ed690ccee086ae115969c3
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5748447
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
0898dab0
|
2024-07-30T21:34:00
|
|
WebGPU: Skip primitive topology conversion for DrawArrays
For non-indexed draw calls, no index format is needed for the
stripIndexFormat.
Bug: angleproject:356399840
Change-Id: Ie2c9805a2c257d94ea5f1bca026287873e4d6781
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5748449
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
8446bbd6
|
2024-07-30T21:22:50
|
|
WebGPU: Remove ASSERT in depth/stencil clears
Instead of asserting that we are not clearing depth or stencil, just
log an UNIMPLEMENTED and skip the call. This allows many dEQP tests to
run without crashing on the ASSERT.
Bug: angleproject:356399840
Change-Id: Icfe7a77d7128e679501da42023601217c7b0e6c8
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5748445
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
4f498eaa
|
2024-07-24T14:31:23
|
|
WebGPU: Add more format support
This CL adds a new FormatTable class that initializes webgpu texture
and vertex formats. It also adds this class to the display so it can
be used in the ImageHelper.
This CL changes the previously hardcoded RGBA8 texture format that
was initially used when creating textures to use the format passed
into the methods.
Bug: angleproject:344814096
Change-Id: I768b85335329116496dbf721aac54d1137aaae9f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5660397
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Liza Burakova <liza@chromium.org>
|