|
34faa3db
|
2025-02-08T15:17:10
|
|
Fix issue that stride setting is incorrect when rotation is true
When rotateXY is true, stride should increase or decrease
on the Y axis.
Bug: angleproject:395131251
Change-Id: I0f5363c9952ccdf0a036499a9f918853eff7cd10
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6242496
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
Auto-Submit: Robic Sun <Robic.Sun@arm.com>
|
|
3972cfa1
|
2025-02-18T19:52:06
|
|
YUV should support on all the shader stages
* The spec requires all shader stages should support YUV. Therefore,
move YUV related functions out of the switch.
* Add a new end2end test that sampling YUV in the vertex shader.
Bug: angleproject:391919465
Change-Id: I7811d419d5f1461c2499c522a902c3b2149289a1
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6263325
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
ba174a76
|
2025-02-19T16:35:15
|
|
Vulkan: Bugfix for nullColorAttachmentWithExternalFormatResolve
When nullColorAttachmentWithExternalFormatResolve is VK_TRUE,
* The imageView in VkRenderingAttachmentInfo for dynamic rendering
should be VK_NULL_HANDLE.
* Push YUV resolveImageView as if it is the color attachment to ensure
the coherency between ops, clearValues and attachmentViews for both
dynamic rendering and render pass objects. Then pack the YUV resolve
information first as well.
* Add end2end tests that render and clear YUV with a depth attachment.
Bug: angleproject:395212980
Change-Id: I8b6173b41723ed7dc12359e181791fb1ac22fc41
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6262510
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
|
|
f9566385
|
2025-02-06T00:00:00
|
|
Fix GetBooleani_v validation
That entrypoint must require OpenGL ES 3.1.
Fixed: angleproject:394610814
Change-Id: I9ee80d1497afadfdc0d714e49bb97b741ad57b63
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6243878
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
|
|
be98f841
|
2024-11-30T02:11:05
|
|
Implicitly end PLS for framebuffer reads and writes
In preparation for removing the PLS allow list, convert more problematic
methods to the new paradigm of implicitly ending PLS instead of
generating errors.
Also simplify the disable logic for framebuffer modifications, and just
blindly disable PLS for framebuffer updates, regardless of whether it's
GL_READ_FRAMEBUFFER or GL_DRAW_FRAMEBUFFER.
Bug: angleproject:40096838
Change-Id: Ie4390a219f5f05ef0a3d00f405d4914592726283
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6077335
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
22dfe435
|
2025-02-20T06:46:07
|
|
Revert "Add GL_BGRA_EXT as a sized renderable format"
This reverts commit 80093a7d8f850c3ab551ddb4972c2f1f27511433.
Reason for revert: suspect for blocking rolling ANGLE into Chroimum
https://chromium-review.googlesource.com/c/chromium/src/+/6283973
https://ci.chromium.org/ui/p/chromium/builders/try/chromeos-amd64-generic-rel-gtest/372754/overview
Original change's description:
> Add GL_BGRA_EXT as a sized renderable format
>
> dEQP tests were updated to cover GL_BGRA_EXT as a sized renderable
> format. It was apparently always supposed to be, based on the
> wording of the spec.
>
> This CL adds that support and updates expectations, along with a few
> extra tests.
>
> Includes contributions from Robic.Sun@arm.com.
>
> Test: angle_end2end_tests, angle_deqp_*_tests
> Bug: b/42267264
> Bug: angleproject:394384906
> Change-Id: Ia10bcd61f66c5d99a3d27a2cfd6008c991ddcaa7
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6235444
> Reviewed-by: Geoff Lang <geofflang@chromium.org>
> Commit-Queue: Cody Northrop <cnorthrop@google.com>
> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Bug: b/42267264
Bug: angleproject:394384906
Change-Id: I64572361cfed33b4ea17eabf278f580471d045c2
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6285628
Auto-Submit: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
80093a7d
|
2025-02-03T08:50:21
|
|
Add GL_BGRA_EXT as a sized renderable format
dEQP tests were updated to cover GL_BGRA_EXT as a sized renderable
format. It was apparently always supposed to be, based on the
wording of the spec.
This CL adds that support and updates expectations, along with a few
extra tests.
Includes contributions from Robic.Sun@arm.com.
Test: angle_end2end_tests, angle_deqp_*_tests
Bug: b/42267264
Bug: angleproject:394384906
Change-Id: Ia10bcd61f66c5d99a3d27a2cfd6008c991ddcaa7
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6235444
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
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>
|
|
d252425d
|
2025-02-06T14:51:36
|
|
Vulkan: Check source image usage flags in copy paths
... instead of the format feature flags. If the source of the copy is
has external format (allowed with glCopy[Sub]TextureCHROMIUM), the
format feature checks are unable to query the format features. However,
the image usage flags already have the required information (whether the
image can be copied from, sampled from, etc).
Bug: chromium:383056998
Change-Id: I2ba8820751eb526ef497a8be724193276fd46160
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6238265
Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
Reviewed-by: Charlie Lao <cclao@google.com>
Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
|
|
b5584cfd
|
2025-02-05T15:14:52
|
|
ValidTexLevelDestinationTarget should add external related cases
GL_TEXTURE_EXTERNAL_OES is not documented in OES_EGL_image_external
spec, but we consider that to be an omission in the spec.
Bug: angleproject:394380758
Change-Id: Idb5523c173ae0a5910af97639dadff3c5adf9fdf
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6232504
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Alexey Knyazev <lexa.knyazev@gmail.com>
|
|
eaf06ea7
|
2025-02-06T13:58:07
|
|
Vulkan: Bugfix in resolvePrecisionMismatch(...)
Early-return if a varying is not active in either the front or back
shader
Bug: angleproject:386749841
Test: GLSLTest.MismatchedInactiveVarying*
Change-Id: Ie0c6dfd6616afcb94bec043d36d4f8188df8abb3
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6239031
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: mohan maiya <m.maiya@samsung.com>
|
|
82e25a32
|
2025-02-03T15:07:33
|
|
Make all " < 0" error messages consistent
Use the form:
Error is due to reason: <error message>
Bug: angleproject:392938089
Change-Id: I9e72858cf76a46ab874ffc211afdae1eb93ca05d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6225600
Auto-Submit: Kimmo Kinnunen <kkinnunen@apple.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
9c6af5ce
|
2025-02-04T22:50:01
|
|
Vulkan: Fix crash in SPIR-V transform with varying precision fix
Bug: angleproject:386749841
Change-Id: I5743eb049dde6c8a093b175e857251bad9b2bc9a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6232948
Commit-Queue: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
|
|
aa94da02
|
2025-02-04T12:41:36
|
|
Revert "Vulkan: Bugfix in SPIRV entrypoint transformation"
This reverts commit 9975e80b9d98a2158ae859b3f4eff7340baa540d.
Reason for revert: Crashes on platforms with varyingsRequireMatchingPrecisionInSpirv
Original change's description:
> Vulkan: Bugfix in SPIRV entrypoint transformation
>
> Perform varying precision fixer transformation before
> other shader-stage-specific transforms that could
> potentially modify the interfaceList.
>
> Also enhance EXTBlendFuncExtendedDrawTest by enabling
> additional config with VaryingsRequireMatchingPrecisionInSpirv
> feature enabled
>
> Bug: angleproject:386749841
> Change-Id: Ife4a2f932415296f1565527e50a2b8646cd7697d
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6207741
> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
> Commit-Queue: mohan maiya <m.maiya@samsung.com>
Change-Id: I07064136f962a7d73ce5c80289da300d474faa22
Test: professional_baseball_spirits trace
Bug: b/394299327
Bug: angleproject:386749841
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6227993
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
|
|
7d37d970
|
2025-01-30T13:47:59
|
|
Make error messages end in a dot
Some messages had dot and some not.
Fix by adding dot to all error message string literals.
Best effort, for free form string literals, check ANGLE_CHECK invocation
sites only.
Bug: angleproject:392938089
Change-Id: Idedc3fe1d1e186fb91b5e54407df87f6830995a0
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6218460
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
03019646
|
2025-01-29T10:36:38
|
|
Vulkan: Fix invalidate of emulated format followed by more draws
If invalidating a color image with emulated channels, a clear is
automatically staged so the emulated channels don't contain invalid data
later. This is problematic with deferred clears; the clear marks the
framebuffer attachment as dirty, and the next command causes
`FramebufferVk::syncState` to pick the clear up as a deferred clear.
This is normally correct, except if the following command is another
draw call; in that case, the render pass does not close, yet the clear
is cached in `mDeferredClears`. When the render pass later closes, it
undoes the invalidate and attempts to remove the clear from the image...
but it does not exist there anymore (it's in `mDeferredClears`). Next
usage of the image then clears it, undoing the draws after invalidate.
In this case, the simplest approach is to close the render pass right
away here. Note that it is not possible to make
`FramebufferVk::syncState` avoid picking up the clear in
`mDeferredClears`, not apply the clear, _and_ keep the render pass open;
because future uses of the image (like with |glReadPixels|) will not
trigger `FramebufferVk::syncState` and the clear won't be done.
Bug: angleproject:353167428
Change-Id: Ie677bd12d9f11953cdcd5e4c374b59c4f63e7456
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6214331
Commit-Queue: Charlie Lao <cclao@google.com>
Reviewed-by: Charlie Lao <cclao@google.com>
Auto-Submit: 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>
|
|
9975e80b
|
2025-01-28T17:25:38
|
|
Vulkan: Bugfix in SPIRV entrypoint transformation
Perform varying precision fixer transformation before
other shader-stage-specific transforms that could
potentially modify the interfaceList.
Also enhance EXTBlendFuncExtendedDrawTest by enabling
additional config with VaryingsRequireMatchingPrecisionInSpirv
feature enabled
Bug: angleproject:386749841
Change-Id: Ife4a2f932415296f1565527e50a2b8646cd7697d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6207741
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: mohan maiya <m.maiya@samsung.com>
|
|
0f75fc3d
|
2025-01-20T14:10:41
|
|
Vulkan: Transition foreign images to the FOREIGN queue on submit
Vulkan's interaction with AHB and dmabuf images is through the FOREIGN
queue family. When ANGLE uses these images, it must take ownership of
the images by doing a queue family ownership transfer (QFOT) away from
the FOREIGN queue family and into the graphics queue family used by the
Vulkan backend.
Prior to this change, ANGLE would do the QFOT away from FOREIGN once
such a foreign image is imported into an EGL image. Afterwards, usage
in ANGLE works correctly. What ANGLE did not handle is when a foreign
entity wants to use these images _after_ ANGLE has used them.
For the above to work correctly, ANGLE must do a QFOT back into FOREIGN
before the image can be used by the foreign entity. Unfortunately,
EGL does not provide a clear point for this hand-off to happen. ANGLE
has no choice then to proactively transition the images back into
FOREIGN at some point "just in case".
For some native drivers, this hand-off to FOREIGN can be quite frequent.
For example, on Android for most vendors there is no actual layout
transition between graphics and FOREIGN queue families (the actual data
layout is the same), so a cache flush/invalidate at strategic points
(such as the end of the command buffer) is sufficient as equivalent to
transition to FOREIGN (and another at the beginning of the command
buffer as equivalent to transition from FOREIGN).
As a layer over Vulkan's formalism, ANGLE is less lucky; it has to
enumerate exactly which image is being transitioned to and away from
FOREIGN. Transitions away from FOREIGN are in principle easy. As long
as the image is marked as being in the FOREIGN queue family, it will
automatically transition to the graphics queue family on first use.
In this change, when a foreign image is transitioned out of the FOREIGN
queue, it's added to a list of images to be transitioned back to FOREIGN
at submit time. Once submission is done, the image may or may not
actually be used by a foreign entity, but ANGLE cannot know that. The
next time the image is used in ANGLE, it is transitioned out of FOREIGN.
Verifying correctness with multi-threading is tricky, and relies on GL's
requirement that access in one context is followed by a synchronization
and rebind in another context before it can be used there. This means
that the image's transition to FOREIGN (at the end of one submission)
naturally happens before the transition back from FOREIGN (at the
beginning of the next submission). Because the set of images to
transition is tracked in the context, submissions in other contexts
don't interfere with the above logic.
The situation can be more complicated with one-off submissions, but
fortunately, no such usage of foreign images is present.
Another wrinkle is simultaneous usage of the image as read-only in two
contexts. According to GL, this is not a hazard and requires no
synchronization. However this is broken in ANGLE even for non-foreign
images (see http://anglebug.com/42266349), because as what _seems_ like
read-only usage of the image from GL's point of view (like sampling from
the image), there are associated write operations from Vulkan's point of
view (image layout transitions and QFOT). This change does not attempt
to address this corner case.
Bug: angleproject:42263241
Bug: angleproject:42262454
Bug: angleproject:390443243
Bug: chromium:382527242
Change-Id: Idd4ef1fecfa3fccf1a4063f1bddb08d28b85386b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6184604
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
0554e7f0
|
2025-01-09T10:05:12
|
|
Vulkan: Resume render pass queries when render pass reactivates
Bug: angleproject:388144480
Change-Id: Ibcf3b247f347705feed4aa43d237406ccb142704
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6185098
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Charlie Lao <cclao@google.com>
|
|
c7cfbbc9
|
2025-01-20T22:31:42
|
|
Check if the GLES resources are bound to EGL image
Per spec, The resource that will be used to create egl image
must not itself be an EGLImage sibling, so validation for the
resource in this case should be include.
Bug: angleproject:388310036
Change-Id: I2b47e3de4f92beca7ff7a80383a7598c79fdedb0
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6170833
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
0dabfe5a
|
2025-01-16T16:00:51
|
|
Tests: Supplement EXT_clear_texture tests
* Added negative tests in ClearTextureEXTTest.Validation.
* According to spec, divided format lists into color renderable and
unrenderable two sets.
* Bind the renderable format texture as a color attachment to test
EXT_clear_texture.
* Sample the unrenderable format texture then call glDraw to test
EXT_clear_texture.
Bug: angleproject:384967031
Change-Id: I71d77ef57772fbb5b174929e9ac2892e7dc3215f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6108999
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
|
|
aa6a9fae
|
2025-01-16T17:18:59
|
|
Vulkan: Selectively enable input attachment usage bit
Add VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT iff
supportsShaderFramebufferFetchDepthStencil feature is enabled.
Also, add noncoherent qualifier in a few FramebufferFetchTest
Bug: angleproject:352364582
Change-Id: I09c54a8d738b5cb4cbcf2716cdbff0c0ec9e31cf
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6181497
Commit-Queue: mohan maiya <m.maiya@samsung.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
fc33f0a0
|
2025-01-15T11:23:25
|
|
Add a ReadPixels test for offset alignment check
An INVALID_OPERATION error is generated if a pixel pack buffer object
is bound and data is not evenly divisible by the number of basic
machine units needed to store in memory the corresponding GL data
type from table 8.4 for the type parameter. Add a test for this.
Bug: angleproject:352963094
Change-Id: I81eda446df5ff29da1326a1f75f5d5aa0825aafd
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6170763
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
|
|
8ee72cc7
|
2025-01-13T13:44:31
|
|
WGSL: support matCx2 in uniforms
matCx2 in WGSL does not match std140 layout and so it needs to
be translated as array<ANGLE_wrapped_vec2, C> when in a uniform.
On use it needs to be converted to a WGSL-native matCx2.
This also includes the optimization of an array<matCx2> in a
uniform--when indexing into it, only the indexed element
will be converted to a native matCx2, instead of converting
the entire array and then indexing.
Bug: angleproject:376553328
Change-Id: I1d84471234b3d3cf4cf361ae89cb61675d5bf9a8
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6157788
Reviewed-by: Liza Burakova <liza@chromium.org>
Commit-Queue: Matthew Denton <mpdenton@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
3675ca04
|
2025-01-07T17:59:30
|
|
Vulkan: Bugfix for xfb GL_SEPARATE_ATTRIBS mode in PPO case
The new executable state transformFeedbackBufferMode should hold
the result of the link.
An end2end test is added.
Bug: angleproject:385662281
Change-Id: I52398ad9a9fe76344b94dac787cae7141924d1dc
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6156277
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
4c1354d9
|
2025-01-03T14:41:27
|
|
Make sure the AHB is not corrupt when bound to egl image
The AHB bound to egl image could be corrupt or not a valid
ANativeWindowBuffer, it should be validated when creating
egl image.
Bug: angleproject:387226848
Change-Id: Iefc5506746ceaad92d16b02d5c0838156eee2f9d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6126739
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
0501d32f
|
2024-12-23T18:02:54
|
|
Draw call with un-aligned index buffer should be checked
Bug: angleproject:385264236
Change-Id: I1ff7e93bf4b9ea9020e82f3558e4157b74cb7078
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6151227
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
65513240
|
2025-01-03T17:26:55
|
|
Fix initializing output variables
... by compiling a list of TVariables instead of names that are later
looked up. The latter results in wrong symbols being initialized when
the output variables are shadowed.
Bug: chromium:376738756
Bug: chromium:377553431
Change-Id: I76b9688c035476c547ac73cff380629161210406
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6143374
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
fe76d70b
|
2025-01-10T14:41:06
|
|
Vulkan: Enable 16-bit norm support for tex buffers
According to the spec for EXT_texture_norm16, it enables texture
buffers to support the following additional formats:
* GL_R16_EXT
* GL_RG16_EXT
* GL_RGBA16_EXT
All of the above are unsigned short normalized values.
* Updated validation to support the aforementioned formats in texture
buffers in case of support for the norm16 extension.
* Updated AdjustViewFormatForSampler() to also support norm16 values.
* Added the condition for advertising textureNorm16EXT that the 16-bit
UNORM formats above should have the buffer feature bit for texture
buffer support: VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT
* Added support check for renderSnormEXT after textureNorm16EXT,
since the check for former currently uses the support for latter
as a parameter.
* Added unit tests to draw using a texture buffer with norm16 formats.
* Added TextureBufferTestBase in order to test the API calls in the
extensions and the core ES 3.2 version, which the following suites
are derived from:
* TextureBufferTestES31 (existing)
* TextureBufferTestES32 (new)
* Extended the tests to similar 8-bit formats.
Bug: angleproject:381313704
Change-Id: I49157e8c2c9b5438eaf8d56c1932d12e56489318
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6169006
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
|
|
cfe87e34
|
2024-12-16T16:29:39
|
|
Add multisample support for glCopyImageSubDataEXT
As GL_TEXTURE_2D_MULTISAMPLE/GL_TEXTURE_2D_MULTISAMPLE_ARRAY
been introduced by GLES3.1, glCopyImageSubDataEXT should support
those types.
Bug: angleproject:381727390
Change-Id: Ib3571ea38dc8d8ceb1bc9ad0c8a6e04d28b0ec33
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6146194
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
|
|
c289b30f
|
2025-01-09T12:49:27
|
|
WGSL: Add test for failure case of uniform struct rewrites.
Using a uniform struct outside of the uniform address space fails
if we've rewritten any of the member types and want to assign to
that member.
E.g. this line of GLSL, assigning to a member of a struct used in
the uniform address space:
privUnis.x = float[3](1.0, 1.0, 1.0);
Produces this WGSL warning:
ERR: DisplayWgpu.cpp:295 (operator()): Error: 2 - message: Error while parsing WGSL: :50:63 error: expected ')'
(ANGLE_Convert_ANGLE_wrapped_float_ElementsTo_float_Elements((_uprivUnis)._ux)) = (array<f32, 3>(1.0f, 1.0f, 1.0f));
This adds a test and suppresses it on WGSL.
Future design options:
https://docs.google.com/document/d/17Qku1QEbLDhvJS-JJ9lPQAbnuZtLxWhG-ha5eCUhtEY/edit?tab=t.0#bookmark=id.r89s1r69tl77
Bug: angleproject:376553328
Change-Id: I57304e9d2a889d00ac4fa02f265198ce3d78e7e2
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6165290
Reviewed-by: Matt Denton <mpdenton@google.com>
Commit-Queue: Matt Denton <mpdenton@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Liza Burakova <liza@chromium.org>
|
|
b1a0d60f
|
2025-01-08T15:10:41
|
|
WGSL: Fix accidentally overloaded functions
Small-stride arrays in uniforms with the same element type, but
different array sizes, would cause the WGSL generator to produce
conversion functions with the same name but different array sizes.
This CL puts the array size in the name of the function to
avoid overloading, which is unsupported in WGSL.
Bug: angleproject:376553328
Change-Id: I446e91ccb9da2872c88f1a4e05283aacc9d6f8b1
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6160334
Commit-Queue: Matt Denton <mpdenton@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Auto-Submit: Matthew Denton <mpdenton@chromium.org>
Reviewed-by: Matt Denton <mpdenton@google.com>
Reviewed-by: Liza Burakova <liza@chromium.org>
|
|
2de256cb
|
2024-12-30T17:26:38
|
|
Change some error type in eglCreateImageKHR
Following the spec, for eglCreateImageKHR, if target is
EGL_LINUX_DMA_BUF_EXT and attribute value is not expected,
then EGL_BAD_ATTRIBUTE should be returned. However, ANGLE would
return EGL_BAD_PARAMETER. Now change these error handlings to
return EGL_BAD_ATTRIBUTE. Also, a end2end test is added.
Bug: angleproject:387892107
Change-Id: I73ecfc3da273c0fb5ac362e451fd186209f1a52b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6146196
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
19ef77a2
|
2025-01-09T15:37:34
|
|
Validate glEGLImageTargetRenderbufferStorageOES renderbuffer
glEGLImageTargetRenderbufferStorageOES changes the renderbuffer.
Avoid crashing if there is no renderbuffer bound.
Bug: angleproject:388616184
Change-Id: I05eacb7a5907d2ca9cde8e91aa7814daa3008c71
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6163503
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Auto-Submit: Kimmo Kinnunen <kkinnunen@apple.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
363f6264
|
2025-01-07T10:35:09
|
|
WGSL: unwrap single array element from uniform
...instead of unwrapping the entire array when only one element is
being accessed.
The is step #4 from the implementation plan in
https://docs.google.com/document/d/17Qku1QEbLDhvJS-JJ9lPQAbnuZtLxWhG-ha5eCUhtEY/edit?tab=t.0#bookmark=id.dt9vmixnpdvo
Bug: angleproject:376553328
Change-Id: I6c559f44b75cd1d3c4a478141c11f65a33d76bdf
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6102117
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Matt Denton <mpdenton@google.com>
Reviewed-by: Matt Denton <mpdenton@google.com>
Reviewed-by: Liza Burakova <liza@chromium.org>
|
|
6f32ed6c
|
2025-01-03T23:54:22
|
|
Fix struct sampler rewrite vs comma
Bug: chromium:377614665
Change-Id: I2c0e8230e31405c9e7fd165a9fca68b7e9f31a76
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6142516
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
d1496a22
|
2025-01-03T22:54:27
|
|
Produce same compile errors for op= as op
Bug: chromium:376787367
Change-Id: Ic2c1415c184c603b86876e5eb70eee602639abbf
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6142515
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Alexey Knyazev <lexa.knyazev@gmail.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
|
|
15b1fb37
|
2024-12-29T00:38:43
|
|
Fix mixing multisampled renderbuffers and textures
When querying a renderbuffer's render-to-texture sample count, the
number of samples was returned. This made it look like the renderbuffer
attachment is MSRTT even if it was really multisampled. When mixed with
a multisampled texture (where this mistake wasn't made), the framebuffer
completeness code marked the framebuffer incomplete because it looked
like one attachment is MSRTT and the other is not.
Test credit zephyrxiao@tencent.com
Bug: angleproject:382393146
Change-Id: I9fe516d6a92033512646414f88a9848aa1e1edc9
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6138979
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
83047378
|
2024-12-20T15:07:02
|
|
Add supplement GL_ARM_shader_framebuffer_fetch_depth_stencil tests
* Add two tests about detaching the depth attachment and stencil
attachment separately works correctly.
* Add six tests to test whether multisample, GL_FETCH_PER_SAMPLE_ARM and
fragment discard work properly in different situations.
Bug: angleproject:385170273
Change-Id: I8a4299e2336a8bf800ffe286775a53f59b407c8e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6108524
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
53ec86ab
|
2024-12-17T14:40:31
|
|
WGSL: support small stride arrays in uniforms
WGSL requires arrays in the uniform address space to have a stride
a multiple of 16.
This CL makes WGSL translator emit wrapper structs for array element
types used in the uniform address space, when the array stride is
not a multiple of 16. The exception is for structs that aren't
an aligned size of 16n, and for any types matCx2, since they are
(or will be) handled in different ways that ensure alignment to 16.
This should leave only f32, i32, u32, and vec2.
See https://www.w3.org/TR/WGSL/#example-67da5de6 for an example
of using a wrapper struct.
This requires converting arrays with a wrapper struct element type
to arrays with an unwrapped element type when they are first used;
this can be "optimized" later for the common case of accessing a
single array element, which can then be unwrapped immediately. This
CL generates WGSL conversion functions when necessary.
After this, the only types that can't yet be used in a uniform
are matCx2 and bools.
This is #2 in
https://docs.google.com/document/d/17Qku1QEbLDhvJS-JJ9lPQAbnuZtLxWhG-ha5eCUhtEY/edit?tab=t.0#bookmark=id.rt3slgehd4te
Bug: angleproject:376553328
Change-Id: I1edfa7f481a6cbf5b595643aae8728e67bc4b770
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6092038
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Liza Burakova <liza@chromium.org>
Reviewed-by: Matt Denton <mpdenton@google.com>
Commit-Queue: Matt Denton <mpdenton@google.com>
|
|
f80d15ad
|
2025-01-03T16:19:13
|
|
Vulkan: Fix crash with array of array of samplers vs comma
Bug: chromium:385256122
Change-Id: I9b356401e7c007060e95bb95ca8269411178ce66
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6143373
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
39882b2b
|
2024-12-28T12:00:19
|
|
Vulkan: Fix flakiness in MultipleProgramsShareDescriptors
Precision differences causes the test to be flaky on some vendors.
The test is not validating color accuracy, there is no need to use
random numbers.
Bug: angleproject:42265270
Change-Id: Ied8794d14b394e049e5735d4c42a7baf6e3aca0f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6129616
Commit-Queue: mohan maiya <m.maiya@samsung.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
|
|
c486ce8c
|
2024-12-27T06:24:19
|
|
Manual roll Chromium from faba6412dc5c to 8bb7bbeac941 (279 revisions)
https://chromium.googlesource.com/chromium/src.git/+log/faba6412dc5c..8bb7bbeac941
If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/chromium-angle-autoroll
Please CC angle-team@google.com,syoussefi@google.com on the revert to
ensure that a human
is aware of the problem.
To file a bug in Chromium:
https://bugs.chromium.org/p/chromium/issues/entry
To file a bug in ANGLE:
https://bugs.chromium.org/p/angleproject/issues/entry
To report a problem with the AutoRoller itself, please file a bug:
https://issues.skia.org/issues/new?component=1389291&template=1850622
Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
Changed dependencies
* build: https://chromium.googlesource.com/chromium/src/build.git/+log/63ad9737d7..8f6742f233
* buildtools: https://chromium.googlesource.com/chromium/src/buildtools.git/+log/56013b77b6..2823e220cb
* testing: https://chromium.googlesource.com/chromium/src/testing/+log/41bfee6b2b..2344736aa3
* third_party/libc++/src: https://chromium.googlesource.com/external/github.com/llvm/llvm-project/libcxx.git/+log/11c38d901d..9ba1d4922a
* third_party/rust: https://chromium.googlesource.com/chromium/src/third_party/rust/+log/f6418697ac..2559e1ff2f
* tools/perf: https://chromium.googlesource.com/chromium/src/tools/perf/+log/e6eba9706f..d0c22105ed
No update to Clang.
Bug: None
Change-Id: I6c019235e8a99d74c91496d1cdfa37b56891d65f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6121262
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
a614c8ab
|
2024-12-10T11:14:29
|
|
Check alpha in ColorMask for YUV target
ColorMask is used to mask the writing of R, G, B and A values to all
active draw buffers. r, g, b, and a indicate whether R, G, B, or A
values, respectively, are written or not (a value of TRUE means that
the corresponding value is written) except when the color buffer is
in YUV color space, in that case setting any one of the r, g, b, and
a values as false would generate draw time INVALID_OPERATION error.
Bug: angleproject:383174962
Change-Id: I38c2510c307dd8158e71c920986cb497ca923ff9
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6083471
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Charlie Lao <cclao@google.com>
|
|
aa263d13
|
2024-12-19T17:48:13
|
|
Increase GL_MAX_ARRAY_TEXTURE_LAYERS to 4096 and end2end test
Increase GL_MAX_ARRAY_TEXTURE_LAYERS from 2048 to 4096, and add an
end2end test to test whether the increased GL_MAX_ARRAY_TEXTURE_LAYERS
meets the memory limit.
Bug: angleproject:385040554
Change-Id: Ibb1ebcb2414c530dd838b3414dc82b14ce017bc4
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6108301
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
febba52a
|
2024-12-12T17:26:59
|
|
Optimize for swap after clear
Bug: angleproject:382006939
Change-Id: Ia6b9a53042a1d188dbd5a5f6436f17ca1e389a4e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6072416
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Yuxin Hu <yuxinhu@google.com>
|
|
bb640019
|
2024-12-18T12:36:13
|
|
Vulkan: Fix partial clear texture for RGB8 snorm
When clearing an RGB8 snorm texture, due to this format not being
renderable, a temporary buffer is filled with the clear value and
applied to the image as a buffer update. However, this buffer's unpack
state has nothing to do with the context's unpacking state. This should
be reflected on the pixel unpack state that is used to calculate the
required buffer size for the update. Otherwise, it can result in wrong
colors for parts of the image.
* Updated the pixel unpack state in the unrenderable part of the clear
function for textures (TextureVk::clearSubImageImpl()).
* It will now use "1" as the alignment since it is tightly packed.
* Added unit test to clear one corner of an RGB8 snorm texture and
use it for drawing.
* Clear2DRGB8SnormCorner
Bug: angleproject:384765600
Change-Id: Id302a9f4049626aae1a68798e86d7183d5c264e0
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6108140
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
Reviewed-by: Charlie Lao <cclao@google.com>
|
|
db8e5617
|
2024-10-23T15:21:33
|
|
Reland "Add check for some EGL API attrbute values"
This is a reland of commit 9481eb625b358897583f8adeca5fc520f8c215ae
Original change's description:
> Add check for some EGL API attrbute values
>
> EGL validation in ANGLE lacks of some error handlings mentioned
> in EGL spec. Those error handlings are added, and we need to
> make sure angle end2end tests are not influenced.
>
> Bug: angleproject:375528200
> Change-Id: Ic0686d9ccc70e18b0cf3449184452771c77c06b7
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6034532
> Reviewed-by: Charlie Lao <cclao@google.com>
> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Bug: angleproject:375528200
Change-Id: I6db890a95825156848d7da8ebc15f7e30b0902ba
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6088519
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
|
|
c0ee7b20
|
2024-12-12T16:49:40
|
|
Swap getWidth() and getHeight() if the swapchain is 90 emulate rotated
When checking if we need to recreate swapchain, we should swap
the getWidth() and getHeight()
if Is90DegreeRoration(mEmulatedPreTransform) is true. This is because:
When creating swapchain, if Is90DegreeRoration(mEmulatedPreTransform) is
true, we store swapped mSurfaceCaps.currentExtent.width and
mSurfaceCaps.currentExtent.height in getWidth() and getHeight(),
but we use the original mSurfaceCaps.currentExtent.width and
mSurfaceCaps.currentExtent.height to create the swapchain.
On next acquire, to check if the swapchain property changes,
we should swap getWidth() and getHeight() if
if Is90DegreeRoration(mEmulatedPreTransform) is true, otherwise we
are recreating swapchains when width and height are unchanged.
Bug: b/382006939
Change-Id: I1cbe9da2ff5e76602a90963514d2d0d5fbf677e7
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6090199
Commit-Queue: Yuxin Hu <yuxinhu@google.com>
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Reviewed-by: Charlie Lao <cclao@google.com>
|
|
e72cc71b
|
2024-12-13T11:59:29
|
|
Vulkan: Remove framebuffer fetch from shader if unused
Some application shaders may use `inout` variables to simplify shader
generation (presumably), but in the end don't actually ever read from
those variables.
This change tries to detect some very simple but common cases where it's
clear that the shader completely overwrites the variable without reading
from it and turns `inout` into `out`. When coherent framebuffer fetch
emulation kicks in, these shaders would no longer cause unnecessary
barriers.
Bug: angleproject:377923479
Change-Id: I0970b72f551b24409337a375cf97aa63bb511fb5
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6094425
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Roman Lavrov <romanl@google.com>
Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Roman Lavrov <romanl@google.com>
|
|
2c404434
|
2024-12-13T09:05:48
|
|
Revert "Add check for some EGL API attrbute values"
This reverts commit 9481eb625b358897583f8adeca5fc520f8c215ae.
Reason for revert: Causes failures when rolling into chromium:
https://chromium-review.googlesource.com/c/chromium/src/+/6089841
Original change's description:
> Add check for some EGL API attrbute values
>
> EGL validation in ANGLE lacks of some error handlings mentioned
> in EGL spec. Those error handlings are added, and we need to
> make sure angle end2end tests are not influenced.
>
> Bug: angleproject:375528200
> Change-Id: Ic0686d9ccc70e18b0cf3449184452771c77c06b7
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6034532
> Reviewed-by: Charlie Lao <cclao@google.com>
> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Bug: angleproject:375528200
Change-Id: I8e59113e4d94571b0ec1d8135519e829d3571a15
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6094284
Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
|
|
c75bd915
|
2024-12-10T23:01:44
|
|
Vulkan: Remove asyncCommandQueue
It's been years and it never showed an advantage. In the meantime,
performance without this feature seems close to native drivers (i.e. the
feature has lost its appeal) and it's frequently a source of
complication and bugs.
Bug: angleproject:42262955
Bug: angleproject:42265241
Bug: angleproject:42265934
Bug: angleproject:42265368
Bug: angleproject:42265738
Bug: angleproject:42266015
Bug: angleproject:377503738
Bug: angleproject:42265678
Bug: angleproject:173004081
Change-Id: Id8d7588fdbc397c28c1dd18aafa1f64cbe77806f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6084760
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Reviewed-by: mohan maiya <m.maiya@samsung.com>
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
fc4fc174
|
2024-12-10T22:01:28
|
|
Vulkan: Prevent crash with D/S FF without D/S attachment
The spec says that the values for gl_LastFragDepth/StencilARM are
undefined if there is no depth/stencil attachment. This "just" works on
tiling GPUs, because reading input attachments simply translates to
reading _something_ from the tile memory.
For ANGLE, the situation is a little more complicated. ANGLE has to
bind descriptors for input attachments (because non-tilers read from the
input attachment descriptor instead of using the knowledge that input
and color/depth/stencil attachments are one and the same thing in tile
memory). When a depth/stencil attachment is missing, there is no image
to bind to the descriptor set.
ANGLE cannot skip binding an image to the descriptor set, because
OpImageRead (translated from subpassLoad()) attempts to access the
input descriptor; skipping this causes an internal crash in SwiftShader
for example.
ANGLE cannot bind a bogus image as input attachment, as Vulkan requires
that input attachments are also color/depth/stencil attachments.
ANGLE _could_ bind a bogus image as input attachment and also as
depth/stencil attachment. This is rather risky, as it then also has to
be careful to make sure that depth/stencil attachment is never actually
used (i.e. it affects the depth/stencil state, load/store ops etc).
In this change, the shader itself is modified to remove references to
the depth/stencil input attachments if the attachment is missing. This
is rather inefficient, as it means the pipeline warmup will not produce
a usable pipeline, but it's accepted as a workaround for something apps
shouldn't really be doing.
Bug: angleproject:376572258
Change-Id: I0de68252b61615cb82cba7d1730699aadf41e92f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6085368
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
e9ba1681
|
2024-12-10T21:29:26
|
|
Vulkan: Fix DR vs FF vs non-draw RP start
DR is Dynamic Rendering
FF is Framebuffer Fetch
RP is Render Pass
With DR, whether framebuffer fetch is used or not is no longer tracked
in the framebuffer's RenderPassDesc, because that property has no
bearing on the framebuffer anymore. It still exits in RenderPassDesc to
support legacy VkRenderPass objects.
After a draw call starts a render pass, the state of the command
buffer's copy of RenderPassDesc (copied from the framebuffer's) is
updated to include the correct framebuffer fetch mode. However, this
was not done when the render pass starts through other means, such as
when a scissored or masked clear would call `Context::startRenderPass`.
This change moves the aforementioned update of the framebuffer fetch
mode to `Context::startRenderPass` so it affects everywhere the render
pass may start from.
Bug: angleproject:383356851
Change-Id: I82eff43863fc5b9fe67e57453269ee73859a6cd7
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6085367
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
|
|
9481eb62
|
2024-10-23T15:21:33
|
|
Add check for some EGL API attrbute values
EGL validation in ANGLE lacks of some error handlings mentioned
in EGL spec. Those error handlings are added, and we need to
make sure angle end2end tests are not influenced.
Bug: angleproject:375528200
Change-Id: Ic0686d9ccc70e18b0cf3449184452771c77c06b7
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6034532
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
f9d08964
|
2024-10-29T14:14:43
|
|
Fix primitive restart issue with line loop
Refine function CopyLineLoopIndicesWithRestart and function
CopyLineLoopIndicesWithRestart so that they can deal with the
case when there is only one index before/after restartIndex.
Bug: angleproject:376097643
Change-Id: I06ee0208522d6dc5b6cd6ec0ba4f8682de7b12f3
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5975353
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
e45a0420
|
2024-12-05T17:41:38
|
|
Fix glCopyImageSubData() not work with multisample render buffer
When target is "GL_RENDERBUFFER", and which is multisample, the function
will not work.
Bug: angleproject:382101118
Change-Id: I3d9c4a2550f9d66eeb73447328a03d4507cf2fa5
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6073359
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
2d71fe0d
|
2024-11-04T14:15:34
|
|
Check formats compatibility first in CopyImageSubData validation
During validation for CopyImageSubData, first check if the src and
dst formats are compatible. Before this patch, the check was put
after region checking. If the formats are not compatible, then the
block size used during region check is not reasonable.
Bug: angleproject:377144455
Change-Id: I3245ae1351e127cb70d0d75d75ca34f0106d12b6
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5982240
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
|
|
d8f6df3e
|
2024-12-09T09:20:40
|
|
Vulkan: Fix assertion in RefCountedEvent::releaseImpl
RefCountedEvent uses non-atomic uint32_t for reference counting, so it
is not thread safe. To ensure we do not use it in a thread unsafe way,
there is an assertion I added in RefCountedEvent::releaseImpl that the
release call is not come from async command queue thread (all release
calls are expected come from context thread which should be protected by
context share group lock). A while ago dynamic rendering is implemented.
With dynamic rendering you can't do final layout change in render pass.
So the final layout change to Present is added to primary command buffer
at the end of RenderPassCommandBufferHelper::flushToPrimary(). And if
async command queue is enabled, that flushToPrimary is called from async
command queue thread, which triggers the assertion I added in
RefCountedEvent::releaseImpl(). This CL releases mCurrentRefCountedEvent
for this specific situation (present image + dynamic rendering +
asyncCommandQueue) so that we do not hit the assertion. The only
downside is that it will force to use pipelineBarrier for this specific
situation. But no one ships with asyncCommandQueue enabled, so there is
no real concern here as well.
Bug: angleproject:382580875
Change-Id: I042e3906db7f5bb7acb299997f8fc7e21b8350b6
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6072350
Commit-Queue: Charlie Lao <cclao@google.com>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
70c62566
|
2024-12-06T15:20:49
|
|
Vulkan: SharedFence is now AtomicSharedPtr<RecyclableFence>
This is the preparation before the next CL:
Vulkan: Improve CommandQueue concurrency
crrev.com/c/angle/angle/+/6067346
The `SharedFence` was replaced with `AtomicSharedPtr<RecyclableFence>`
because previous implementation reference counting is not thread safe
which will be required in the next CL, where fence may be released
during unlocked wait or release commands using different mutexes.
Additionally cleanup unnecessary use of `vk::` namespace.
Bug: b/362604439
Change-Id: Icc61dc093ba0a1e350f1a02eb1ba209a2c58c603
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6074131
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Igor Nazarov <i.nazarov@samsung.com>
|
|
22c457a6
|
2024-12-06T16:07:54
|
|
Tests: VulkanMemoryTest OOM fallbacks check >= instead of ==
OOM tests check deviceMemoryImageAllocationFallbacks in a loop, assuming
that +1 will be reached. Maybe we are skipping over +1 somehow.
Check for >= instead.
The loops are followed by EXPECT_EQ, so if this happens the test would
still fail.
Bug: angleproject:382094011
Change-Id: Icfc93954b4a7ba30e24ae087d7a0c03d640e85b3
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6077964
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Commit-Queue: Roman Lavrov <romanl@google.com>
|
|
e82a2eab
|
2024-11-28T00:00:00
|
|
Support multisample 2D array textures on ES 3.0 contexts
Supported via OES_texture_storage_multisample_2d_array
enabled together with ANGLE_texture_multisample.
Drive-by:
Fixed exposure conditions in the OpenGL
backend to match the implementation.
Fixed: angleproject:382298321
Change-Id: I21b037aac7bebc35df267e9dd468088ebce35e71
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6075241
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
|
|
26414249
|
2024-11-28T00:00:00
|
|
Remove GetTexLevelParameter* from ANGLE_texture_multisample
These functions are always provided by
the GL_ANGLE_get_tex_level_parameter
frontend extension.
Fixed: angleproject:382291448
Change-Id: I59b4ccc56478f2e0931d1f5bd665cfdd5a34391e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6072222
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
|
|
e42047f0
|
2024-10-25T13:50:28
|
|
Vulkan: Disable DescriptorSet cache for SwiftShader
Performance with swiftShader is not critical and cache code path not
making much difference for SwiftShader renderer anyway. This CL disables
descriptor set cache for SwiftShader mainly to ensure the code path gets
test coverage on CI bots. This code path also ensures that we are
tagging ResourceUse on DescriptorSetHelper properly after every use.
Otherwise, it is very hard to test with cache enabled code path since
object usually won't get destroyed due to cache and any bug associated
with this is going to be very hard to debug. This CL has catch such bugs
during the descriptor set cache work.
Bug: angleproject:372268711
Change-Id: Iee1028f9378cf4f537d897e08746d5cf958f225a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6047805
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Commit-Queue: Charlie Lao <cclao@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
045f2818
|
2024-12-03T09:55:39
|
|
End2end test for GL_MAX_SHADER_STORAGE_BLOCK_SIZE validation
Bug: angleproject:381742474
Change-Id: Icae7b2705f5749bc070e096fa045e68bb061b530
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6065459
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
473798bf
|
2024-11-28T00:38:36
|
|
WGSL: @align appropriate struct members in uniforms.
Structs used in the uniform address space need to have certain
members aligned according to the uniform address space layout
constraints (substantially similar to std140).
This CL adds @align annotations where necessary, in structs used
in the uniform address space. Strictly speaking, it's okay to apply
@align annotations to all structs used in the WGSL program, but this
CL uses a pre-pass AST traverser to records all the structs used
in the uniform address space. This is to avoid more unreadable
generated code, and when more transformations are applied to
these structs in future CLs, less generated code overall.
After this, the only types that can't yet be used in a uniform
are matCx2, arrays with stride not divisble by 16 (except when the
array element type is a struct), and bools.
This is #1 in struct translation in
https://docs.google.com/document/d/17Qku1QEbLDhvJS-JJ9lPQAbnuZtLxWhG-ha5eCUhtEY/edit?tab=t.0#bookmark=id.rudfrn2o6jv1
Bug: angleproject:376553328
Change-Id: Ibff3414043a6ecb4a01ef8e3e71dad9c1066ddfd
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6056951
Commit-Queue: Matthew Denton <mpdenton@chromium.org>
Reviewed-by: Liza Burakova <liza@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
4b84ee4c
|
2024-12-03T16:21:38
|
|
Vulkan: Implement GL_EXT_EGL_image_storage_compression
Bug: angleproject:352345943
Change-Id: I82a54fa2515254a1045f512818ca23a540cd7a6e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6065464
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
100c0b8c
|
2024-11-04T13:58:00
|
|
Preserve mMinSampleShading value when SAMPLE_SHADING enable is toggled
Preserve mMinSampleShading value when SAMPLE_SHADING enable is toggled.
Initial value of MIN_SAMPLE_SHADING_VALUE is zero and that value
should not be changed during glEnable(SAMPLE_SHADING_OES).
Bug: angleproject:376174077
Change-Id: Iea06d7480167eff5722c2d5eef23287e8bb956f8
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5981462
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
Reviewed-by: Alexey Knyazev <lexa.knyazev@gmail.com>
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
|
|
cc841237
|
2024-11-29T13:45:50
|
|
Accept framebuffer modifications while PLS is active
The only way for a WebGL implementation to know if PLS is actually
active is to call glGetIntegerv(PIXEL_LOCAL_STORAGE_ACTIVE_PLANES_ANGLE)
(because glBeginPixelLocalStorageANGLE() can fail). So the original
behavior of not allowing glBindFramebuffer() et. al. while PLS was
active created a state scenario that was expensive for the browser to
track.
Instead, just allow glBindFramebuffer() et. al., and implicitly disable
PLS if they are called while it's active.
Bug: angleproject:40096838
Change-Id: Ibd303f9f9950fb5b7f1add2d41882e4379c51e62
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6060301
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Chris Dalton <chris@rive.app>
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>
|
|
0bb109aa
|
2024-11-28T00:00:00
|
|
Fix validation for 2D multisample array textures
* Fixes:
* TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY query must
be rejected if the functionality is not enabled.
* GetInternalFormativ must accept TEXTURE_2D_MULTISAMPLE_ARRAY
on unextended OpenGL ES 3.2 contexts.
* Added validation to the OpenGL ES 3.2 TexStorage3DMultisample
entry point.
* Cleanups:
* Removed OES suffix from the enum conversion.
* Incorrect extension name in the error message.
* Do not create a 2D multisample array zero texture object
if the backend does not support the functionality.
* Replaced redundant FramebufferTexture validation with an assertion.
* Do not allocate texture binding vectors for 2D multisample array
textures if the backend does not support the functionality.
* Aligned the 2D multisample array texture target assert in
RecordBindTextureTypeError with the actual error condition.
Fixed: angleproject:381270278
Change-Id: Idbbc86e2efe1bbc25d9570d515b67c1a32255d99
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6063068
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
c31a926b
|
2024-12-02T15:12:20
|
|
Refine test - TextureFixedRateCompressionTest.Invalidate
The test failed on AP1A.240405.002 Vulkan Pixel6, query compression
rate instead use passed in value.
Bug: angleproject:352364583
Change-Id: I6f112ceb85d8e3699f050a1dba8be9a595c83e99
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6059344
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
|
|
cc5218af
|
2024-12-02T16:06:10
|
|
ANGLE will crash when the buffer is NULL in eglCreateImageKHR
When creating egl image with android native buffer, and the buffer
pointer is NULL, ANGLE will crash. Because the type of pointer in EGL
and vulkan is different. In EGL, the type of this pointer is
ANativeWindowBuffer, But In vulkan it is AHardwareBuffer, which has an
offset compared with AHardwareBuffer, so it will access invalid address.
Bug: angleproject:379764621
Change-Id: Ifb5d4a81dea85eb23d4e3f82c37f13c7e4809ee5
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6061898
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
b7e0a250
|
2024-11-25T13:36:02
|
|
Add tests for RGB8 and RGBA8 renderbuffer usage
* Added simple tests for RGB8 and RGBA8 renderbuffer usage for
GLES1 and GLES2+.
Bug: angleproject:352352894
Change-Id: Ie410c57ab204c2afad3f53c37578865bd9e9307f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6050343
Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Auto-Submit: Amirali Abdolrashidi <abdolrashidi@google.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
|
|
7070a9e9
|
2024-11-20T00:21:16
|
|
Remove draw buffer validation clauses from PLS
It was cumbersome to implement all this validation browser side for
WebGL.
Rather than making it an error to update blend and color mask on
reserved PLS draw buffers, glBeginPixelLocalStorageANGLE() can just
implicitly disable blend, and enable the color mask on overridden draw
buffers. Later calls to enable blend or change the color mask on
overridden planes are silently ignored until
glEndPixelLocalStorageANGLE().
Bug: angleproject:40096838
Change-Id: Ic7e1c5113e7d3fad3b80d0178075df646540d743
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6045421
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Chris Dalton <chris@rive.app>
|
|
f51170b3
|
2024-11-21T16:30:40
|
|
Enable GL_KHR_texture_compression_astc_hdr
Vulkan supports GL_KHR_texture_compression_astc_hdr,
so this extension can be enabled in Angle.
Bug: angleproject:379186304
Change-Id: I438a120c3f884a7eefcd883ad71abf68f81cb473
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6038457
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
a2d76f03
|
2024-11-28T00:00:00
|
|
Add GetTexLevelParameterTest.Levels end2end test
Bug: angleproject:376497150
Change-Id: Id14663f6fb1fd64edc439e695953d4a4a3b9f853
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6056029
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
5d3d299d
|
2024-11-25T16:35:51
|
|
Expose the required GLES1.0/1.1 extensions in ANGLE
Exposed below extensions:
GL_OES_texture_mirrored_repeat
GL_OES_blend_subtract
Bug: angleproject:380704155
Change-Id: Ib095f9bfaabda92bb2c588d633f1512e118f066e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6038450
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
01dee1cb
|
2024-10-14T15:04:28
|
|
Add implementation for GL_EXT_texture_storage_compression
Bug: angleproject:352364583
Change-Id: I3dab4c68d5d0206d681e165e991217bd3de8eeb6
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6011055
Auto-Submit: Neil Zhang <Neil.Zhang@arm.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
6c1021ec
|
2024-11-22T16:48:45
|
|
Vulkan: Switch DescriptorSetLayout to use AtomicSharedPtr
SharedPtr has better semantics and safer to use. This CL removes direct
exposure of RefCounted object and also allows me to delete
BindingPointer class in later CL.
Bug: angleproject:372268711
Change-Id: I08a0dff3efcf794be843a4a548b9f2609bb9a5e1
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6044328
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
239ef680
|
2024-11-21T00:00:00
|
|
Metal: Support ANGLE_texture_multisample
* Added explicit multisample texture creation support
* Added support for SAMPLE_MASK frontend state
* Adjusted Metal backend caps
Fixed: angleproject:380475003
Change-Id: I90250e14da52869cb954b5a61d9c670e958a526c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6048958
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
|
|
c56867ec
|
2024-10-28T17:18:19
|
|
Refine sRGB support
GetNonLinearFormat should return the format itself
if format is non-linear. Also, for linear colorspace,
sRGB render target should be supported.
Bug: angleproject:377144464
Change-Id: I1179a3dbf67b619bae276e607bc61a85c1639c17
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5982242
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: mohan maiya <m.maiya@samsung.com>
|
|
7a1da65f
|
2024-11-25T00:00:00
|
|
Fix GetTexLevelParameter validation
* Adjusted ValidTextureTarget and ValidTexLevelDestinationTarget
helpers to allow multisample 2D array target on unextended
OpenGL ES 3.2 contexts.
* Adjusted ValidTexLevelDestinationTarget helper to disallow
2D array, 2D multisample, and 3D texture targets when the
corresponding functionality is not available.
* Removed redundant texture object validation from
ValidateGetTexLevelParameterBase.
* Adjusted ValidateGetTexLevelParameterBase to disallow
parameters not available in the current context.
Fixed: angleproject:380291920
Change-Id: Id2fcd1e2c81be25f1d545d213bd2508185592f20
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6049081
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
|
|
b94d7853
|
2024-11-14T00:00:00
|
|
Fix TextureMultisampleTest.CheckSamplePositions end2end test
The test should query positions only
for the supported sample counts.
Added capture support for GetMultisamplefv
and GetMultisamplefvANGLE functions.
Fixed: angleproject:380216733
Change-Id: I97456055ac60ada94dd75e10d7427e4448aee5e8
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6042141
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
bfa03a84
|
2024-11-19T13:32:31
|
|
Metal: Fix vec swizzles to bvecs on AMD
Constructing bvecs explicitly from swizzles would produce double
swizzles, and this would fail validation at validateNoSwizzleOfSwizzle.
Fix by folding the expression passed to coersion bvec constructor.
Cannot test more in isolation for now, since AddExplicitTypeCasts uses
Metal specific SymbolEnv.
Bug: angleproject:379758210
Change-Id: I175941747ef1c7acb8c88683c1188843a154aa8a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6034935
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Auto-Submit: Kimmo Kinnunen <kkinnunen@apple.com>
|
|
9eab301c
|
2024-11-12T17:24:57
|
|
Enable GL_KHR_texture_compression_astc_sliced_3d
ARM supports GL_KHR_texture_compression_astc_sliced_3d,
so this extension can be enabled in Angle.
Bug: angleproject:378507964
Change-Id: I545ac57b4d6065a9ef99a7884555da47a1d50261
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6014004
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
9c202275
|
2024-11-14T00:00:00
|
|
Fix SAMPLE_MASK_VALUE indexed query validation
The SAMPLE_MASK_VALUE enum must be accepted
when ANGLE_texture_multisample is enabled.
Fixed: angleproject:380291919
Change-Id: Ieb834ca4c78982fbf1a121c0a70db7413574679a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6038524
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
|
|
a3452c24
|
2024-11-14T00:00:00
|
|
Fix SAMPLE_MASK toggle validation
The SAMPLE_MASK enum must be accepted when
ANGLE_texture_multisample is enabled.
Bug: angleproject:380291919
Change-Id: I6aeb11dfbb65e6c05e493d1053679c7547c009c9
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6039158
Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
0c7c14eb
|
2024-11-22T10:31:45
|
|
Capture: add a sanity check to InitializeReplay4 args
In the case on the bug we were getting
maxProgramPipeline = 1684105299
due to an unitialized memory read, which then led to Replay OOM crash
as it allocates an array of this size. This is difficult to diagnose in
Replay as OOM leads to SIGKILL which cannot be trapped so we can't have
a backtrace. Adding a sanity check during capture.
Fix the other tests where we hit this
(https://anglebug.com/380296979#comment6)
One of them visible on red tests on a previous patchset in this CL:
https://ci.chromium.org/ui/p/angle/builders/try/linux-trace/9871/overview
https://ci.chromium.org/ui/p/angle/builders/try/win-trace/10795/overview
Bug: angleproject:380296979
Change-Id: I2879c1947742a9751a122545c8ba8da23ab243cb
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6042185
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Roman Lavrov <romanl@google.com>
|
|
94eebab5
|
2024-11-21T17:04:54
|
|
Tests: fix ProgramPipelineTest31 unitialized memory read
Specifically mPipeline was being set to 1684105299 on linux-trace CI,
which then got captured as maxProgramPipeline=1684105299 leading to OOM
crash of the replay attempting to initialize an array of this size*4
(~6Gb). Some tests, like BindProgramPipelineTest do not use mPipeline so
it remains unitialized, and since GLuint is a C++ primitive there is no
default zero-initialization.
Bug: angleproject:380296979
Change-Id: I2398666f15a36d3e5ccd8aa163cc83682039b7d0
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6042556
Commit-Queue: Roman Lavrov <romanl@google.com>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
|
|
8f07cdde
|
2024-11-14T00:00:00
|
|
Fix NegativeTextureMultisampleTest
The test checks that unextended ES 3.0 contexts
reject commands related to multisample textures
but it did not create an unextended context and
therefore was skipped on most backends because
they expose the extension.
Fixed: angleproject:380088822
Change-Id: I2aab2876539fb48954e5c0055f510ca4db429245
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6038826
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
ec773865
|
2024-11-19T14:46:29
|
|
Qualifier in const for sampler2D fails validation
The commit 039660a0757e8e5b661c1850747b688b6642f56d failed to special
cased "const in".
Fix by special casing also on EvqParamConst.
Bug: angleproject:379762012
Change-Id: Ife6966ea536972874645ae22b504712249817638
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6035505
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Auto-Submit: Kimmo Kinnunen <kkinnunen@apple.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
ecfa4874
|
2024-11-20T00:41:03
|
|
Assert no GL errors at the end of image tests
Bug: angleproject:42265697
Change-Id: Iac9241d0fbe384b10fc0b0f6b2f764efca674ac3
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6032805
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Commit-Queue: Yuxin Hu <yuxinhu@google.com>
Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
518e162e
|
2024-11-15T00:07:14
|
|
Fix validation for 3D depth/stencil textures
They should fail with GL_INVALID_OPERATION:
> Textures with a base internal format of DEPTH_COMPONENT, DEPTH_STENCIL
> or STENCIL_INDEX are supported by texture image specification
> commands only if target is TEXTURE_2D, TEXTURE_2D_MULTISAMPLE,
> TEXTURE_2D_ARRAY, TEXTURE_2D_MULTISAMPLE_ARRAY, TEXTURE_CUBE_MAP or
> TEXTURE_CUBE_MAP_ARRAY. Using these formats in conjunction with any
> other target will result in an INVALID_OPERATION error.
Bug: angleproject:379674017
Change-Id: Icdd4cea24601f6744a3a85bdf8ef07946569a16f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6019830
Reviewed-by: Alexey Knyazev <lexa.knyazev@gmail.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
f21cfcd6
|
2024-11-07T14:54:12
|
|
Add a corner case for framebuffer fetch
Add a defect test to test that when a shader reads from
gl_LastFragDepthARM or gl_LastFragStencilARM and no image is attached to
the depth or stencil attachment, respectively, results should be
undefined, instead of generating an error.
Bug: angleproject:376572258
Change-Id: I7ea0e5021ec370374c4da532b0fa58277f3e959e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5999877
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
e3b3dd68
|
2024-11-14T23:00:52
|
|
Vulkan: Optimize color clears vs read-only depth/stencil switch
When switching to read-only depth/stencil mode, if the aspect that
intends to be in read-only mode has a deferred clear, the clear is
flushed separately beforehands (as that would be a write operation).
Prior to this change, _all_ deferred clears were flushed for simplicity.
In this change, only the aspect that is switching modes is cleared,
leaving the other aspects free to be optimized as loadOp of the
following render pass.
Bug: angleproject:378058737
Change-Id: Iba4371590bee99f5022575c09b0d32231562488c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6019829
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
adb80cbb
|
2024-11-12T22:38:38
|
|
Vulkan: Optimize read-only depth/stencil switch after clear
Prior to this change, if color is cleared then read-only depth/stencil
mode is enabled, ContextVk::switchToReadOnlyDepthStencilMode eagerly
flushed the deferred clears (starting a render pass).
However, if the render pass is marked dirty for any reason afterwards,
for example because we want to flush the render pass after a query
ends, the render pass that is just started above is unnecessarily
closed.
In this change, `switchToReadOnlyDepthStencilMode` only detects if a new
render pass is needed and marks the appropriate dirt bits. This way,
the render pass can only be restarted once.
Bug: angleproject:378058737
Change-Id: I83a5ebae6c223882eafea338eeec19895d87e5c1
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6023414
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
ba81145f
|
2024-11-08T15:45:44
|
|
Vulkan: Emulate coherent framebuffer fetch everywhere
Many apps expect coherent framebuffer fetch to be available, and
multiple downstream emulators end up forcing coherent framebuffer fetch
enabled despite the hardware not being coherent.
This change attempts to do a best-effort emulation of coherent
framebuffer fetch by automatically inserting barriers before framebuffer
fetch draws. While this doesn't correctly handle self-overlapping
geometry, it works well enough in practice for the applications.
As a result, framebuffer fetch is practically enabled everywhere after
this change.
Bug: angleproject:377923479
Change-Id: I3900a1de0f4db755b7e70871f57df3ea112073f9
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6004336
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
7ba69645
|
2024-11-14T10:07:31
|
|
Fix unnamed outs w/ initializeUninitializedLocals
Fix translator initializeUninitializedLocals pass for anonymous
out parameters. The parameters should be initialized to zero,
similar to named but unassigned parameters.
Initialization would be skipped on GLSL output, assert on Metal.
Functions need to be replaced if their parameter names change.
In case the function had a prototype declaration, that has to be
replaced too.
All calls to old functions must be replaced with calls to new function.
Bug: angleproject:378584780
Change-Id: I9a990fa3840f6e26cd30f35bf6c99d9a8816f272
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6020245
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Auto-Submit: Kimmo Kinnunen <kkinnunen@apple.com>
Commit-Queue: Kimmo Kinnunen <kkinnunen@apple.com>
|