|
3e8d09a1
|
2024-10-08T17:01:02
|
|
Vulkan: Enable FRAGMENT_SHADER_FRAMEBUFFER_FETCH_MRT_ARM
ANGLE correctly handles MRT with gl_LastFragColorARM, this property
should have been set to true.
Bug: b/269233744
Change-Id: Iaa554df57292fcc5c12281e2e098b6451f63d5e6
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5916770
Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
|
|
c9606f00
|
2024-10-07T10:15:14
|
|
Fix extensions moved to core in GLES 3.2
The GL_EXT_texture_cube_map_array, GL_EXT_texture_buffer, and
GL_OES_texture_storage_multisample_2d_array extensions were moved
into core in ES3.2, but validation still required enabling
extensions. Added 3.2 as a sufficiency.
Test: angle_end2end_tests --gtest_filter=*CompressedTexImageCubeMapArray*
Bug: b/371940347
Change-Id: Ie73a76087b6b52775d44ae79efd7f48e9fc90eb9
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5912120
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Mark Łobodziński <mark@lunarg.com>
|
|
4984fe12
|
2024-10-08T14:37:15
|
|
Add a test for framebuffer fetch and multisampling
To ensure that the fragment shader is implicitly run per-sample, such
that the read values are per-sample.
Bug: angleproject:42264719
Change-Id: I66968ea2dd92106f222ad6a43ffef0e75ad36528
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5917026
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
878e1c92
|
2024-10-07T16:34:54
|
|
Vulkan: Fix line-loop draw arrays after elements
Currently, when drawing line-loop arrays in Vulkan, an index
buffer is created to assist in drawing (since Vulkan does not
natively include a line-loop draw mode). However, when LL array
draw calls are mixed with non-LL element draw calls, it can lead
to some rendering issues due to the fact that the proper index
buffer is not obtained.
* In VertexArrayVk::handleLineLoop(), if the cached indices are the
same as the last draw, the same index buffer is obtained from the
LineLoopHelper object.
* (Using the newly added getCurrentIndexBuffer())
* Added unit test in which a triangle element draw is places between
two LL array draws. Before the fix, the second LL draw would result
in an incorrect line draw.
Bug: chromium:40911000
Change-Id: Ibba9a0cb2b77a2b6ae2c1e9230afe3d16b70cb63
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5908694
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
|
|
aec90a8d
|
2024-10-07T10:56:24
|
|
Fix ignoring blit bits when attachments are missing
GLES requires that the bits provided to glBlitFramebuffer are silently
ignored if either the read or draw framebuffer is missing the
corresponding attachment.
In WebGL, this is forbidden. ANGLE was forbidding this because of
WebGL, but a recent CTS test revealed that we shouldn't be doing that
when !WebGL.
Bug: angleproject:370917919
Change-Id: I202fbf665d8a102f0aea72709b80dfdabeb71a2e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5912614
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
166b72c9
|
2024-09-30T19:07:26
|
|
GL_ANGLE_blob_cache implementation.
Bug: chromium:370538323
Change-Id: Ic51a951e78b48b315e36f518bcc39ff2d54660a6
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5900761
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
cd10ad46
|
2024-09-30T00:00:00
|
|
Metal: Rework allowSamplerCompareGradient feature
* AMD drivers may fail when a sample_compare function is
used with explicit derivatives. To avoid such failures,
the effective level is computed from the texture size,
passed derivatives, and texture coordinates, if needed.
The level value is then used for sample_compare instead
of the explicit derivatives.
* Apple2 GPUs do not support setting texture sampler compare state
via Metal API. As a result, all sample_compare functions including
those without LOD options do not work on Apple2 GPUs. This feature
was attempting to incorrectly emulate a subset of sample_compare
functions with a hard-coded compare state.
There are no plans to support shadow samplers on Apple2 GPUs,
as it would require non-trivial emulation, so this feature is
no longer relevant for that platform.
* Metal on macOS 10.15 only supports constant zero as
the level parameter for sample_compare functions.
Ignoring the passed derivatives and using zero LOD on old OS
versions is a better fallback than dropping the derivatives
altogether because many applications use the derivatives to
set the level to zero anyway.
Bug: angleproject:365066518
Bug: angleproject:368059227
Change-Id: I4028421b785ae49328b72658e0a9783275461779
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5903970
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
|
|
b3d85cce
|
2024-09-30T14:28:35
|
|
Vulkan: Consolidate write colorspace override states
ColorspaceState struct is now used to cache write colorspace related
states to determine the colorspace of Vulkan draw image views.
ImageViewHelper methods are called during initialization and when
colorspace related states are toggled dynamically which in turn process
these states and determine the final write colorspace.
We can now fully support rendering to EGLImages, with colorspace
overrides, via texture or renderbuffer EGLImage targets
Bug: angleproject:40644776
Tests: ImageTest*Colorspace*Vulkan
MultithreadingTestES3.SharedSrgbTextureMultipleContexts*Vulkan
ReadPixelsPBOTest.SrgbUnorm*Vulkan
Change-Id: I2be2cd3b5b2b4ac8ecb803c34cde2b846cbd1cbe
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5901256
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: mohan maiya <m.maiya@samsung.com>
|
|
b38cc7fa
|
2024-09-30T12:43:09
|
|
Vulkan: Consolidate read colorspace override states
ColorspaceState struct is now used to cache read colorspace related
states to determine the colorspace of Vulkan read image views.
ImageViewHelper methods are called during initialization and when
colorspace related states are toggled dynamically which in turn process
these states and determine the final read colorspace.
Bug: angleproject:40644776
Tests: ImageTest*Colorspace*Vulkan
SRGBTextureTest.SRGB*TextureParameter*Vulkan
SRGBTextureTestES3.SRGBDecodeTexelFetch*Vulkan
Change-Id: I16b3666cd80865936b826dc0738fc9210dabeda9
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5901255
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: mohan maiya <m.maiya@samsung.com>
|
|
605c2f85
|
2024-09-27T12:00:58
|
|
Vulkan: Bugfix in FramebufferVk::blit(...)
If any color attachment of GL_DRAW_FRAMEBUFFER is already in use in the
currently started renderpass, don't reuse the renderpass for blit.
Bug: angleproject:40644776
Tests: Texture2DTestES3.UnitTest_DMSAA_dst_read*
Change-Id: Ib4266fc65d0ac7151f362f263e9e706adb1231ce
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5895158
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@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>
|
|
572fd30e
|
2024-09-25T13:33:01
|
|
Clean up LineLoopIndirectTest
The helper test function runTest() for LineLoopIndirectTest
includes some special cases in its args that are not used in all
cases, such as consecutive indirect calls. This CL aims to split
this function into separate test cases to make each test more
readable.
* Added functions for some of the common procedures.
* Split runTest() into each test suite with the help of the common
functions and values as well as the special cases for each.
* Removed runTest() from this test suite.
* Updated an old bug number (667 -> 42265165).
Bug: angleproject:360758685
Change-Id: I98e1facff0a6bad0ee2deca9313644379345d9c5
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5892535
Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
|
|
67a5ea45
|
2024-09-23T16:09:12
|
|
Vulkan: Fix the error from multiple lineloop draws
Since Vulkan does not support line-loop draws natively, such a
draw call requires the conversion of the related buffers to prepare
them for this operation. For glDrawElementsIndirect(), the index
and the indirect buffers would need conversion.
However, what currently happens in this case is that the original
buffer pointer is overwritten after the conversion, removing the
link to the original buffer. Therefore, if there is a second line-loop
call just after the first, it will try to use the converted buffer as
the new source, which leads to errors due the buffer already being in
use.
The index buffer for the draw is bound when the related dirty bit is
handled. Therefore, instead of using the draw index buffer directly
for handling the line-loop scenario, we can use the index buffer in
the form of a local pointer passed between functions. Then, in order
to reconcile line-loop with the other cases, the draw index buffer is
set just before setting up the indexed draw.
* Functions handling line-loop draws do not modify the element array
buffer in VertexArrayVk directly, but use local buffer pointers to
pass the current element array pointer to further processing and
drawing.
* Added mCurrentElementArrayBuffer for ContextVk to be bound to the
index buffer to used for draw instead of the one from its vertex
array object.
* Before the indexed draw, mCurrentElementArrayBuffer is set to the
last destination index buffer.
* Added unit test that makes a line-loop draw and then a non-LL call
using the same element array.
Bug: angleproject:360758685
Change-Id: I6d6328f6326c1a1f9f80e5ef346aa077c867d344
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5878764
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
Reviewed-by: Charlie Lao <cclao@google.com>
|
|
7c811715
|
2024-09-25T11:09:44
|
|
Vulkan: fix crash when clearing stencil with ClearBuffer
Follow up to [1] which fixed a crash with glClear, but the bug remained
with glClearBufferiv. This change refactors the "is stencil write
masked out" query to always take the framebuffer's stencil bit count
into account (practically always 8), which also happens to make the rest
of the code checking this query more accurate in the presence of
nonsense masks where the bottom 8 bits are 0.
[1]: https://chromium-review.googlesource.com/c/angle/angle/+/3315158
Bug: chromium:40207259
Bug: angleproject:42266334
Change-Id: I68a6b0b75c67ed2cdc8c4d03b243efe5495efce1
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5889788
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
0621c95c
|
2024-09-09T09:43:43
|
|
Add test for repeated indirect line loop draws
This test is used to verify that two indirect draws drawing line loop
and sharing the same index buffer works.
Bug: angleproject:360758685
Change-Id: I4386e404ed0e0accf0dbb1edab8671e7f2d9939d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5855003
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Charlie Lao <cclao@google.com>
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
|
|
05c62ebc
|
2024-09-24T13:41:57
|
|
Fix check for whether stencil write is masked out
The stencil write mask is the only thing that decides what bits get
written to. Previously, this was masked with the reference bitmask to
determine if any bits get written to, which is incorrect.
The effect of this was that the Vulkan backend would use the READ_ONLY
layout for the depth/stencil attachment even though stencil could have
been written to the attachment.
Bug: angleproject:42266334
Change-Id: Ice6a35f4691fc8e09c7d5e1db6439c3079dfa039
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5887905
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
7e249881
|
2024-09-25T17:31:18
|
|
HLSL: Emulate mix functions when the last parameter is a bool.
Add emulation for the ESSL 310 variants of mix that use int and uint
vectors and a bool selector.
Bug: angleproject:369533080
Change-Id: I0491c50c65529b9d922d4745c0989131b9981048
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5892352
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: dan sinclair <dsinclair@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
966739ac
|
2024-09-19T23:49:06
|
|
Drop PLS support for EXT_shader_pixel_local_storage
Supporting this backend drastically increased the complexity of the
codebase, with little return. We don't support memoryless attachments on
the web anyway, and since this extension requires us to literally draw
the load/store operations, input attachments on Vulkan perform better.
Once this implemention is completely removed, we will delete the PLS
allow list, which isn't required for the other PLS implementations.
Bug: angleproject:7279
Change-Id: Ibb036d36cbd33467e7a94398ce171cda7349e4f4
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5874412
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Chris Dalton <chris@rive.app>
|
|
eaffa034
|
2024-09-24T20:56:04
|
|
Revert "Vulkan: Consolidate colorspace override states"
This reverts commit bffcd235ba6c031603d798daaa98f1cf9a3f3e46.
Reason for revert: Breaks Android test `org.skia.skqp.SkQPRunner#UnitTest_DMSAA_dst_read`. Details:
https://b.corp.google.com/issues/369388539.
Original change's description:
> Vulkan: Consolidate colorspace override states
>
> ColorspaceState struct is now used to cache colorspace related states
> and used to determine the colorspace of Vulkan image views.
> ImageViewHelper methods are called during initialization and when
> colorspace related states are toggled dynamically which in turn process
> these states and determine the final read and write colorspaces.
>
> We can now fully support rendering to EGLImages, with colorspace
> overrides, via texture or renderbuffer EGLImage targets
>
> Bug: angleproject:40644776
> Tests: ImageTest*Colorspace*Vulkan
> MultithreadingTestES3.SharedSrgbTextureMultipleContexts*Vulkan
> SRGBTextureTest.SRGB*TextureParameter*Vulkan
> SRGBTextureTestES3.SRGBDecodeTexelFetch*Vulkan
> ReadPixelsPBOTest.SrgbUnorm*Vulkan
> Change-Id: I1cc2b5bd834b519b83deab4d80a2fcaabeb271d6
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5841290
> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
> Reviewed-by: Charlie Lao <cclao@google.com>
> Commit-Queue: mohan maiya <m.maiya@samsung.com>
Bug: angleproject:40644776
Change-Id: I5bf6cf2ed0c8ec22fc02d8c3da92673ee85fe002
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5888506
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Commit-Queue: Yuxin Hu <yuxinhu@google.com>
|
|
49ea6f00
|
2024-09-08T11:32:16
|
|
Cleanup ImageTest skip conditions
Early-return with a compiler guard prevents a test from being
recorded in the skip test list log. Make sure to use the
"ANGLE_SKIP_TEST_IF" macros for AHB tests.
Bug: angleproject:40644776
Change-Id: I3e15203b8e17512ecb89abc7e53769c06b770213
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5842744
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: mohan maiya <m.maiya@samsung.com>
|
|
bffcd235
|
2024-09-13T14:58:00
|
|
Vulkan: Consolidate colorspace override states
ColorspaceState struct is now used to cache colorspace related states
and used to determine the colorspace of Vulkan image views.
ImageViewHelper methods are called during initialization and when
colorspace related states are toggled dynamically which in turn process
these states and determine the final read and write colorspaces.
We can now fully support rendering to EGLImages, with colorspace
overrides, via texture or renderbuffer EGLImage targets
Bug: angleproject:40644776
Tests: ImageTest*Colorspace*Vulkan
MultithreadingTestES3.SharedSrgbTextureMultipleContexts*Vulkan
SRGBTextureTest.SRGB*TextureParameter*Vulkan
SRGBTextureTestES3.SRGBDecodeTexelFetch*Vulkan
ReadPixelsPBOTest.SrgbUnorm*Vulkan
Change-Id: I1cc2b5bd834b519b83deab4d80a2fcaabeb271d6
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5841290
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: mohan maiya <m.maiya@samsung.com>
|
|
f0f65290
|
2024-09-10T15:30:30
|
|
Translator: Add check for atomic counter offset
For GLSL shaders, atomic counter offset should not exceed the
maximum atomic counter buffer size. This issue was seen on a dEQP
test when increasing the LimitToInt() limitation from INT_MAX/2
to INT_MAX+1 or INT_MAX.
* Added check to the translator to make sure the offset does not
go beyond the max atomic counter buffer size.
* Packed the existing checks into a single function.
* (checkAtomicCounterOffsetIsValid())
* Added mMaxAtomicCounterBufferSize to TParseContext for the check.
* Also added the related cap (maxShaderStorageBlockSize) for D3D11.
* Increased the limitation in LimitToInt() to (INT_MAX / 2 + 1).
* Added test based on dEQP test that failed on some platforms as
a result of updating said limitation.
* From KHR-GLES31.core.shader_atomic_counters.negative-large-offset
Bug: angleproject:361369308
Change-Id: Id6128c75e12445b2a0029f4a2eb2bdb379cad48d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5851650
Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
e38d25b1
|
2024-06-21T18:22:32
|
|
Vulkan: Implement EXT_clear_texture
* Added new functions to TextureVk to clear the image.
* clearImage()
* clearSubImage()
* Both implemented via clearSubImageImpl(), with the former a
special case of the latter.
* For multisample or renderable images, stagePartialClear() from
ImageHelper is called to add the update.
* For single-sampled non-renderable images, a buffer is filled with
the pixel data and applied to the image as a buffer update.
* Added new update type: ClearPartial
* Used for renderable textures. This includes multisample textures.
* LOAD_OP_CLEAR is used in a render pass to perform the clear.
* UtilsVk::clearTexture()
* (Uses ClearTextureParameters)
* Uses the following functions to get the VkClearValue from the
input data and format:
* GetVkClearColorValueFromBytes()
* GetVkClearDepthStencilValueFromBytes()
* ClearPartial updates can also be superseded and removed similar to
Buffer updates.
* Updated UtilsVk::startRenderPass() to accept a VkClearValue* as an
input arg. If used, the render pass will use LOAD_OP_CLEAR.
* Enabled the feature "clearTextureEXT" on Vulkan.
* Added new unit tests in ClearTextureEXTTest for various formats and
pixel sizes.
* Added related multisample tests in FramebufferTest.cpp.
* FramebufferTest_ES31.ClearTextureEXT*
* Disabled some of the new tests failing using OpenGL.
* Disabled stencil-only-related tests on Pineapple.
Bug: angleproject:42266869
Change-Id: I89c631d68a4ed63d9991abe1783333255ade20dd
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5778348
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
|
|
3f89dfc2
|
2024-08-20T17:31:43
|
|
Update validation for EXT_clear_texture
* Added the validation condition that the texture level to be cleared
should have been defined beforehand.
* Added the condition to clearTexSubImage() at the frontend to return
if any clear extent was zero.
* In the validation tests, added checks for the following:
* Clearing a texture level before defining it.
* Clearing a compressed texture, which is not allowed.
* Added setConfigAlphaBits() to ClearTextureEXTTest setup.
* Replaced EXPECT_PIXEL_COLOR_EQ with EXPECT_PIXEL_RECT_EQ for
ClearTextureEXTTest tests for better coverage.
Bug: angleproject:42266869
Change-Id: Ieeb49e9005eba6ef9156d49ff46c71cdf4f04162
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5801655
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
|
|
6e0ae899
|
2024-09-17T12:12:03
|
|
Vulkan: Suppress more rasterizer-discard VUs due to VVL bugs
Bug: angleproject:42266678
Change-Id: I7321c28362d1a2be529b9d173c8429c757c26fd8
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5869444
Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
|
|
6d58359b
|
2024-09-12T00:00:00
|
|
Add shadow sampler LOD tests for cubemap arrays
Added tests for GLSL 3.10 shadow samplers in
fragment shaders with TEXTURE_CUBE_MAP_ARRAY
target (with an extension).
Bug: angleproject:365066518
Change-Id: I0d47b0af24383177d428ebace045e77f5563593c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5866449
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
b5280aa3
|
2024-09-12T00:00:00
|
|
Add shadow sampler LOD tests for cubemaps
Added tests for GLSL 3.00 shadow samplers
in fragment shaders with TEXTURE_CUBE_MAP
target.
Bug: angleproject:365066518
Change-Id: I2b8577310ea5c258d4d13611607f5c4d9be57e04
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5865112
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
9decad75
|
2024-09-12T00:00:00
|
|
Add shadow sampler LOD tests for 2D arrays
Added tests for GLSL 3.00 shadow samplers
in fragment shaders with TEXTURE_2D_ARRAY
target.
Bug: angleproject:365066518
Change-Id: Iab68d7de6709e470ae6a4cd7d94682b454ed2880
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5861427
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
e90de4b2
|
2024-09-05T00:00:00
|
|
Add shadow sampler LOD tests
Added tests for GLSL 3.00 shadow
samplers in fragment shaders
with TEXTURE_2D target.
Bug: angleproject:365066518
Change-Id: I5b93d030cd14a388541acaff9f7a707ad599dba3
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5845491
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
f0919be3
|
2024-09-05T00:00:00
|
|
GL: Reset color mask before clearing textures
Some OpenGL drivers may apply last used color
mask state to ClearTexImage operations.
Bug: angleproject:347047859
Change-Id: I0bbf103793857b96e50fae8d6dfafc96b8dfe224
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5854319
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
|
|
6655e94f
|
2024-09-09T15:41:09
|
|
Remove Feature Level 9_3, part 2
Remove all of the remaining feature level 9_3 code.
Bug: angleproject:355462523
Change-Id: Ifd15d8f5486d3e7f8f2e134f23872abf4a8ea51c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5847452
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Rafael Cintron <rafael.cintron@microsoft.com>
|
|
d40d1a67
|
2024-09-05T14:56:46
|
|
Metal: Fix OverrideMTLClearColor handling of no texture
It's possible for OverrideMTLClearColor to be called with no
texture. This can happen with multiple draw buffers where the bound
program executable and framebuffer has incompatible component
types. When the render pass is prepared by a drawing command, these
incompatible attachments are skipped.
As demonstated by the new test case, when switching to the framebuffer
that has previously been prepared by such a draw, if the state is clean,
the render pass attachments are not updated and |texture| is unavailable
for use in determining any emulated clear color.
Fixed: angleproject:364687937
Change-Id: I1ec9b564dc8cdb5faf7a1ed0f935d38502ca5514
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5836314
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
a0126d55
|
2024-09-06T11:58:58
|
|
Metal: Clear mRenderPassesSinceFlush to avoid infinite recursion
When there is more than kMaxRenderPassesPerCommandBuffer render passes
with active occlusion query, it's possible for the Metal backend to end
up in infinite recursion of the following call sequence:
`ensureCommandBufferReady` -> `flushCommandBufferIfNeeded` ->
`flushCommandBuffer` -> `endEncoding` -> `endRenderEncoding` ->
`prepareRenderPassVisibilityPoolBuffer` ->
`getBlitCommandEncoderWithoutEndingRenderEncoder` ->
`ensureCommandBufferReady`
This recursion is caused by the checks in flushCommandBufferIfNeeded not
being disarmed once the flush has started and is most likely caused by
|mRenderPassesSinceFlush| exceeding |kMaxRenderPassesPerCommandBuffer|.
This change moves the clearing of |mRenderPassesSinceFlush| to the top
of of `flushCommandBuffer`, before any calls to `endEncoding`, breaking
the need to call `flushCommandBuffer` via
`getBlitCommandEncoderWithoutEndingRenderEncoder`.
Additionally, |OcclusionQueryPool::mUsed| is set to false before the
results are cleared. This will also break the recursion and is added for
the `mCmdBuffer.needsFlushForDrawCallLimits` case in
`flushCommandBufferIfNeeded`.
Change-Id: Ib54c0a87ae9c5365ae56d487b6bef99b681d9f59
Fixed: chromium:362791944
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5839224
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
e4be31ca
|
2024-08-29T14:30:11
|
|
Test: Add VertexAttribPointer test with different offset
The first test draw with VertexAttribPointer with smaller offset and
then followed by draw with VertexAttribPointer with larger offset. The
second test draw with larger offset and then followed by draw with
smaller offset. They will exercise logic in backend that may reuse the
conversion buffers (when forced format fallback is used).
Bug: b/357622380
Change-Id: If325a0547e5f80305125f448e9f987896f3e35bd
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5827285
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Commit-Queue: Charlie Lao <cclao@google.com>
|
|
8c211b10
|
2024-06-20T13:51:20
|
|
Metal: Clear depth pbuffers to 1 for robust init
Robust resource initialization would init depth pbuffers as 0.0
instead of 1.0. This would differ from the FBO initialization, where
the uninitialized depth buffers would be initialized to 1.0.
Bug: angleproject:348199042
Change-Id: I0f251e85d6e08ce992fe323b257a0906d237f5b1
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5642763
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Kimmo Kinnunen <kkinnunen@apple.com>
Auto-Submit: Kimmo Kinnunen <kkinnunen@apple.com>
Reviewed-by: Quyen Le <lehoangquyen@chromium.org>
|
|
fc4f0ac0
|
2024-08-21T12:54:13
|
|
formatutils: Allow 16-bit formats for renderbuffer with ext in GLES1.0
These format/use combinations should be available before ES 2.0 if
the GL_OES_framebuffer_object extension is present:
GL_RGBA4
GL_RGB565
GL_RGB5_A1
An E2E test is included.
Test: angle_end2end_tests --gtest_filter=*FramebufrerObjectTest.RenderBufferObject*
Bug: b/361370571
Change-Id: I0bc4cf43733a312c2847ebd63075338b365571d7
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5805221
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Mark Łobodziński <mark@lunarg.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
be4532be
|
2024-08-20T00:00:00
|
|
Metal: Update availability macros in tests
IsMetalTextureSwizzleAvailable
is always false on Simulator.
IsMetalCompressedTexture3DAvailable is
always true on the supported platforms.
Bug: angleproject:360147119
Change-Id: I297f7649071143b0cf3c20d5adc8fc3deca88910
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5816830
Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
Reviewed-by: Kimmo Kinnunen <kkinnunen@apple.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
6f97a8b3
|
2024-08-21T13:25:28
|
|
Vulkan: Add two tests for vertex conversion
Two glBufferSubData calls and then use the buffer (get down to the
vertex conversion code path, at least with forced fallback config). The
test will exercise the logic regarding the conversion with multiple
dirty ranges. Two tests are added in this CL, one with two overlapping
range and another with non-overlapping range.
Bug: b/357622380
Change-Id: Id8fa23a6e1511e2f03c002782ab99f167416ca02
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5805244
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Charlie Lao <cclao@google.com>
|
|
2f2cdbb8
|
2024-08-19T11:05:22
|
|
D3D11: Fix uniform setting for mat3 followed by float
A single float following a float3x3 will pack tightly in the last row
of the matrix. The uniform setting code for matricies would write a
full row stride's worth of data for the last matrix row, overwriting
the float packed at the end.
Update ExpandMatrix to only write colsSrc worth of values in the last
row.
Bug: angleproject:42266878, chromium:345525082
Change-Id: Ieb616972387501cd8c30f02b267f86a7f81cf01a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5796631
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
1a191b1d
|
2024-08-16T17:31:38
|
|
Metal: add an option to emulate DontCare loadOp with randomized Clear.
This is useful for testing undefined initial values caused by DontCare
MTLLoadAction on non-tiled GPUs.
Bug: angleproject:42261786
Change-Id: Id5c4a9ee8510a8a9143bdd67e276bfcf2bd7eaa5
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5791386
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Quyen Le <lehoangquyen@chromium.org>
|
|
da572160
|
2024-07-23T16:36:10
|
|
Reland: GL: Forward client-side arrays to the driver when possible
The OpenGL driver can handle client-side arrays when the context is
OpenGL ES or a desktop GL compatibility profile. When in these
situations, use the driver default VAO for all frontend context VAOs
and forward client-side data directly to the driver.
Fix synchronizing the default VAO state for external contexts. There
is no valid VertexArrayStateGL for external VAOs so make sure it's
nulled and the VAO dirty bits are set so the correct VAO state is
reapplied.
Disable syncing to the default VAO for external contexts. The only
VAO that they can share with ANGLE's internal state is the default
VAO so avoid having to save and restore its state.
Bug: angleproject:355034686
Change-Id: I015bbbc854938fe4bc1e92d0ca8fe04628d0db16
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5743284
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
6fddb18d
|
2024-07-26T12:44:23
|
|
GL: Disable heavily emulated extensions for non-WebGL.
The multidraw and base vertex base instance extensions are heavily
emulated in ANGLE's GL backend, manipulating vertex arrays multiple
times per draw. This is often a performance improvement for deep
pipelines such as WebGL but slower for shallow stacks like Chrome's
rasterization.
Mark these extensions as "emulated" and disable them in the frontend
for non-WebGL contexts. Only EXT_base_instance can have true native
support.
Add a frontend feature to re-enable these extensions and use it in the
existing end2end tests.
Bug: angleproject:355645824
Change-Id: I897559fb270e2aa0f476d7784d25d97574e28f43
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5743837
Reviewed-by: Shahbaz Youssefi <syoussefi@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>
|
|
11724133
|
2024-08-06T12:02:54
|
|
Metal: Separate vars with normal types
Separate compound expressions separates expressions as temporary values.
Previously creating a temporary variable would copy the entire type.
Qualifiers and interface block info but shouldn't ever be applied to
temporary variables. This would lead to assertions during MSL
output.
Fix by copying the type and unsetting qualifiers and interface block
info.
Bug: angleproject:357622691
Change-Id: Id868cd3eaabe3710121d6c9a565304e282ddb69f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5762605
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Auto-Submit: Kimmo Kinnunen <kkinnunen@apple.com>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Kimmo Kinnunen <kkinnunen@apple.com>
|
|
67d8d8c8
|
2024-07-29T13:44:37
|
|
WebGL: Reject shaders with infinite loops
Bug: chromium:350528343
Change-Id: I1b2fc152cf285b0e69c4c294351c1cf2389cc234
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5746714
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
2ae68a20
|
2024-08-05T14:24:06
|
|
Add MRT test for foveated rendering feature
Bug: angleproject:42266906
Change-Id: Ia98b1a2a0195ec213bc510a3b62c85b0adc630eb
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5763719
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
a89ca6c8
|
2024-07-30T17:14:50
|
|
Metal: Fully implement unresolve step for MSRTT.
This CL also uses memoryless for implicit MS textures in
EXT_multisampled_render_to_texture render passes.
Bug: angleproject:42261786
Change-Id: Ic20450574c4c670d05ca846587ced05488012270
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5746181
Reviewed-by: Alexey Knyazev <lexa.knyazev@gmail.com>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Quyen Le <lehoangquyen@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
1bfe5c57
|
2024-07-30T15:58:47
|
|
Metal: partially implement EXT_multisampled_render_to_texture.
Implement by implicitly attaching a multisampled texture to the render
pass. The content will be preserved across render passes by
loading/storing to the implicit multisampled texture.
However this won't work if the single sampled texture is used in
multiple render passes with different
glFramebufferTexture2DMultisampleEXT's sample counts. For that to work
we need to implement unresolve step to load the resolve texture's texels
into the implicit multisampled texture. That will be implemented in a
separate CL.
Bug: angleproject:42261786
Change-Id: I12be75af17ce5b98266946846417d0a43fcba455
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5746180
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Quyen Le <lehoangquyen@chromium.org>
|
|
22ed9877
|
2024-03-07T15:52:13
|
|
Vulkan: Generate fragment shading rates with compute
Generating fragment shading rates on the CPU could cause avoidable
stalls or increased latencies due to host<->device synchronization.
Instead generate the rates using a compute shader.
Optimize foveated rendering by treating a foveated draw with focal
points whose gainX or gainY is 0 as if it were an un-foveated draw
Bug: angleproject:42266906
Change-Id: If8c5504087997666c7d0c1cae8dcc5fab847187e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5754322
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Commit-Queue: mohan maiya <m.maiya@samsung.com>
|
|
cc7d0220
|
2024-07-31T14:22:38
|
|
Vulkan: Fix serial mismatch during mid-loop flush
Currently, if the total buffer updates to the image surpasses a
certain threshold, it results in a flush. However, this can cause
discrepencies in the queue serial, which can result in incorrect
behavior on some platforms.
* Updated flushStagedUpdatesImpl() so that the image serial after
applying the updates matches that of the current outside command
buffer.
* That includes when there is a flush in the middle of the update
loop, resulting in submission and new queue serial for the CB.
* Added a unit test to check if a large texture can uploaded and
deleted after a second small texture is uploaded.
* Texture1UploadThenTexture2UploadThenTexture1Delete
* Added a unit test for flushing when uploading cubemap textures.
Bug: b/351650806
Bug: b/356192937
Change-Id: I7f9b20e4b7fd49115f22081a9733b4d44b740e4a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5744377
Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
451d78d9
|
2024-07-25T11:56:25
|
|
Prune trivial infinite loops in WebGL contexts
Bug: chromium:350528343
Change-Id: I4be19c1ffe41fc86889b49b4a0e29d8bc9c940ec
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5738743
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
2bc1519c
|
2024-07-28T05:16:07
|
|
Metal: fix base/max level change for mutable textures.
Previously, the following scenario would accidentally delete and
recreate the native texture storage for a non-immutable TextureMtl:
1. set a texture base/max level.
2. attach the texture to a FBO and clear it.
- native storage is created.
3. sample the texture.
- native storage is accidentally deleted and recreated.
This happened because front-end only notifies the backend about the
base/max level dirty bits at step 3. At this point, Metal backend
thought that the native storage created at step 2 is no longer valid and
attempted to recreate the storage.
This CL fixes the bug by checking whether the base/max level is still
compatible with the existing native texture storage. If it is then the
dirty bits result in no-op.
Bug: chromium:355605685
Change-Id: I1daac80a74219109631a101e18e944560606d926
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5741121
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Quyen Le <lehoangquyen@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
bd3a3308
|
2024-07-22T14:03:20
|
|
Vulkan: Remove implicit image barrier for shader write
When app uses compute or fragment shader to write to an image and makes
multiple dispatchCompute or draw calls, right now we are inserting an
implicit barrier to ensure WAW is hazard free. But Spec says that
"Explicit synchronization is required to ensure that the effects of
buffer and texture data stores performed by shaders will be visible to
subsequent operations using the same objects". This CL records the bits
from the last glMemoryBarrier call and will skip the barrier calls in
ContextVk::updateActiveImages if there is no layout change, unless there
is requirement from prior glMemoryBarrier.
Bug: angleproject:350994515
Change-Id: I8bdeeb658993824369824aaa0f25cb4b6e3785f7
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5719024
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Commit-Queue: Charlie Lao <cclao@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
568caaa0
|
2024-07-23T15:07:59
|
|
Prune switch(constant) with no matching case
Bug: chromium:350528343
Change-Id: Iabb475b230f22086de482bbdcf2fa00b0d986622
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5735815
Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
57202584
|
2024-07-26T13:07:44
|
|
Vulkan: Fix dispatch-after-closed-render-pass bug
Bug: b/355567160
Change-Id: I4bc6acec53a50330507bfadcc0a4c1093366aae6
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5741786
Reviewed-by: mohan maiya <m.maiya@samsung.com>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Reviewed-by: Charlie Lao <cclao@google.com>
|
|
a0a832de
|
2024-07-26T12:33:37
|
|
Revert "GL: Forward client-side arrays to the driver when possible"
This reverts commit a6c2b4346516f228054b5bdd754bbc6f3ba1cba7.
Reason for revert: Fails some Chrome tests on Android after rolling: https://chromium-review.googlesource.com/c/chromium/src/+/5742024
Original change's description:
> GL: Forward client-side arrays to the driver when possible
>
> The OpenGL dirver can handle client-side arrays when the context is
> OpenGL ES or a desktop GL compatability profile. When in these
> sitatuions, use the driver default VAO for all frontend context VAOs
> and forward client-side data directly to the driver.
>
> Bug: angleproject:355034868
> Change-Id: I21a4459c4f7db780b51441d76e63d17bf737c101
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5736058
> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
> Reviewed-by: Vasiliy Telezhnikov <vasilyt@chromium.org>
> Commit-Queue: Geoff Lang <geofflang@chromium.org>
Bug: angleproject:355034868
Change-Id: I76f95d66ca277bcbb67300179e49287b433c1ede
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5742647
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Auto-Submit: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
|
|
a6c2b434
|
2024-07-23T16:36:10
|
|
GL: Forward client-side arrays to the driver when possible
The OpenGL dirver can handle client-side arrays when the context is
OpenGL ES or a desktop GL compatability profile. When in these
sitatuions, use the driver default VAO for all frontend context VAOs
and forward client-side data directly to the driver.
Bug: angleproject:355034868
Change-Id: I21a4459c4f7db780b51441d76e63d17bf737c101
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5736058
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Vasiliy Telezhnikov <vasilyt@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
975674ea
|
2024-07-18T00:00:00
|
|
Metal: Fix PBO readback failures with small row length
Do not use blits when the row length is
smaller than the source area width to
avoid Metal validation failures.
Bug: angleproject:354005999
Change-Id: Ifa0f29a0d1d2fb3275ea254957c24f36807e6f66
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5724790
Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
Reviewed-by: Quyen Le <lehoangquyen@chromium.org>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
|
|
1fe50b44
|
2024-07-16T20:12:06
|
|
Make implicit `this` capture explicit
When declaring a lambda with a value-capture default [=, ...], the
this pointer is implicitly captured by value as well. This results
in potentially-unintuitive behavior and has been deprecated in C++20.
It produces a warning in newer versions of clang
(https://reviews.llvm.org/D142639).
This CL prevents the warning by explicitly `this` for each lambda. To
maintain compatibility with previous C++ standards, it also removes
the = capture default and captures each variable explicitly.
It does not change the compiled code at all, since it's just removing
some syntactic sugar.
Bug: chromium:351004963, angleproject:42266730
Change-Id: I0f17a442262e2da22a1951d590291806554e66ff
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5714410
Auto-Submit: Devon Loehr <dloehr@google.com>
Reviewed-by: Roman Lavrov <romanl@google.com>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Commit-Queue: Roman Lavrov <romanl@google.com>
|
|
80149a7f
|
2024-07-18T18:46:08
|
|
Replace variable-length array with vector
Variable-length arrays allow allocating an unbounded amount of
memory on the stack. This replaces a VLA with a vector, also
provides better consistency with the rest of the containers in the
function.
Bug: chromium:349656479
Change-Id: I1e18f9a8985de84b82da58fa5465c98dbca51e8b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5721320
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
1db80b88
|
2024-07-10T12:47:42
|
|
Reland "Vulkan: Use VK_KHR_dynamic_rendering[_local_read]"
This is a reland of commit c379ff48043a47e444c388c45270db40d3172d50
Original change's description:
> Vulkan: Use VK_KHR_dynamic_rendering[_local_read]
>
> Bug: angleproject:42267038
> Change-Id: I1f4eb0f309992a9c1c287a69520dadf5eff23b26
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5637155
> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
> Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
> Reviewed-by: Charlie Lao <cclao@google.com>
Bug: angleproject:42267038
Change-Id: I083e6963b5421386695e49a9872edbb2016c9763
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5691342
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
|
|
1f87cbc9
|
2024-07-15T13:07:35
|
|
Vulkan: Fix late-added resolve attachment tracking
Resolve attachments may be added after the fact to a render pass due to
glBlitFramebuffer or eglSwapBuffer. Previously, only the resolve image
views were tracked by the render pass, and otherwise the state tracking
(layout, content defined, etc) treated the resolve images as generically
written-to by the render pass.
As a result, the render pass was unable to finalize the layout of the
resolve images early. Optimizing the layout of the swapchain image when
the surface is multisampled for example was not done due to this issue.
In this change, when resolve attachments are added late, they are
tracked identically to when they are added at the beginning of the
render pass, fixing the issues described above.
Bug: angleproject:42265625
Bug: angleproject:42266019
Change-Id: I765560762bb8caf39ba1096fb028177201c082d7
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5707470
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
f9af6f1c
|
2024-07-11T00:00:00
|
|
Add ReadPixelsTextureNorm16PBOTest
Test that ReadPixels with a pixel pack buffer
object bound works for 16-bit color buffers.
Bug: angleproject:352584420
Bug: angleproject:352700368
Bug: angleproject:352963103
Bug: angleproject:352963106
Change-Id: I97457fefa86fad3f9444a24870bfd0431a87d64b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5703580
Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
|
|
c4274d54
|
2024-04-29T11:47:34
|
|
WebGPU: Add pipeline creation and caching.
Bug: angleproject:342213825
Change-Id: I303f193d30fd6b9820efaefcae64e11042888009
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5497535
Reviewed-by: Liza Burakova <liza@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
85875b96
|
2024-07-11T14:59:27
|
|
Fix validation regarding cube map array dims
When defining cube map array textures, the depth represents
the number of layer-faces, and does not change with mip level.
* Updated validation for glTexImage3D().
* The width and the height for a mip level should not exceed the
max cube map size for that mip level.
* The depth limit has been set to max 3D texture size (similar to
glTexStorage3D())
* The spec states that this limit should be at least the value of
the implementation-based constant MAX_RECTANGLE_TEXTURE_SIZE.
* Added unit tests to check multiple cases for cube map array
validation for TexStorage3D, TexImage3D, and TexSubImage3D.
Bug: b/338621235
Bug: angleproject:42262247
Change-Id: I0857e68de02238ffd288e34879fb7dfa6e3f545f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5698571
Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
df90bbc5
|
2024-07-12T18:04:53
|
|
Refactoring: move angle::HashMap and HashSet to own header
Underlying abseil includes pull in a large set of headers
Bug: angleproject:42266508
Change-Id: Icee47143a8a59bb0795a054b67c0aa4ddcfca4d4
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5704137
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
245c1243
|
2024-07-12T14:28:31
|
|
Revert "Disallow read color type conversions for norm16 formats"
This reverts commit e5b442dedd8030d64a6ca2cb34ba0ec37895adfa.
Reason for revert: Broke Skia tests; possibly not going for this any more, as discussed on https://issuetracker.google.com/351644552#comment11
Original change's description:
> Disallow read color type conversions for norm16 formats
>
> OpenGL ES is not supposed to convert 16-bit color buffers to
> 8-bit pixel types or vice versa during readPixels operation.
>
> Fixed: angleproject:351644552
> Change-Id: I9e51ddc82f62f958b983b5d4609f7e983a941e83
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5686233
> Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Bug: angleproject:351644552
Change-Id: Ib0222e4cc5eae944db96fdd3f72c8980dfe09adf
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5702736
Reviewed-by: Solti Ho <solti@google.com>
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
|
|
a93476a1
|
2024-07-11T00:00:00
|
|
D3D11: Pass 3D slice index to Image11::copyWithoutConversion
3D slice range is passed in a D3D11_BOX
structure for CopySubresourceRegion.
Fixed: angleproject:352467349
Bug: angleproject:352496176
Change-Id: Ie96d9567cf73b0612bfb1cbd7fbacc6c0f01dec4
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5697425
Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
|
|
590010b6
|
2024-07-04T00:00:00
|
|
D3D11: Cleanup stale CopyTexImageTestES3 suppressions
Bug: angleproject:42262446
Change-Id: Id49b380b4dbf22efc0637605bbf7a67f317e7247
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5691437
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
|
|
7d461b21
|
2024-07-10T14:11:53
|
|
Revert "Vulkan: Use VK_KHR_dynamic_rendering[_local_read]"
This reverts commit c379ff48043a47e444c388c45270db40d3172d50.
Reason for revert: Regresses CPU perf and memory when _not_ using DR
Original change's description:
> Vulkan: Use VK_KHR_dynamic_rendering[_local_read]
>
> Bug: angleproject:42267038
> Change-Id: I1f4eb0f309992a9c1c287a69520dadf5eff23b26
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5637155
> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
> Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
> Reviewed-by: Charlie Lao <cclao@google.com>
Bug: angleproject:42267038
Change-Id: I3865f0d86813f0eeb9085a92875a33bd449b907f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5691337
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
e5b442de
|
2024-07-04T00:00:00
|
|
Disallow read color type conversions for norm16 formats
OpenGL ES is not supposed to convert 16-bit color buffers to
8-bit pixel types or vice versa during readPixels operation.
Fixed: angleproject:351644552
Change-Id: I9e51ddc82f62f958b983b5d4609f7e983a941e83
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5686233
Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
c379ff48
|
2024-06-10T22:01:57
|
|
Vulkan: Use VK_KHR_dynamic_rendering[_local_read]
Bug: angleproject:42267038
Change-Id: I1f4eb0f309992a9c1c287a69520dadf5eff23b26
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5637155
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Reviewed-by: Charlie Lao <cclao@google.com>
|
|
2763d520
|
2024-07-04T00:00:00
|
|
Do not rely on 16-bit color read conversions in tests, Part 2
These conversions are not specified.
ImageClearTestMetal should assert that all bits are cleared.
Bug: angleproject:351644552
Change-Id: I362e244078ad44b777cf926e9512c6af9fe48106
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5684692
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
0a7e1daf
|
2024-07-05T16:05:20
|
|
Tests: fix MultithreadFenceDraw, MultithreadFenceTexImage
Before this CL, pixels _after_ swapBuffers() were checked and in a way
that was causing a data race on mDrawGreen access. It seems to have
passed in certain special-case scenarios but was mostly broken, which
might explain the numerous issues that it caused.
After this CL, pixels are checked on each of 5 iterations _before_
swapBuffers() and mDrawGreen race is eliminated by ensuring read happens
before the background thread is unblocked.
Bug: b/338429767
Bug: b/42265212
Bug: b/42264513
Bug: b/267953710
Bug: b/42266622
Bug: b/328156792
Bug: b/42266649
Bug: b/40096752
Bug: b/42263977
Change-Id: Id0fa72ea69e29c6fd5abdb225ff1dbadb18b221b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5675283
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Roman Lavrov <romanl@google.com>
|
|
640e3716
|
2024-07-04T00:00:00
|
|
Do not rely on 16-bit color read conversions in tests
These conversions are not specified.
D3DTextureClearTest should assert that all bits are cleared.
Texture2DNorm16TestES3.TextureNorm16*TextureTest should not use
16-bit framebuffer attachments as they are tested separately.
Bug: angleproject:40096653
Bug: angleproject:351644552
Change-Id: Ib22e9fcc3b643725f25f6ed880569888107928ad
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5683107
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
|
|
db00dee5
|
2024-07-05T21:11:53
|
|
Vulkan: Fix SPIR-V gen for literally indexed swizzles
Translation did not take into account the fact that a swizzled vector
can be indexed by a literal (like `vec.zzxy[2]`, which should translate
to `vec.x`). Since this issue affects MSL generation too, such
expressions are folded before they reach the output generators.
Bug: b/351102615
Change-Id: I048aca165cdf22ef8cd7ccd9a8e503ccf636a55f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5680354
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
|
|
58dc069c
|
2024-07-04T00:00:00
|
|
Rename 16-bit EXPECT_PIXEL test helpers
Do not use UI suffix as the format is normalized.
Bug: None
Change-Id: Ib635397f2cdec02806c2c31484820b9b6964a066
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5680605
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
7d61980e
|
2024-06-26T18:39:53
|
|
Vulkan: Rename DescriptorSetLayoutDesc update() to addBinding()
The `update()` method is never actually used to update the exiting
bindings (but rather to add new ones), this change renames the method
to `addBinding()` and adds few ASSERTs for clarity.
Also, after recent changes in `DescriptorSetLayoutDesc` class, some
changes made by `update()` method are irreversible. It is possible
to have different descriptions that will produce same layout if use
`update()` to rewrite the existing structure.
Bug: angleproject:8677
Change-Id: If85eb2b271bc06843ee9326c024d73801d3da091
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5676345
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
e86ba9ab
|
2024-06-26T13:38:18
|
|
Vulkan: Fix querying support of prim restart patch
* Added a cap to reflect support for primitive restart for patches.
* primitiveRestartForPatchesSupported
* In Vulkan, it is determined through the following component from
the existing related device feature:
* primitiveTopologyPatchListRestart
* Updated querying PRIMITIVE_RESTART_FOR_PATCHES_SUPPORTED via glGet().
* Now it is only available on ES 3.2 or if tessellation shaders are
supported. Otherwise, there will be a validation error.
* It returns primitiveRestartForPatchesSupported.
* Added a unit test that queries this value and ensures that it remains
the same regardless of whether primitive restart is enabled.
Bug: angleproject:349610458
Change-Id: If43a5326f0886cf10e38b4e73a868f46b1052533
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5661108
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
Reviewed-by: Charlie Lao <cclao@google.com>
|
|
46dd6457
|
2024-06-25T15:56:15
|
|
Vulkan: Use DONT_CARE ops for missing D/S aspects
Simplifies op tracking with dynamic rendering.
Bug: angleproject:42267038
Change-Id: I394c154d94458c470190fea66d82c408e6f33725
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5655873
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
|
|
0c5b327a
|
2024-06-18T13:48:06
|
|
Extend advanced blend tests to cover core and KHR
* Added AdvancedBlendTestES32.
* (AdvancedBlendTest will now use ES 3.1 with the KHR extension.)
* Currently disabled on Intel (Windows and Linux)
* (ES 3.2 is expected to include advanced blend equations.)
Bug: angleproject:42262258
Change-Id: I691786c2b54ae6c1efa02299667978ddbc526819
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5640674
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
|
|
dd25e193
|
2024-06-14T12:14:52
|
|
Add a texture copy test that does multiple layer copies
Add a test that does multi-layer copy between a 2D array texture
and a 3D texture of different formats.
Bug: b/347306270
Change-Id: I972ae83f568450c27295a565af13f8e6d2332f66
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5634376
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
beb75984
|
2024-06-21T17:33:51
|
|
Fix incorrect verification for SimultaneousUploadAndDraw
MultithreadingTestES3.SimultaneousUploadAndDraw was verifying
its results incorrectly, resulting in incorrect failures.
Bug: angleproject:8341
Change-Id: Ie9268391c7b65a904a05c428c13be1041e8a7383
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5647496
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
48969c95
|
2024-05-31T16:34:07
|
|
GL: Implement QCOM_tiled_rendering
Bug: angleproject:343900918
Change-Id: I01612e11795d7aa8ee20f6e9bd5ef62fe40e2910
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5588630
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
3be15cb0
|
2024-06-21T13:52:20
|
|
GL: Limit uniform block size to 64KB
This change works around an inefficiency in ANGLE when the uniform block
has a large size. That will be fixed in a follow up, but in the
meantime this clamping makes ANGLE more uniform on different vendors
(most of which expose this limit as 64KB already). This also aligns
with the strategy adopted by the Vulkan backend.
Bug: angleproject:346561003
Change-Id: Id23a1f1bbbc1c7224c432d5bee1c4989ff2c92b7
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5645627
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
12028222
|
2024-06-20T00:00:00
|
|
Metal: Clear visibility result buffer before use
Ensured that the current visibility pool buffer does
not contain previous results if it was used before.
Fixed: angleproject:348206830
Change-Id: I8dbc36626ef8267d5466c96405dac0da2754cb6d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5643453
Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
Reviewed-by: Quyen Le <lehoangquyen@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
e3c8d57b
|
2024-06-21T11:55:21
|
|
GL: Fix glClearTexImage for LUMA textures
We need to transform the format and type before handing it off to the
driver for emulated texture formats.
Bug: angleproject:347047859
Change-Id: Ifa2c92179a49fbd8ae152a365c2915091102e4e6
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5645626
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
3f572905
|
2024-06-19T17:46:38
|
|
Add basic begin/end support for perf counters
The AMD_performance_monitor extension has explicit begin/end calls to
capture counters. This was not implemented in ANGLE and the tests were
relying on ANGLE always capturing counters (incurring a small overhead).
This change does not complete the implementation of that extension, but
does add basic support for starting and stopping perf counter
measurements. While inactive, most counters are not updated.
Bug: angleproject:42267038
Change-Id: I3ff6448b22ca247c217401cb2d76ef4142c9d759
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5639343
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
|
|
a1dea207
|
2024-06-13T11:40:39
|
|
Implement KHR_blend_equation_advanced_coherent
* Updated the validation for glBlendBarrier() and ~KHR().
* GL state now includes mBlendAdvancedCoherent.
* Updated glEnable() to accept GL_BLEND_ADVANCED_COHERENT_KHR.
* It can be queried via glGetIntegerv(), etc.
* EXTENDED_DIRTY_BIT_BLEND_ADVANCED_COHERENT added.
* Added a corresponding bit to ExternalContextState.
* If coherence is supported, there should be no need to use blend
barriers, as, based on the spec, the advanced blend ops should
then follow order like the basic blend ops.
* Relevant tests: *GLES31.functional.blend_equation_advanced.coherent*
* On Linux/NVIDIA: From "Not supported" to "Passed"
Bug: angleproject:42262258
Change-Id: I7e0e43bdc71524eec111c2d3b024fe73c9795e55
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5634381
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
92148c2c
|
2024-06-17T11:13:46
|
|
GL: Implement GL_EXT_clear_texture.
This extension is useful because it allows clearing textures without
changing the framebuffer. Chrome uses this on Android when it's
available.
Bug: angleproject:347047859
Change-Id: I765d9991c4549b3655446d9f51847d1095792dbd
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5631810
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
d193d51b
|
2024-06-17T22:46:08
|
|
Replace issue ids post migration to new issue tracker
This change replaces anglebug.com/NNNN links.
Bug: None
Change-Id: I8ac3aec8d2a8a844b3d7b99fc0a6b2be8da31761
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5637912
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
10a98f44
|
2024-06-18T00:00:00
|
|
Add ClipControlTest.DepthFragCoord test
Bug: angleproject:347737886
Change-Id: Id10b0f99b0a87a746f99ddf77c095861b1c72f74
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5638710
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
|
|
d521dd08
|
2024-06-13T00:00:00
|
|
Metal: Set write dependency when calling fillBuffer
Ensured that resetting the visibility buffer
completes before next operations.
Fixed: angleproject:347193640
Change-Id: Ib44322ca36c056a71a828e45cea435f51394cc0a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5632318
Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
|
|
2d8e15f8
|
2024-05-31T14:25:12
|
|
Add stubs for GL_QCOM_tiled_rendering
Bug: angleproject:343900918
Change-Id: I77d742949565ebfecb5f4446db3510af4f94033c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5588629
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
06f1b72f
|
2024-06-03T08:59:46
|
|
Vulkan: Bugfix in MSRTT emulation
Transient multisampled images should have no mips. Enforce this
requirement when MSRTT is being emulated
Bug: angleproject:4836
Tests: MultisampledRenderToTexture*MultipleLevelsMultisample*
Change-Id: I6df21bbb49a4c45aa3ee321f7d49b81f55352562
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5601347
Commit-Queue: mohan maiya <m.maiya@samsung.com>
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
479c950e
|
2024-06-06T00:00:00
|
|
D3D11: Implement fragment shader image2D layout updates
Checked for updated image2D bind layout
when triggering program recompilation.
Included image2D bind layout variants
into D3DPixelExecutable cache.
Added tests for binding 2D array
texture layers.
Fixed: angleproject:8124
Change-Id: I228a29b5bb175bbf0f8b13e70d1f09e8eb4ebb2f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5630654
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
|
|
15c182f9
|
2024-06-11T09:47:07
|
|
Vulkan: remove deferFlushUntilEndRenderPass feature, always on
This only applies to Qualcomm chipsets, the feature was already enabled
for all other devices.
It was previously causing a manhattan 3.0 perf regression on some
Qualcomm devices, but my tests on S24 both with ANGLE trace manhattan_31
and running gfxbench manually do not show any obvious regression. It was
also not expected that this would result in a regression. As we do not
aim to improve perf on older devices, removing the feature altogether
so that defers are always enabled.
This change resulted in a change in gold images on these traces
on pixel 4 bots:
pokemon_masters_ex - text was missing and now is rendered
street_fighter_iv_ce_frame86 - shadow was missing and now is rendered
So it looks like the feature may have been working incorrectly.
Bug: b/346378481
Change-Id: I2b0d15b89e11c67dea7c316a42bc807441c43b0a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5622115
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
|
|
544b108a
|
2024-06-07T16:26:29
|
|
Add unit tests for geometry shader OES and ES32
* GeometryShaderTest is now the base for ~ES32.
* Added "Core" to APIExtensionVersion.
* Added unit test for compiling and attaching a geometry shader for the
OES version and core ES 3.2.
Bug: angleproject:42262233
Change-Id: I035a2dddfe5e91d8ba4426c6d10e76cf2a32b1b7
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5610272
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
6554cd32
|
2024-06-07T16:26:10
|
|
Add validation for FramebufferTexture
FramebufferTexture() was added as part of the geometry shader
extension. However, it has become core in GLES 3.2.
* Added validation for glFramebufferTexture().
* Added unit tests to check for validation errors for the OES and
3.2 core versions.
Bug: angleproject:42262233
Change-Id: I2696d37bb54a26f0fe455107dca472cc05063fa6
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5605108
Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
|
|
9c391154
|
2024-06-06T18:24:18
|
|
Vulkan: Do not apply advanced blend emulation when blend is disabled
The emulateAdvancedBlendEquations code path does not check if
GL_BLEND is disabled. This CL adds the check so that the blend is
not applied when we disable the GL_BLEND.
This CL also adds an updateAdvancedBlendEquations() when
DIRTY_BIT_BLEND_ENABLED bit is set. This ensures
DIRTY_BIT_DRIVER_UNIFORMS bit is set when GL_BLEND state changes,
meaning we will regenerate the uniforms if GL_BLEND state changes:
GL_BLEND is enabled:
pass the advanced blend equations to the uniforms;
GL_BLEND is disabled:
do not pass the advanced blend equations to the unforms
Bug: b/345581214
Change-Id: I5708a4051647bc29b5b38a027e836f5bf717d1d5
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5605109
Auto-Submit: Yuxin Hu <yuxinhu@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Yuxin Hu <yuxinhu@google.com>
|