|
35f4ff2f
|
2023-11-13T09:50:08
|
|
Test suppressions
Bug: angleproject:8409
Bug: angleproject:8410
Change-Id: I9fb41292382563f7b9cc802167bf48432a46f55d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5023829
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Roman Lavrov <romanl@google.com>
Commit-Queue: Roman Lavrov <romanl@google.com>
Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
108bd958
|
2023-11-10T17:30:43
|
|
Tests: Add Slay the Spire trace
Test: angle_trace_tests --gtest_filter="*slay_the_spire*"
Bug: b/310281616
Change-Id: I6c94b0e3c72be1ad3cb2897981febd3f67722a20
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5021241
Commit-Queue: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Roman Lavrov <romanl@google.com>
|
|
90278ecf
|
2023-11-09T00:00:00
|
|
GL: Support polygon mode extensions on OpenGL ES
Expose NV_polygon_mode and ANGLE_polygon_mode
when the native OpenGL ES driver supports the
required functionality.
Bug: angleproject:1791
Bug: angleproject:8132
Change-Id: I6a273640b5ef38e79e5d11f313cb90a9c79d0485
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5023849
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
ade3dacd
|
2023-11-06T21:56:41
|
|
Do compile/link unlocked if not threaded (but thread-safe)
If GL_KHR_parallel_shader_compile is not supported, or it is not used to
do threaded compilation and link, this change lets the compile and link
jobs be done after releasing the share group lock. With
multithreaded/multi-context applications, this allows the other context
(typically the main context) to make progress in the meantime.
A typical scenario where this optimization matters is games seamlessly
loading a new area of the game and performing compilation and link in a
separate context. Before this change, the game would stutter as the
compile/link jobs prevent the main thread from drawing anything. With
this change, the hitching is removed.
Bug: angleproject:8297
Change-Id: I702d84324a7442561b49677bf42c16d650304313
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5006640
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
93b97a59
|
2023-11-03T22:07:23
|
|
Make link job directly wait on compile job
Previously, program link waited on the compile job on the calling thread
before launching the link job. As a result, sequences of intermixed
compile and link would get largely serialized as such:
Main Thread Thread 1 Thread 2 Thread 3 Thread 4
Compile -------> Compile
Compile -----------|----------> Compile
Link | |
Wait | |
| | |
|<--------------/--------------/
\------------------------------------------> Link
Compile -------> Compile |
Compile -----------|----------> Compile |
Link | | |
Wait | | |
| | | |
|<--------------/--------------/ |
\---------------------------------------------|-----------> Link
Compile -------> Compile | |
Compile -----------|----------> Compile | |
Link | | | |
Wait | | | |
| | | | |
...
With this change, the main thread no longer waits for compilation to
finish. It's the link job itself that does the waiting. This allows
the main thread to go through Compile and Link commands without
blocking, generating as many jobs as needed. The above scenario
therefore becomes:
Main T1 T2 T3 T4 T5 T6 T7 T8 T9
C ----> C
C ------|----> C
L ------|------|----> L
C ------|------|-------W---> C
C ------|------|-------|-----|----> C
L ------|------|-------|-----|------|----> L
C ------|------|-------|-----|------|-------W---> C
C ------|------|-------|-----|------|-------|-----|----> C
L ------|------|-------|-----|------|-------|-----|------|----> L
. \-----\------>/ | | | | | W
. | \-----\------>/ | | |
. | | \-----\------>/
. | | |
. | | |
This greatly improves the amount of parallelism compile and link jobs
get.
The careful observer may note that the link job being blocked on the
compile job is now wasting a thread from the thread pool. While this
change is strictly an improvement, parallelism can be further improved
if the link job is just not assigned to a thread until the corresponding
compile jobs are finished. This is currently not possible, but may be
if:
- Instead of a thread pool, the operating system's FIFO scheduler is
used. Then the operating system would automatically put blocking
tasks to sleep and pick up another task. This has the downside of
requiring threads to be created for each task.
- The thread pool work scheduler is enhanced to be made aware of
relationship between tasks and avoid scheduling jobs whose
dependencies are not yet met.
Alternatively, the number of threads in the pool can be increased by 30%
and hope for the best.
Bug: angleproject:8297
Change-Id: If4e6540ade47558a10cfab55e2286f073b904928
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5006874
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
|
|
aec4ffac
|
2023-11-06T14:13:06
|
|
Add a perf test for parallel compile and link
Bug: angleproject:8297
Change-Id: I40ec3af49bd0f5effbafc82b557840c615fd4c64
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5008040
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
3a6b385f
|
2023-11-09T15:48:48
|
|
Vulkan: Fix depth/stencil texture copy
Bug: angleproject:7289
Change-Id: Icde8a26e855e95a6c0a1e506d2435e981adc6f28
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5018798
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Reviewed-by: Charlie Lao <cclao@google.com>
|
|
d896fab8
|
2023-11-09T15:03:05
|
|
Vulkan: Fix texture self-copy
A new layout is introduced to support self-copy.
Bug: angleproject:7289
Change-Id: Ib914c433d55b9a79cfeb7a91f8a2b8680824d473
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5018797
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
|
|
e56cde03
|
2023-11-06T11:50:38
|
|
GL: Reset mLocalDirtyCurrentValues after syncronizing
StateManagerGL::setAttributeCurrentData sets the bits in
mLocalDirtyCurrentValues, leaving them set after syncState. All current
values would be re-synchronized every time any the
DIRTY_BIT_CURRENT_VALUES bit was set.
Bug: chromium:1496378
Change-Id: I93b78c8f2d576f5583ac629660f189c268a154d6
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5008036
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
4c500944
|
2023-11-08T16:16:23
|
|
Translator: Mark most builtins as not having side effect
This helps the translator eliminate stray uses of these builtins.
Bug: angleproject:6061
Change-Id: Ic0e72bddad5730fb1f906a4c8e53191ab3318d29
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5012988
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
6eeb11bd
|
2023-11-08T15:54:13
|
|
Translator: Unmark dFdx, dFdx and fwidth as having side effect
These were marked as having a side effect in
https://chromium-review.googlesource.com/c/angle/angle/+/924155, but
it's unknown why. This change separately unmarks them as having a side
effect, so if they are there to prevent a driver bug or such things, it
can be isolated to this change.
Bug: angleproject:6061
Change-Id: I8694ffdbb0142d330c8e2d73562f8004158023b3
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5012986
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
aea43399
|
2022-08-29T10:44:41
|
|
Mark texture2D() functions as not having side effects.
This should allow the shader translator to remove unused variables
and cut out sampling instructions in apps like T-Rex.
Bug: angleproject:6061
Change-Id: If543c9c737cdbcfdea1433876cd425e7335e5297
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3862383
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
2155534b
|
2023-11-06T11:49:20
|
|
Don't set dirty bits for attribs that are out of range.
PrivateState::setAllDirtyBits sets all bits in mDirtyCurrentValues.
When the context has fewer max attibutes than MAX_VERTEX_ATTRIBS, this
can cause out-of-bounds access to
PrivateState::mVertexAttribCurrentValues if the dirty bits are iterated
over without range validation.
Bug: chromium:1496378
Change-Id: I65481c432263a6e353a9361bba741b97dc5e20b1
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5008034
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
1bb2c5ec
|
2023-11-07T15:44:41
|
|
support reclient in capture_replay_tests
This also uses autoninja to start and stop reclient automatically.
This will be used with https://crrev.com/c/4797373.
Bug: angleproject:8309
Change-Id: I2e17c87c8ff0e253f16201297ef979337bf30292
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4796170
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Auto-Submit: Takuto Ikuta <tikuta@chromium.org>
|
|
cea3775c
|
2023-11-02T15:41:06
|
|
Vulkan: Suppress VU Undefined-Value-ShaderOutputNotConsumed
Bug: angleproject:8401
Change-Id: I3b561ec98090cf1c0050f113db96ea0c6c79d785
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5002728
Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Yuxin Hu <yuxinhu@google.com>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
|
|
9a7e8b7b
|
2023-11-07T17:02:02
|
|
Perf tests: log hwmon temps on linux
Syslog on a failed bot indicates possible overheating.
Log all hwmon temps which include CPU temps but also some other system
temps (disk probably not included). We might need to self-throttle if
crashes are correlated with higher temps.
Bug: b/296921272
Change-Id: I25f8dd899dd25880fc1567ecc18e102759fb868f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5008089
Auto-Submit: Roman Lavrov <romanl@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
a494c1d6
|
2023-11-07T16:29:07
|
|
GL: Fix compilation on drivers sensitive to initial comment
Prior to
https://chromium-review.googlesource.com/c/angle/angle/+/4994655, debug
info was **prepended** to the translated source in the form of a comment
after the compilation was done. In that change, this was done after
translation and before the translated source was handed to the backend
compiler.
Some GL drivers however failed to compile the shader after this change
because the #version line was no longer the first one in the shader.
This is fixed by **appending** the debug info instead.
Bug: angleproject:8297
Change-Id: I88b31fa128de304dc8bf32289bf20a29169883a8
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5007223
Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Charlie Lao <cclao@google.com>
|
|
12cc04d0
|
2023-11-07T10:26:18
|
|
Vulkan: Workaround camera AHB's layerCount being random value
We are seeing AHB used by google's camera app has random value in the
layerCount. In my reproduced case, it is 0, which translates to
layerCount in the VkImage. Sometimes I am also seeing a huge number in
the layerCount as well. This causes problem in ARM driver that end up
with assertion and other problems that end up with crash later. We need
to root cause the underlying bug which is tracked by b/239181279. But
before we have an actual fix in AHB creation code, this CL forces
com.google.android.GoogleCamera AHB's layerCount to be 1 as a temporary
app specific bug workaround so that we can move forward to get camera
app up running with ANGLE.
Bug: b/309480316
Bug: b/239181279
Change-Id: I219f6f89863a2cb8dee6c5efb0812389272373ba
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5010082
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Charlie Lao <cclao@google.com>
|
|
383df961
|
2023-11-06T22:00:52
|
|
Metal: only convert vertex if offset is not multiple of 4.
Previously we always convert vertex attribute if its binding offset
is not multiple of the attribute's size. This requirement seems to be
unnecessary.
This CL removes that requirement so the only requirement left for offset
is that it must be multiple of 4.
Bug: chromium:1496807
Change-Id: I35c421951c7817b77bd0c006ed4b72cd04b5a8d7
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5006359
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Quyen Le <lehoangquyen@chromium.org>
|
|
7b62e4f5
|
2023-11-06T00:00:00
|
|
D3D11: Avoid GLenum conversions in GetBlendStateKey
Bug: b/300968773
Change-Id: Ia41f77e686e0f1afc91381e29334f73859868129
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5009815
Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
0584ffd8
|
2023-11-06T16:34:13
|
|
Unsuppress VUID-VkGraphicsPipelineCreateInfo-pStages-00739
Possibly was due to a VVL bug
https://github.com/KhronosGroup/Vulkan-ValidationLayers/issues/6717
Bug: b/303219657
Change-Id: Ic9a6e7b45fb42572af04f94382906cd6f0f512df
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5008042
Auto-Submit: Roman Lavrov <romanl@google.com>
Commit-Queue: Roman Lavrov <romanl@google.com>
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
|
|
c114fc26
|
2023-08-28T15:40:26
|
|
Reland: Verify shader link correctness after looking up in program cache
Since the program cache takes shader sources into account, if the cache
is hit the shaders should have been correct for link.
Bug: angleproject:8297
Change-Id: Iccadc63a976689d7fa06d0a5ccfe81a594c424e8
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5003236
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
5a71be90
|
2023-11-03T15:07:06
|
|
D3D: Make non-constant loop indexing limitation a feature flag
... instead of exposing it as a front-end limitation only to set a
shader flag in the front-end.
Bug: angleproject:1130
Change-Id: Idbd9a1b7b79d231bd9fc1c0061c768df4aaab92d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5004847
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
2a433353
|
2023-11-02T14:29:19
|
|
Skip unnecessary default blend equation validation
Skip the bitset loop when all equations are the default 0
Together with crrev.com/c/5008031,
2~2.5% improvement in overall instruction count (cpu cycles also
improved but a bit less) in driver_overhead_2, which doesn't set
equations. If not skipped, to/from GLenum conversion added ~1%
(the trace has ~10k glDraw calls per frame so this is a hot path)
(tested on Android with angle_enable_share_context_lock=false)
Bug: b/300968773
Change-Id: Ic03ab36f071e36cecc78f4c107e3e82a08390e11
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5002007
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Auto-Submit: Roman Lavrov <romanl@google.com>
Commit-Queue: Roman Lavrov <romanl@google.com>
|
|
e7ce481f
|
2023-11-01T22:44:22
|
|
Consolidate parallel compilation in front-end
This cleans up the multiple compilation task implementations in the
backends and consolidates them in the front-end. The front-end is then
able to do the compilation in an unlocked tail call instead if
desired (in a future change).
This change is in preparation for having the program link tasks directly
wait on the shader compilation tasks. As a result, the "shader resolve"
should not be needed to access the shader compilation results; it should
be enough to wait for the compilation job. This change therefore moves
post-processing of results to the compilation job itself as they did not
need to actually be done after compilation is done (merely after
translation is done). As a side effect, shader substition and other
debug features should now work for the GL backend as they are now done
before back-end compilation.
Bug: angleproject:8297
Change-Id: Ib9274b1149fadca7545956a864d6635b6cba5c3a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4994655
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
32f209b8
|
2023-11-03T09:57:00
|
|
Vulkan: Fix __samplerExternal2DY2YEXTtnd combined with swizzle
Pixel camera app is hitting assertion due to swizzle applied to swizzle.
This CL adds ReswizzleYUVOpsTraverser::visitSwizzle() method and detects
there is a swizzle on YUV sampler and apply YUV swizzle first and then
original swizzle and then fold two swizzle into one.
This CL added a test to reproduce the bug.
This CL also makes ShCompileOptions in ShaderExtensionTest class a class
member instead of local variable so that subclass can modify for testing
or debugging purpose.
Bug: b/309480316
Change-Id: I72353fbad8dcacd77ca17a9f44e84485f4656a34
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5001614
Reviewed-by: Chris Forbes <chrisforbes@google.com>
Commit-Queue: Charlie Lao <cclao@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
8b4901d0
|
2023-11-06T10:43:14
|
|
Avoid GLenum conversion in BlendStateExt blend and equation
The following functions now return value as is without ToGLenum
conversion (that is often unnecessary):
getEquationColorIndexed
getEquationAlphaIndexed
getSrcColorIndexed
getDstColorIndexed
getSrcAlphaIndexed
getDstAlphaIndexed
(at least) getEquationColorIndexed is on the hot path with noticeable
performance impact; this CL also moves the implementation to the
header to allow inlining.
Bug: b/300968773
Change-Id: Ie223abe14b12afd7844686863ee5806945d10e45
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5008031
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Roman Lavrov <romanl@google.com>
|
|
ad4617f5
|
2023-11-03T22:46:41
|
|
Metal: Fix cross-compile build
When cross-compiling for mac, prebuilt shaders are disabled as the
Chromium Mac SDK does not include the necessary files.
Bug: chromium:1385510
Change-Id: Ie13903681ece68e10f3b9fda42fcc6a8324d563e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5001921
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
34e5620b
|
2023-11-01T17:52:34
|
|
Metal: Reuse UBO conversion buffer only if size matches
BufferMtl::getUniformConversionBuffer will recycle an existing buffer if
the request has the same buffer index and offset that is a multiple of
existing block size. This disregards the GL std size of the request
leading to incorrect allocation of blocks in the conversion buffer. The
fix is to create a new conversion buffer when stdSize !=
buffer.uniformBufferBlockSize.
Bug: angleproject:8393
Change-Id: Ife87309e66f65baa7f636b734a5586d0ae3b9768
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4995450
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Reviewed-by: Quyen Le <lehoangquyen@chromium.org>
|
|
ae3af8ee
|
2023-11-03T16:20:12
|
|
Manual roll VK-GL-CTS from 7d738783bf28 to b127977ddad4 (29 revisions)
https://chromium.googlesource.com/external/github.com/KhronosGroup/VK-GL-CTS.git/+log/7d738783bf28..b127977ddad4
2023-11-03 gleese@broadcom.com Simplifications for float_controls tests
2023-11-03 javed@igalia.com Add tests for verifying VK_FORMAT_UNDEFINED
as input format.
2023-11-03 rgarcia@igalia.com Remove ESO tests which do not actually use
ESO
2023-11-03 rgarcia@igalia.com Add missing mandatory features #ifdef
2023-11-03 tzlatinski@nvidia.com Fix the verification of multi-layered
decode images
2023-11-03 gleese@broadcom.com Remove unused code from integer function
tests
2023-11-03 lorenzo@khronosgroup.org Merge vk-gl-cts/vulkan-cts-1.3.7
into vk-gl-cts/main
2023-10-30 lorenzo@khronosgroup.org Update external dependencies to the
latest version
2023-10-27 lorenzo@khronosgroup.org Merge remote-tracking branch
'vk-gl-cts/dev/VK_EXT_nested_command_buffer'
2023-10-27 lorenzo@khronosgroup.org Merge vk-gl-cts/opengl-es-cts-3.2.9
into vk-gl-cts/main
2023-10-27 rgarcia@igalia.com Fix warning when building deqp-vksc
2023-10-26 gleese@broadcom.com Fix offsets in float controls tests
2023-10-26 lorenzo@khronosgroup.org Merge vk-gl-cts/vulkan-cts-1.3.7
into vk-gl-cts/main
2023-10-20 Tyler.Schneider@amd.com Ray Query multiple queries tests
cases: dEQP-VK.ray_query.multiple_ray_queries.*
2023-10-20 rgarcia@igalia.com Test multiple geometry query stats
simultaneously
2023-10-20 lorenzo@khronosgroup.org Merge vk-gl-cts/vulkan-cts-1.3.7
into vk-gl-cts/main
2023-10-20 lorenzo@khronosgroup.org Merge vk-gl-cts/vulkan-cts-1.3.7
into vk-gl-cts/main
2023-10-19 mateusz.bahyrycz@mobica.com Tests for depth stencil buffer
resolve
2023-10-19 gleese@broadcom.com Add coverage of compute workgroup sizing
2023-10-19 gleese@broadcom.com Simplifying changes to spirv_assembly
test structure
2023-10-19 rgarcia@igalia.com Remove redundant ESO and feedback loop
layout tests
2023-10-19 mateusz.bahyrycz@mobica.com Tests for sparse resources on
transfer queue
2023-10-19 amber@igalia.com Add tests for inherithed framebuffers with
VK_EXT_depth_bias_control.
2023-10-19 cturner@igalia.com Remove the custom device code in the
copies and blitting tests
2023-10-19 piotr.byszewski@mobica.com Improve compile times of some
generated glsl tests
2023-10-19 gleese@broadcom.com Simplify BorderSwizzle TestNode
2023-10-18 ziga@lunarg.com Fix duplicated files in cmakelists.txt
2023-10-18 cturner@igalia.com Fix an unused variable warning in release
mode
2023-10-16 lorenzo@khronosgroup.org Merge "Merge branch
'dev/VK_ANDROID_external_format_resolve'" into main
If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/vk-gl-cts-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 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
Bug: angleproject:8402
Change-Id: I99ac9c068080abf59f31e0f391da85cc0eb130b2
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5002011
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Commit-Queue: Yuxin Hu <yuxinhu@google.com>
Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
146a01ea
|
2023-11-03T15:49:30
|
|
Vulkan: Do not pad pipelineCacheData with zeroes
Instead of padding, reduce buffer size to the one returned from
`pipelineCacheData`.
Padding `pipelineCacheData` with zeroes in cases when
`vkGetPipelineCacheData()` returns less data then requested, may
invalidate the entire buffer. Next time padded buffer is used in
`vkCreatePipelineCache()` call, it may be rejected as invalid.
I have checked the above by deliberately increasing `pipelineCacheSize`
by 42 before `vkGetPipelineCacheData()`. After zeroing these 42 bytes,
I passed padded buffer to the `vkCreatePipelineCache()`. Result was
successful, however resulting cache size was always 52 bytes instead
of the expected `pipelineCacheSize`.
Bug: angleproject:2516
Change-Id: Ia1668ca96fc54e9b818ba0c8441e27c9dc2aedc8
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5002451
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Igor Nazarov <i.nazarov@samsung.com>
|
|
f441e3ee
|
2023-11-01T15:22:55
|
|
Metal: Fix missing mix(float,float,bool) overload
ANGLE has an ANGLE_mix_bool overload when the last parameter is a bool
but it is not needed when the other parameters are scalar.
Bug: chromium:1493243
Change-Id: I6ea904ed63055b49cf3eaded475eafa607ca5976
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4995278
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
bfc764c5
|
2023-11-03T03:16:40
|
|
Metal: Optimize vertex conversion using compute shader.
When converting vertex data with compute shader,
getComputeCommandEncoderWithoutEndingRenderEncoder() should be used
instead of getComputeCommandEncoder(). Because vertex data doesn't
depend on previous render commands, hence ending the current render
command encoder is unnecessary.
The only render command that could write vertex data is the one with
transform feedback (XFB). However, the XFB written data should already
be synchronized by glEndTransformFeedback() priorly if any.
Using getComputeCommandEncoderWithoutEndingRenderEncoder() ensures that
the conversion will happen in a compute pass before any draw calls in
the render pass.
Bug: chromium:1496807
Change-Id: I4613902b2ae83814e7cda712de89c7d8f285e5d1
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5004821
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Quyen Le <lehoangquyen@chromium.org>
|
|
0a8a7c2b
|
2023-11-02T13:52:03
|
|
Vulkan: Remove rx::WaitableCompressEvent class
The `WaitableCompressEvent` class is a left over from the old code and
currently serves no purpose.
Change that made class obsolete:
Vulkan: Sync pipeline cache only when truly changed
https://chromium-review.googlesource.com/c/angle/angle/+/3668835
Removal of `WaitableCompressEventImpl` fixes problem, that
`CompressAndStorePipelineCacheTask::mCacheData` was not destroyed until
next time we assign the `mCompressEvent`. So basically, most of the
time we had `mCacheData` allocation wasting memory.
After this change, `mCacheData` will be deallocated as soon as the task
finishes. Deallocation will happen in the async thread, saving some CPU
cycles on the main thread.
Bug: angleproject:4722
Change-Id: I9e8826e10535d7f6d844a0043704bd35838a0e02
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5001430
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Igor Nazarov <i.nazarov@samsung.com>
|
|
59f7467a
|
2023-11-01T14:53:42
|
|
Metal: Add missing ScalarMatrix ops
Translations for the following built-ins were missing:
scalar - matrix
scalar + matrix
scalar / matrix
Bug: angleproject:7525
Change-Id: I5da85781829c195906cc689ffee55cb681f0337c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4995668
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
9f9c35f3
|
2023-11-02T19:56:32
|
|
Metal: Don't map index buffer in drawArraysProvokingVertexImpl
We don't need to map the provoking vertex's index buffer right after
generating it on GPU. It caused GPU-CPU sync between every drawArrays
call having flat shading.
The only reason for mapping was to pass the indices data to setupDraw.
However setupDraw only needs indices data for converting vertex
attributes. Even then the converted attributes have the same order as
the original vertices. Hence the conversion sill works fine with the
original indices and there is no need for it to know about the generated
indices.
Bug: chromium:1496807
Change-Id: Ie69b3db78ead2160fd714ca04480625dded09062
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5000085
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Quyen Le <lehoangquyen@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
67222ef4
|
2023-10-20T22:56:09
|
|
Reland "Vulkan: merge client buffer data."
This is a reland of commit 563569acfcaf56ea87916d2ab5d50f09c8e0094e
Original change's description:
> Vulkan: merge client buffer data.
>
> some old fashion game still use lots of interleaved
> client buffer. instead of copy each attrib alone.
> this cl try to merge all the attrib ranges. reduce
> allocated memory and do whole range memcpy.
>
> Bug: b/306763053
> Change-Id: I493d7f0e1ef593fb7059c36ae0ed2149c4595e42
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4960642
> Commit-Queue: Hailin Zhang <hailinzhang@google.com>
> Reviewed-by: Charlie Lao <cclao@google.com>
Bug: b/306763053
Change-Id: If079ab055b7b7a2d14235bee3311fd628f657f35
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4997325
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Hailin Zhang <hailinzhang@google.com>
|
|
221117ab
|
2023-11-02T08:48:51
|
|
Tests: Add The Sims Mobile trace
Test: angle_trace_tests --gtest_filter=TraceTest.the_sims_mobile
Bug: b/308927628
Change-Id: I5de44b7eedb904c318168fbc7e308af218dc5ab1
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5002145
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
|
|
4cc9e0af
|
2023-10-31T11:19:51
|
|
Capture Tests: Fix unintentional gen-on-bind usage
A handful of tests are binding handles without glGen'ing them first.
This causes mismatched handles in capture_replay_test.py now that replay
inserts additional gen calls for resources that aren't explicitly gen'd.
For handles that are intentionally gen-on-bind, clean up the GL state so
it doesn't miscompare.
Test: capture_replay_tests.py --gtest_filter=*/ES3_Vulkan_SwiftShader
Bug: b/303100333
Change-Id: I5ce8060ff62264b3d648722b3c4542a136d95db5
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4994414
Reviewed-by: Roman Lavrov <romanl@google.com>
Commit-Queue: Mike Schuchardt <mikes@lunarg.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
|
|
053aa915
|
2023-11-01T12:01:27
|
|
Vulkan: Disable VK_EXT_graphics_pipeline_library on RADV
Causes crashes in the driver.
Bug: chromium:1494778
Bug: chromium:1497512
Change-Id: I0a9a74d8d77c48744ce9a62d27f48120209d1476
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4995274
Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Charlie Lao <cclao@google.com>
|
|
918028a2
|
2023-10-31T17:53:07
|
|
Update bot detection in capture_replay_tests
Since GOMA is going away, check username instead.
Bug: angleproject:6085, angleproject:8309
Change-Id: Ie4fa4ec7fad8b52450c1ef8be9e5099f30c8fc7c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4994667
Reviewed-by: Roman Lavrov <romanl@google.com>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
|
|
9a5d75de
|
2023-10-30T11:59:19
|
|
Vulkan: Fix incompatible redefinition of cube faces
The TextureVk::mRedefinedLevels bitmask tracked which levels are
incompatibly redefined, greatly reducing the complexity of dealing with
GL's mutable textures.
It did not however take into account the fact that GL allows each
cubemap face to be separately redefined (unlike 2D arrays, where all
layers are defined together). This change turns the bitmask into an
array of bitmasks. Previously, a single bit represented whether the
level is incompatibly redefined. Now, elements of the array track the
same information for each cube face. For non-cube-map textures, only
element 0 is used.
Bug: chromium:1494664
Change-Id: I69568d3da2391796bf5f01505861fee42c6c8924
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4986289
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
46817856
|
2023-11-01T04:38:40
|
|
Revert "Vulkan: merge client buffer data."
This reverts commit 563569acfcaf56ea87916d2ab5d50f09c8e0094e.
Reason for revert: Broke Android build, see aosp/2812590
Original change's description:
> Vulkan: merge client buffer data.
>
> some old fashion game still use lots of interleaved
> client buffer. instead of copy each attrib alone.
> this cl try to merge all the attrib ranges. reduce
> allocated memory and do whole range memcpy.
>
> Bug: b/306763053
> Change-Id: I493d7f0e1ef593fb7059c36ae0ed2149c4595e42
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4960642
> Commit-Queue: Hailin Zhang <hailinzhang@google.com>
> Reviewed-by: Charlie Lao <cclao@google.com>
Bug: b/306763053
Change-Id: I31ab923af16bf3f9e99033ebd6ea4c5e5b310d71
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4995494
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Reviewed-by: Peiyong Lin <lpy@google.com>
Auto-Submit: Peiyong Lin <lpy@google.com>
Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
|
|
563569ac
|
2023-10-20T22:56:09
|
|
Vulkan: merge client buffer data.
some old fashion game still use lots of interleaved
client buffer. instead of copy each attrib alone.
this cl try to merge all the attrib ranges. reduce
allocated memory and do whole range memcpy.
Bug: b/306763053
Change-Id: I493d7f0e1ef593fb7059c36ae0ed2149c4595e42
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4960642
Commit-Queue: Hailin Zhang <hailinzhang@google.com>
Reviewed-by: Charlie Lao <cclao@google.com>
|
|
c0c20673
|
2023-10-31T09:03:16
|
|
Remove expections for some AHB tests which are now fixed
Bug: b/223456677
Change-Id: Ibdc5b529e249c39c241a8e8e2b78ac10ff3d5ad2
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4988292
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Charlie Lao <cclao@google.com>
|
|
b6607672
|
2023-10-30T00:00:00
|
|
Test sampling from a texture with renderable levels below base
Bug: angleproject:8378
Change-Id: Id847849e1920c0d1706a4b3441c907ea2451cb6e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4994791
Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
36f41997
|
2023-10-30T15:14:09
|
|
D3D11: CopySubTexture: Handle sRGB source with D3D11
Use typeless formats for sRGB textures that can be reinterpreted as
linear. Add a parameter to SRV creation to request samplers that
do not do sRGB for copying sRGB textures.
Bug: angleproject:7907
Change-Id: I3d94dfa5b25a1c2c531cd9bef4247097aa4bfb61
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4986290
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
|
|
2ee06400
|
2023-10-31T10:57:02
|
|
Vulkan: fix dynamic buffer alignment issue.
Bug: b/306763053
Change-Id: I2f15fe2a2a36a9f55686987641e6afddb44ec9aa
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4994410
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Commit-Queue: Hailin Zhang <hailinzhang@google.com>
|
|
c6dc00d2
|
2023-10-31T11:50:40
|
|
Manual roll vulkan-deps from 69081d0e32f7 to e55b4f78bcf3 (110 revisions)
https://chromium.googlesource.com/vulkan-deps.git/+log/69081d0e32f7..e55b4f78bcf3
Changed dependencies:
* glslang: https://chromium.googlesource.com/external/github.com/KhronosGroup/glslang.git/+log/7fa0731a80..f8dd5adde4
* spirv-cross: https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Cross.git/+log/2de1265fca..637cff3d05
* spirv-tools: https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools.git/+log/73876defc8..4f014aff9c
* vulkan-headers: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Headers.git/+log/f4bfcd8852..aff5071d4e
* vulkan-loader: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Loader.git/+log/131a081e08..1ddcde3c55
* vulkan-tools: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Tools.git/+log/f7017f2333..116b6b1513
* vulkan-utility-libraries: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Utility-Libraries.git/+log/dcfce25b43..5b3147a535
* vulkan-validation-layers: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-ValidationLayers.git/+log/cc1e12c6fc..c27900222c
If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/vulkan-deps-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 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
Bug: None
Change-Id: I0c94d5f8e6d5b4c42186c063052f824c5cb5a3df
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4995264
Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Roman Lavrov <romanl@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
118a9b14
|
2023-10-30T00:00:00
|
|
Test sampling from a texture with extra renderable levels
Bug: angleproject:8378
Change-Id: I4790d59ce193a2aa4ba9e468debf0933a6e3fe47
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4987639
Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
c0f94afb
|
2023-10-30T11:07:02
|
|
Vulkan: Limit ImageTestES3.RGBXAHBImportMultipleLayers to 1 layer
ImageTestES3.RGBXAHBImportMultipleLayers is testing 3 layer AHB with CPU
write. It assumes alignment between each layer is 4096 which appears not
always true in ARM driver. I am also not seeing any API that would tell
us the underlying layer alignment. So for now restrict this test to
single layer.
Bug: b/223456677
Change-Id: I447990d08d31c2a20e8765686834f43b81560840
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4990044
Reviewed-by: Chris Forbes <chrisforbes@google.com>
Commit-Queue: Charlie Lao <cclao@google.com>
|
|
471b5040
|
2023-10-26T09:33:29
|
|
Vulkan: Only enable DS dynamic state if there is DS attachment.
This is discovered while investigating EXT_yuv_target crash in driver.
What happens is that UtilsVk::copyImage does not set depth stencil
dynamic state since there is no depth stencil attachment. But we enabled
dynamic state for D/S, thus driver still does D/S state setup, which
sees garbage data and hitting assertion. Even though this is discovered
with EXT_yuv_target test, I believe this is a general issue. This CL
adds the renderPassDesc.hasDepthAttachment() and hasStencilAttachment()
check and enable depth or stencil related dynamic state only if there is
depth or stencil attachment. This fixes crash in driver with
ImageTestES3.ClearYUVAHB test. This also has added performance benefit
that we now completely skips depth/stencil related dynamic state dirty
bit handling code, thus reduces state processing CPU overhead.
Bug: b/223456677
Change-Id: I3a4fe6d97b14c066d78f8b8ded21c626cb2f376c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4980765
Reviewed-by: Chris Forbes <chrisforbes@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Commit-Queue: Charlie Lao <cclao@google.com>
|
|
5fa65ec8
|
2023-10-27T16:12:46
|
|
ImageTest: check support before test cubemap
ImageTestES31.SourceAHBCubeArrayTargetCubeArray crahes because AHB
creation failed. We should check kAHBUsageGPUCubeMap support and bail
out if not supported.
Bug: b/223456677
Change-Id: I0d66830ac892e673bc39cca8caf5e25822957775
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4985412
Commit-Queue: Charlie Lao <cclao@google.com>
Reviewed-by: Chris Forbes <chrisforbes@google.com>
|
|
e519da9a
|
2023-10-29T14:33:06
|
|
Tests: Add Streets of Rage 4 trace
Test: angle_trace_tests --gtest_filter="*streets_of_rage_4*"
Bug: b/308334509
Change-Id: I3cc2d41c83bfcc6a32e6d1aec5e306cefb15afdc
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4988132
Commit-Queue: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Mike Schuchardt <mikes@lunarg.com>
|
|
bcd331f1
|
2023-10-27T15:21:35
|
|
ImageTest: Allow writeAHBData to fail
ImageTest::SourceNativeClientBufferTargetRenderbuffer test is using EGL
to create a AHB. eglCreateNativeClientBufferANDROID does not allow us to
specify CPU access. So driver may allocate AHB in a way that prohibits
CPU access. That will cause AHB lock to fail and writeAHBData crash.
This is within AHB specification. This CL allows this to fail so that we
wont crash.
Bug: b/223456677
Change-Id: I549b940d1283165cec1dc48ea5b43ba917081252
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4985627
Reviewed-by: Chris Forbes <chrisforbes@google.com>
Commit-Queue: Charlie Lao <cclao@google.com>
|
|
53c5b145
|
2023-10-10T09:42:08
|
|
Capture/Replay: Restore texture bindings on reset
Store active texture unit and all bound textures at capture start. Track
dirty state for each unit+target pair during capture. Restore bound
textures for each dirty binding unit when resetting context state. Also
restore active texture unit if necessary.
Test: Capture The Sims Mobile
Bug: angleproject:4599
Change-Id: Iae3e03e6c5b0a35d5bb95bf07397d7894355502b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4927869
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Mike Schuchardt <mikes@lunarg.com>
|
|
acb0ae09
|
2023-10-27T13:38:09
|
|
Vulkan: Swizzle YUV output from GL component order to vulkan
Since OpenGL and vulkan has different YUV component ordering, we need to
swizzle the component form GL to vulkan when we write YUV data to output
variable. The computation in shader will still carry out in OpenGL
order. This CL swizzles component for the YUV output variable.
Bug: b/223456677
Change-Id: Ie34bbc723bf3723ac65f7931aeab086c92610271
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4985622
Commit-Queue: Charlie Lao <cclao@google.com>
Reviewed-by: Chris Forbes <chrisforbes@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
3b555e8d
|
2023-10-26T00:00:00
|
|
GL: Add emulateClipOrigin workaround
Older Adreno drivers apply GL_CLIP_ORIGIN_EXT
to the framebuffer instead of the clip space,
thus causing various side-effects.
Used a uniform to emulate the correct behavior.
Drive-by:
* Fixed a typo in ClipControlTest.OriginFrontFacing
Fixed: angleproject:8392
Change-Id: I2f7145977ab0e11dc88e8dbfec2cd32c4c31f830
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4987326
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
|
|
95fe7e47
|
2023-10-27T14:07:52
|
|
[Android] Update NDK version check for hardware buffer.
The function used for checking if hardware buffer is supported requires
NDK 29, but is currently checking if 26+ is in use.
This was not an issue before, but when updating the minimum SDK (and
NDK) version in Chromium, this led to an inconsistency.
For now, increasing the version requirement to 29+, and therefore also
removing the unnecessary branch for lock planes support.
Bug: chromium:1497004
Change-Id: I3d6e60e51db0831ee81d817aec90760d7680cc31
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4985624
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Kenneth Russell <kbr@chromium.org>
|
|
a7882c41
|
2023-10-27T09:32:07
|
|
Skip InstancingTestES3.LargeDivisor on Linux ASAN
Tests a large divisor and hits an emulation path on SwiftShader, causing
flaky timeouts on asan bots.
Bug: angleproject:7900
Change-Id: Ia82941e67867816c8330472f4f2ea8d897fa9636
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4982910
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Auto-Submit: Roman Lavrov <romanl@google.com>
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Commit-Queue: Roman Lavrov <romanl@google.com>
Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
|
|
06819324
|
2023-10-12T00:00:00
|
|
Metal: Linearize PVRTC1 blocks for buffer uploads
PVRTC1 blocks are stored in a reflected Morton order
and need to be linearized for buffer uploads in Metal.
Fixed: angleproject:8376
Change-Id: I59497aaf49eb57aa93e346d62d56c69535555fd9
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4973955
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
|
|
eca38a10
|
2023-10-26T11:02:38
|
|
Vulkan: Supress new DrawNone VVL errors
Errors:
VUID-vkCmdDraw-None-09000
VUID-vkCmdDrawIndexed-None-09002
Bug: angleproject:8394
Change-Id: If43390e837df088ba7a6d0c7eb5947927ad186d1
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4979786
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
|
|
3596ab4c
|
2023-10-26T10:11:17
|
|
Metal: Disable prebuilt shaders on iOS.
Chromium's Mac SDK is missing files needed to build for iOS:
LLVM ERROR: Error opening
'/Volumes/Work/s/w/ir/cache/xcode_ios_15a507.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/metal/macos/bin/../lib/clang/32023.35/lib/darwin/libmetal_rt_ios.a':
No such file or directory!
Bug: chromium:1385510
Change-Id: Iee7d6f477ffbebbbdca22e8377f244d2d13dfe66
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4980045
Reviewed-by: Roman Lavrov <romanl@google.com>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
5dd0c842
|
2023-10-24T13:48:29
|
|
Vulkan: improve memory type mismatch issue.
for dynamic buffer usage, the memoryTypeIndex
returned from findMemoryTypeIndexForBufferInfo
not used. if we add more flags like
VK_MEMORY_PROPERTY_HOST_CACHED_BIT at alloction.
the actual memory type allocated may not have such flag.
Bug: b/306763053
Change-Id: I778e51fdd5ce0bc0810a965c45b5763a155fc391
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4973574
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Hailin Zhang <hailinzhang@google.com>
Reviewed-by: Charlie Lao <cclao@google.com>
|
|
fdf4c6a6
|
2023-10-24T12:09:51
|
|
Add test for attrib rebinding from ARRAY_BUFFER to client.
Failure was found in Dragonmania game, where on switching from
ARRAY_BUFFER to client attrib pointer without updating the stride,
ANGLE assumed no change in the pipeline.
Bug: b/306472834
Change-Id: I30f7a478ed62f4356317156b50558166cb7c4c01
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4977168
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Charlie Lao <cclao@google.com>
|
|
43187a24
|
2023-10-25T09:43:56
|
|
Vulkan: remap YUV clearColor component from GL order to vulkan order
For EXT_YUV_TARGET, OpenGL and vulkan uses difefrent mapping between YUV
to RGB. OpenGL spec says "When clearing YUV Color Buffers, clear color
should be defined in yuv color space and so floating point r, g, and b
value will be mapped to corresponding y, u and v value and alpha channel
will be ignored.", but vulkan spec says "Values in the G, B, and R
channels of the color attachment will be written to the Y, CB, and CR
channels of the external format image, respectively.". This CL adjusts
clear color to remap the clear color from GL ordering to vulkan
ordering.
This CL also adds a temporary workaround for ARM driver bug where they
were looking at unused color attachment instead of resolve attachment.
Bug: b/223456677
Change-Id: I9800bffc18ccd9d77b4e86995161cdde06257e1f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4973355
Reviewed-by: Chris Forbes <chrisforbes@google.com>
Commit-Queue: Chris Forbes <chrisforbes@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
4f611a1f
|
2023-10-24T20:56:19
|
|
Vulkan: Remove RendererVk::collectAllocationGarbage
Instead of adding separate method overload `DestroyGarbage()` method.
This will avoid checking `mUse` and creating garbage list twice.
Bug: b/218891184
Change-Id: If56ffe72a639021b1fd37feb02ebb91f62ad0933
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4974318
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Igor Nazarov <i.nazarov@samsung.com>
Reviewed-by: Charlie Lao <cclao@google.com>
|
|
729e19ac
|
2023-10-24T15:31:17
|
|
Remove essl3 extension requirement for ES3 texture parameters
The extensions are not clear about support for the swizzle parameters
with external textures. Other parameters are mentioned with specific
validation (which is handled in ValidateTexParameterBase). Simply
let the other validation handle these parameters and allow the
swizzle to be forwarded.
Bug: chromium:1493448
Change-Id: Ic34d4c124c5493fef796322b5237541e557fd7ab
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4973157
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
|
|
a9b01747
|
2023-10-25T10:49:56
|
|
Metal: Add fall back to from-source shader compilation
We can't compile Metal shaders at build time without the chromium
build directory and mac_sdk.gni. Add a graceful fallback to building
the shaders from source at runtime in this case.
Also detect the iOS simulator in gn and disable shader compilation.
We don't have all the Mac SDK files needed to build shaders for this
target yet.
Bug: chromium:1385510
Change-Id: Ibd1b36f9d97e7340a9742cba0c9c5f2221cd9a8d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4974918
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
|
|
9e5f5188
|
2023-10-24T18:43:12
|
|
Reswizzle results of YUV sampling operations
Change-Id: Id6eee9e0d9e2b80d48c80f27bc8e670a5621d263
Test: ImageTestES3.* 24 -> 15 failures
Bug: b/223456677
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4970337
Commit-Queue: Charlie Lao <cclao@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
|
|
13776ac3
|
2023-10-24T11:10:25
|
|
Compile with optimize_max instead of default_optimization
Android builds default to aggressive optimization for size (-Oz) which
results in subpar performance in some spots.
AFAICT the effect of this change on cflags is:
-Oz -enable-ml-inliner=release
to
-O2
Note that -enable-ml-inliner=release has a more significant impact on
the binary size than -Oz/-O2:
With it: -Oz 5.7M, -O2 6.15M
Without it: -Oz: 6.3M, -O2 7.1M
So this change goes 5.7M -> 7.1M (+1.4M). That's in standalone ANGLE
builds. Unsure if Chrome builds might be different.
Skipping a few dEQP tests where this switch seems to uncover UB.
Bug: b/306391262
Bug: b/307584642
Change-Id: I44d0f3bcf25de0c36a4228895cad19ea38502cbf
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4968419
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Commit-Queue: Roman Lavrov <romanl@google.com>
|
|
562d4be3
|
2023-10-20T14:33:05
|
|
Clear pending program linking in Context::onDestroy
When destroying Context, ANGLE resets any internal state before
releasing allocated objects, such as Programs and Shaders. When
destroying a program, any pending program linking is resolved via
Program::resolveLink. This results in trying to access the Context state
that’s just been reset.
To work around this, we ensure there are no pending links before
resetting the Context state.
Bug: angleproject:8380
Change-Id: I599c7e5a82b0e6bf14df1263006e10d8a9cb0b38
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4957715
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
|
|
db38707a
|
2023-10-19T18:08:51
|
|
Metal: Compile mtllib at build time.
Reworks gen_mtl_internal_shaders.py to only generate the combined metal
source file, mtl_internal_shaders_autogen.metal.
metallibs are now compiled at build time using gn actions.
This allows the Chrome and WebKit build process to use the same code
for loading the builtin shaders even though they compile them in
different ways.
We now only build the mtllib for the OS we're currently building for.
Bug: chromium:1385510
Change-Id: Ie3b4f66c48a7e0eccd5fe664f988e407f452795c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4583134
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Alexey Knyazev <lexa.knyazev@gmail.com>
|
|
c22f46b5
|
2023-10-23T11:52:20
|
|
Update rgb-565-no-depth-no-stencil test suite names
Replace the "-" with "_" in the test suite names
to be consistent with other test suite name formats.
Bug: b/297901032
Change-Id: Idbfc1bc7aa7cef4382e3cdd3e223db28f414f15e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4968792
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
|
|
65f6c2ea
|
2023-10-22T18:07:55
|
|
Metal: always implicitly resolve MSAA render buffers on tiled GPUs.
On tile based GPUs, implicitly resolving MSAA render buffers to
single-sampled is preferred. Because it would save bandwidth by avoiding
storing the MSAA textures to memory. Furthermore resolving as
StoreAction is almost a free operation on these GPUs.
Traditional desktop GPUs almost always store MSAA textures to memory
anyway, so this feature would have no benefit besides adding additional
resolve step as well as memory overhead of the hidden single-sampled
textures.
Bug: chromium:1486094
Change-Id: I5eb3b1314560024dd5c0834b0c0b43a6b4d3d51b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4962114
Commit-Queue: Quyen Le <lehoangquyen@chromium.org>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
4b59e4c6
|
2023-10-17T17:47:20
|
|
Add a test to check glReadPixels format and type
In GLES 3.2 spec
https://registry.khronos.org/OpenGL/specs/es/3.2/es_spec_3.2.pdf,
section 16.1.2, it says the following glReadPixels type
and format should work:
The second is an implementation-chosen format from
those defined in table 8.2... The values of format and
type for this format may be determined by calling
GetIntegerv with the symbolic constants
IMPLEMENTATION_COLOR_READ_FORMAT and
IMPLEMENTATION_COLOR_READ_TYPE, respectively.
The implementation-chosen format may vary depending
on the format of the selected read buffer of the
currently bound read framebuffer.
Add a test to check that when reading from the default
framebuffer, using the format and type retrieved from
IMPLEMENTATION_COLOR_READ_FORMAT and
IMPLEMENTATION_COLOR_READ_TYPE works.
Bug: b/306256081
Change-Id: I1e94087aac8c803bcc5db3515ed56291349daf28
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4950844
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Yuxin Hu <yuxinhu@google.com>
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
|
|
e4a267e5
|
2023-10-20T16:10:50
|
|
Vulkan: Fix YUV external format resolve attachment load/storeOp
When YUV external format resolve attachment is used, and
nullColorAttachmentWithExternalFormatResolve is true, the loadOp and
storeOp are packed in color attachments.When we setup the resolve
attachment, we must use the color attachment information instead of
general resolve code path (where there is always a color attachment).
Without this fix, the resolve attachment is always uses loadOp=DontCare
which is wrong.
Bug: b/223456677
Change-Id: Ib41eb438aedbcd9a37c356540e81cdf7b9610a20
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4960502
Reviewed-by: Chris Forbes <chrisforbes@google.com>
Commit-Queue: Charlie Lao <cclao@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
9298baa9
|
2023-10-20T10:26:00
|
|
Vulkan: Fix ImageTestES3.RenderToYUVAHB assertion
The bug here is that for YUV resolve, we always set mTransience to
YuvResolveTransient. And isImageTransient() returns true if mTransience
!= Default. And if image is transient, we will do unresolve, which is
incorrect here. For nullColorAttachmentWithExternalFormatResolve() case,
the image is actually not transient. This CL will only set transience to
YuvResolveTransient if we need to create a transient color attachment.
This CL looks at mImage->getExternalFormat() as the answer for
isYUVResolve instead of rely on transience.
Bug: b/223456677
Change-Id: I1bc176df22b0abc91d668a178e48d6b90eacbdd7
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4959194
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Chris Forbes <chrisforbes@google.com>
Commit-Queue: Charlie Lao <cclao@google.com>
|
|
6188c0a6
|
2023-10-23T16:47:10
|
|
Unsuppress VUID-vkCmdEndDebugUtilsLabelEXT-commandBuffer-01912
VUID removed in
http://github.com/KhronosGroup/Vulkan-ValidationLayers/pull/5941
Bug: chromium:1420265
Change-Id: I8e3b9462df5e250c97c6bff02635cd28fec2a4e4
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4967241
Auto-Submit: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Reviewed-by: Roman Lavrov <romanl@google.com>
Commit-Queue: Roman Lavrov <romanl@google.com>
|
|
6258acae
|
2023-10-19T00:00:00
|
|
GL: Add resyncDepthRangeOnClipControl workaround
Some drivers do not apply GL_CLIP_ORIGIN_EXT and
GL_CLIP_DEPTH_MODE_EXT state changes until other
transformation states are updated.
As a workaround, force-resync the depth range on
clip control updates.
Fixed: angleproject:8381
Change-Id: I26f95108e9419be30ea0b562e02ab4bae78f65bb
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4966525
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
ec29008a
|
2023-10-19T00:00:00
|
|
GL: Fix extended dirty bits sync
* Use extendedBitMask when syncing
extended dirty bits to skip bits
ignored by the current operation.
* Use extendedBitMask for unsetting
backend-local extended dirty bits.
Fixed: angleproject:8382
Change-Id: I0bda18d801805b30d7cb071366353af05a44ab57
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4960055
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
ba65feb4
|
2023-10-18T17:33:38
|
|
Vulkan: Limit mutable texture flush to one update
In case there are many updates for a mutable texture, flushing
it preemptively can reduce performance, especially if it is done
repeatedly.
* Added getLevelUpdateCount() to ImageHelper.
* Previous mutable textures will now be flushed only if they have
exactly one update per mip level/cubemap face (if defined).
* This means that mutable textures with no data will also not be
flushed.
* Added unit tests for single-level texture flushing and situations
with no updates or more than one update.
Bug: b/285613719
Change-Id: I1592ecf502051a55ebfbb7fcd22577c9ce87bf43
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4953847
Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
49fd8eda
|
2023-10-20T14:23:38
|
|
android_helper: improve _RemovePrefix logging
Random stuff gets in there sometimes, such as:
"cmd: Failure calling service package: Broken pipe (32)"
RemovePrefix just raises that it doesn't start with "package:" so the
issue doesn't show up in logs.
Bug: b/296921272
Change-Id: Ifae4e3c0c7717514401bf1109febf8e70fff6527
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4959473
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
Reviewed-by: Roman Lavrov <romanl@google.com>
Auto-Submit: Roman Lavrov <romanl@google.com>
Commit-Queue: Roman Lavrov <romanl@google.com>
|
|
d2de7451
|
2023-10-19T14:10:44
|
|
Vulkan: Fix VK_android_external_format_resolve VVL error part 5
Fix assertion in RendererVk::getFormatFeatureBits(). When formatID is
external format, we can not use vkGetPhysicalDeviceFormatProperties to
get the formatFeature (since VkFormat is undefined). To fix this, we
keep the formatFetaure that returned from AHB in the
ExternalYuvFormatInfo and use that in getFormatFeatureBits() if it is
external format.
This also fixes the VVL error VUID-VkImageCreateInfo-pNext-02396: The
Vulkan spec states: If the pNext chain includes a
VkExternalFormatANDROID structure whose externalFormat member is not 0,
flags must not include VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT
Bug: b/223456677
Change-Id: I625c2bf4fe534fa206918b16772ac3ac7c6fa79a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4956117
Reviewed-by: Chris Forbes <chrisforbes@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Charlie Lao <cclao@google.com>
|
|
80e2d8d7
|
2023-10-19T13:53:32
|
|
Vulkan: Update PipelineProgram if mStreamingVertexAttribsMask dirty
When mStreamingVertexAttribsMask bit chnages, we are going to switch
between a internal buffer and user's buffer. We must update graphics
pipeline program, even if bufferOnly is true.
Bug: b/303219048
Change-Id: I0536cb7bcd6ed8f1de39aaea5bd6cd6eef61c5e1
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4957193
Commit-Queue: Charlie Lao <cclao@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
679fe65d
|
2023-10-19T13:59:52
|
|
Attempt to fix FixedQueue.ConcurrentPushPopWithResize flakiness
If dequeueThread has finished while the enqueue thread is sleeping,
queue might still be full once enqueueThread wakes up. In this case,
push call will hit assertion since queue is full. This CL makes the
enqueueThread bail out if dequeueThread already finished.
Bug: chromium:1493831
Change-Id: I9e3ad957c5d2eb15c5b409bb818c03dc807f3518
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4957194
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Commit-Queue: Charlie Lao <cclao@google.com>
|
|
c153d4a5
|
2023-10-18T18:12:19
|
|
Set isYUV to true for "EXTERNAL" formats
These external formats are all YUVs so far. It is more correct to set
isYUV to true than set to false.
Bug: b/223456677
Change-Id: Ib9eb937754f4c085fbcc6768bb7a93d3c28317c1
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4953919
Reviewed-by: Chris Forbes <chrisforbes@google.com>
Commit-Queue: Charlie Lao <cclao@google.com>
|
|
464dbb61
|
2023-10-18T17:49:14
|
|
Vulkan: Fix VK_android_external_format_resolve VVL error part 4
VUID-VkWriteDescriptorSet-descriptorType-01946: The Vulkan spec states:
If descriptorType is VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE, then the
imageView member of each pImageInfo element must have been created
without a VkSamplerYcbcrConversionInfo structure in its pNext chain. The
bug here is that right now these angle::Format::External{n} returns
isYUV false. This CL changes the check of isYUV to
getYcbcrConversionDesc().valid().
Bug: b/223456677
Change-Id: Ifc97f738972a24c4e5dec3e37d8d5896efa9fe80
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4953917
Commit-Queue: Charlie Lao <cclao@google.com>
Reviewed-by: Chris Forbes <chrisforbes@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
4d7fc442
|
2023-10-18T12:49:06
|
|
Vulkan: Fix VK_android_external_format_resolve VVL error part 3
VUID-VkRenderPassAttachmentBeginInfo-pAttachments-parameter: The Vulkan
spec states: If attachmentCount is not 0, pAttachments must be a valid
pointer to an array of attachmentCount valid VkImageView handles. The
bug here is that when nullColorAttachmentWithExternalFormatResolve is
true, there is no color attachment, but the RenderPassDesc still appears
having a color attachment because we need to store the formatID in it.
This CL changes to use mFramebuffer.getImageViews().size() instead of
mRenderPassDesc.attachmentCount() which is more correct anyway.
Bug: b/223456677
Change-Id: I0f0947f0c642bac9cd18a80525b92c62ef0723ec
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4952969
Commit-Queue: Charlie Lao <cclao@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Chris Forbes <chrisforbes@google.com>
|
|
fce367c9
|
2023-10-18T11:36:59
|
|
Vulkan: Fix VK_android_external_format_resolve VVL error part 2
VUID-VkFramebufferCreateInfo-flags-03201 The Vulkan spec states: If
flags includes VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, the usage member of
any element of the pAttachmentImageInfos member of a
VkFramebufferAttachmentsCreateInfo structure included in the pNext chain
that refers to an attachment used as a color attachment or resolve
attachment by renderPass must include
VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT. The bug here is that when we create
VkImage for AHB for rendering, we specify mUsage as Sample. This CL adds
COLOR_ATTACHMENT if it supports resolve.
This CL also adds VkAndroidHardwareBufferFormatProperties2ANDROID format
query for debug logging.
VUID-VkImageViewCreateInfo-usage-08931 is temporary added to skip list
due to ARM driver bug. The bufferFormatProperties returned does include
VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT. Will remove once driver is
fixed.
Bug: b/223456677
Change-Id: Ibccf5f19975654fd94b00ae10e15ac986f7866dd
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4952962
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Chris Forbes <chrisforbes@google.com>
Commit-Queue: Charlie Lao <cclao@google.com>
|
|
889b01ef
|
2023-10-17T12:13:10
|
|
Vulkan: Fix VK_android_external_format_resolve VVL error part 1
VUID-VkSubpassDescription2-nullColorAttachmentWithExternalFormatResolve-09337:
The Vulkan spec states: If the
nullColorAttachmentWithExternalFormatResolve property is VK_TRUE and
pResolveAttachments is not NULL, for each resolve attachment that has a
format of VK_FORMAT_UNDEFINED, the corresponding color attachment must
have the value VK_ATTACHMENT_UNUSED
VUID-VkFramebufferCreateInfo-attachmentCount-00876 The Vulkan spec
states: attachmentCount must be equal to the attachment count specified
in renderPass
Fix assertion in FramebufferVk::getFramebuffer()
Bug: b/223456677
Change-Id: I538a44753a2ba9b432fa3b1814748942cd8a3500
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4948652
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Charlie Lao <cclao@google.com>
|
|
05c5cef0
|
2023-10-17T21:16:52
|
|
Manual roll vulkan-deps from 68a0a794aa0a to 92b29883afea (1 revision)
Manual roll requested by solti@google.com
https://chromium.googlesource.com/vulkan-deps.git/+log/68a0a794aa0a..92b29883afea
Changed dependencies:
* vulkan-validation-layers: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-ValidationLayers.git/+log/7ef2b9a6bb..deb215c083
If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/vulkan-deps-angle-autoroll
Please CC angle-team@google.com,solti@google.com on the revert to ensure
that a human
is aware of the problem.
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
Bug: b/306178740
Tbr: solti@google.com
Change-Id: I1060b8e021e28e70ca11305dc60a8fa8462e1eff
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4950550
Commit-Queue: Solti Ho <solti@google.com>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
|
|
384a29a8
|
2023-07-27T10:51:07
|
|
Reland: GL: Remove EGL_EXTERNAL_CONTEXT_SAVE_STATE_ANGLE
Now that Chromium no longer uses it.
This is a reland of:
https://chromium-review.googlesource.com/c/angle/angle/+/4724768
Bug: angleproject:5509
Change-Id: I650e598580539fbe404f2ec4b56b20b56b948f6c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4903079
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
cfc40d2b
|
2023-07-19T17:47:13
|
|
Vulkan: Adjust clear color precision for GL_RGB5_A1 FBO
When clear color has more precision than the framebuffer
format can hold, dithering is automatically applied on
some hardware.
This issue causes below dEQP tests to fail when the FBO
color attachment format is RGB5_A1:
KHR-GLES31.core.draw_buffers_indexed.color_masks
KHR-GLES32.core.draw_buffers_indexed.color_masks
Adjust the clear color precision for RGB5_A1 format to
workaround the issue.
We can remove this workaround once the vulkan driver
fixes the auto-dithering problem.
Bug: b/292282210
Change-Id: Ic3ffebd2d20c8782612619a60d1ec2cc6d613c22
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4937472
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Roman Lavrov <romanl@google.com>
Commit-Queue: Yuxin Hu <yuxinhu@google.com>
|
|
36439d9c
|
2023-10-12T00:00:00
|
|
Metal: Fix PBO uploads of PVRTC1 textures
Do not override row pitch values for PVRTC1
textures during internal backend operations.
Instead, set bytesPerRow to 0 before calling
replaceRegion just to pass Metal Validation.
Enforce CPU path for PBO uploads until
GPU block linearization is implemented.
Bug: angleproject:8376
Change-Id: I80b9ec69364d55cd9f51005f4d1a180e05e71c2c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4949350
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
|
|
cc61dded
|
2023-10-17T13:21:14
|
|
Vulkan: Remove fixed VU suppressions
Bug: angleproject:2866
Bug: angleproject:4928
Bug: angleproject:5027
Bug: angleproject:7843
Bug: angleproject:8076
Bug: b/175584609
Change-Id: I1a3ccdc92be73874e7599961bae2a0e8c7497b1a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4947653
Commit-Queue: Charlie Lao <cclao@google.com>
Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
|
|
0be59b3d
|
2023-10-17T17:31:05
|
|
Vulkan: disable warmUpPipelineCacheAtLink for Venus
The same cache miss is seen on MESA ANV and MESA RADV drivers. Together
with already disabled ARM drivers, we'd disable for Venus as a whole for
monolithic pipelines. This won't affect later Venus GPL enablement on
supported host drivers like ANV and RADV.
Bug: b/299532942
Test: affected title is semi-playable
Change-Id: Iaec0d43b15b64b6b74dfa68021f8a5f2fe6cca8d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4948694
Commit-Queue: Yiwei Zhang <zzyiwei@chromium.org>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
Auto-Submit: Yiwei Zhang <zzyiwei@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
|
|
3b28bca0
|
2023-10-11T09:49:54
|
|
Allow using RGBA IOSurfaces with GL_RGBA format for EAGL backend
As https://crrev.com/c/4877334 switched RGBA IOSurfaces to GL_RGBA
to work with ANGLE/Metal, some tests(e.g. web tests) on iOS failed
to create an IOSurface because ANGLE'S EGL backend still still
binds IOSurfaces as GL_BGRA_EXT even though we expect the IOSurface
to really be RGBA. To fix it, this CL allows using RGBA IOSurfaces
with GL_RGBA format by adding a GL_RGBA entry to kIOSurfaceFormats.
See also the comment[1] for better explanation.
[1] https://crrev.com/c/4918590/comments/1e44e971_50c3d780
Bug: chromium:1489586
Change-Id: Ifa215318401edb892fd5527c35c7d30871e82a83
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4930309
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Sunny Sachanandani <sunnyps@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
e076d6cf
|
2023-10-17T11:39:10
|
|
Move invalid uniform protection to the frontend.
The frontend potentialy indexes into mUniformLocations with invalid
uniform locations while validation is disabled too. Move the validation
from the Metal backend to the frontend.
Bug: chromium:1484878
Change-Id: I92bc43aa28cfa26d601bb28f318860375f618608
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4947652
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
2e11fcc5
|
2023-10-16T16:40:35
|
|
Vulkan: Fix assertion when YUV image attached to resolve attachment
When YUV image attached to resolve attachment, mSamples is 1. Righ now
the code assumes resolve is a MSRT attachment, so it asserts mSamples>1.
This CL adds a new API packYUVResolveAttachment so that we can assert
properly for YUV and MSRT.
Bug: b/223456677
Change-Id: Ib65fd3fe1e6561b85395cc27204bbd85c1f464c3
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4942907
Commit-Queue: Charlie Lao <cclao@google.com>
Reviewed-by: Chris Forbes <chrisforbes@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|