|
02e7f967
|
2023-05-25T14:54:49
|
|
Translator: Remove the "variables" option
Variable collection is invariably enabled by the front-end as well as
other major users of ANGLE such as Firefox. All translator backends
except GLSL force-enable variable collection either way.
This change removes this compile option and enables variable collection
unconditionally.
The flag itself remains in ShCompileOptions until references to it are
removed from Chromium.
Bug: chromium:1447314
Change-Id: I4d3b30c1bfbd345c5ad269abc62c0a6a59de2f56
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4568524
Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
3f97a29e
|
2023-05-26T15:03:02
|
|
D3D11: Also unbind DSVs when unbinding conflicting resources
Depth stencil views can also cause conflicts when trying to bind them
resource as a shader resource and depth stencil at the same time,
even for compute shaders.
Bug: dawn:1291, angleproject:8171
Change-Id: I759556f7a8a888f1d4d6a042c26d16eedd83d2b0
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4567573
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
055c72ac
|
2023-05-25T09:22:26
|
|
Suppress AllocateVMAImageWhenDeviceOOM for AsyncCQ
Bug: angleproject:8174
Change-Id: I28e7e8bdc26055f2ad03f2842676330430b579b1
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4568283
Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
Auto-Submit: Amirali Abdolrashidi <abdolrashidi@google.com>
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
|
|
c5282661
|
2023-05-24T15:33:19
|
|
Tests: Add Infinity Ops Trace
Test: angle_trace_tests --gtest_filter=TraceTest.infinity_ops
Bug: b/284273677
Change-Id: I19daa0a0e96a619ff3ec18074012cda213854947
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4566950
Commit-Queue: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
|
|
9b1ff7b1
|
2023-05-25T14:13:13
|
|
Translator: Fix SPIR-V translation without "variables" flag
This flag is now assumed to always be true for the SPIR-V (and MSL)
translators. They use the collected variables during translation.
Bug: chromium:1447314
Change-Id: I69d31ce8144aec0bd2a7263bad6e5a366e922740
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4567830
Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
d9192d9a
|
2023-05-25T14:43:41
|
|
android_helper sets return code to 1 when test json is missing
e.g. FATAL failures / other crashes
Bug: b/278585075
Change-Id: I01850e547d782c302658653780b93699e9e91ffa
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4567831
Auto-Submit: Roman Lavrov <romanl@google.com>
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Commit-Queue: Roman Lavrov <romanl@google.com>
Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
|
|
aea88562
|
2023-05-19T16:52:43
|
|
Reland "Metal: Optimized BufferSubData per device"
This reverts commit ee64836f702332adaca58d9f452063a04b2da955 ,
relanding the patch stack described there.
Between patchsets 1 and 5:
- The shadow buffer allocation has been replaced with a multimap of
precisely-sized buffers, rather than rounding up buffer sizes.
- Garbage collection of shadow buffers is triggered in three situations:
- A certain number of context switches have occurred; this number
was hand-tuned to avoid GC every frame.
- A certain number of command buffer submissions has occurred; this
number was hand-tuned to GC no more often than every few seconds
on representative workloads.
- The total size of the allocated shadow buffers is more than 1 MB,
and either more than twice the size at the last garbage
collection, or 64 MB more than at the last garbage collection. In
this case, aggressive GC is performed in order to reclaim shadow
buffers more quickly.
Performance before and after these changes appears identical on
microbenchmarks. On one Figma test case, comparing GPU memory
allocated inside the BufferManager, peak consumption is decreased by
over 75%, and steady-state consumption decreases by over 88%.
Patchset 6 adds a needed workaround for a bug in the
AMDMTLBronzeDriver affecting uploads of client-side data, and
therefore some dEQP tests. It also streamlines the aggressive GC.
Bug: angleproject:7544
Change-Id: I81b061f0b33c27fa403527fa12d626f4e9c88ebe
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4497413
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
409bf134
|
2023-05-23T00:00:00
|
|
Metal: Adjust iOS and macCatalyst caps
* Fix swapped iOS and macCatalyst versions for
EXT_blend_func_extended and EXT_depth_clamp
* Always use 13.1 as the lowest macCatalyst version
Bug: angleproject:8121
Bug: angleproject:8047
Bug: angleproject:8015
Change-Id: I1f117de259d211cb8ce2463df59f8fee0e709ef5
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4568323
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
|
|
c80c74a5
|
2023-05-25T12:58:23
|
|
Skip honkai_star_rail on Intel/windows
Consistenly making Intel perf bots red by getting stuck
Bug: angleproject:8175
Change-Id: I96b31d201b5b161c89ba6654cea48becbbc35169
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4567829
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Roman Lavrov <romanl@google.com>
Auto-Submit: Roman Lavrov <romanl@google.com>
|
|
93eee5d2
|
2023-05-18T16:33:25
|
|
Vulkan: Add the Sample decoration when sample shading
The Vulkan spec was clarified that per-sample interpolation is not
necessarily done when sample shading is enabled in the API. In this
change, a SPIR-V transformation is added to add the Sample decoration to
whatever varying is missing it when sample shading is enabled in the
API.
Bug: b/283017896
Change-Id: I121c740add6fc015c9140e6a04d37ea5300c8e57
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4544591
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
|
|
c18972fd
|
2023-04-05T10:22:38
|
|
Tests: Add Gangstar Vegas trace
Test: angle_trace_tests --gtest_filter=TraceTest.gangstar_vegas
Bug: b/280785771
Change-Id: Ia1d5de22d45979b44b0711fc510d2dfb7600b910
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4507340
Commit-Queue: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
|
|
ad386845
|
2023-05-24T11:14:12
|
|
Tests: Add Empires and Puzzles trace
Test: angle_trace_tests --gtest_filter=TraceTest.empires_and_puzzles
Bug: b/283500712
Change-Id: I3b4ed61ebe8948319ca74e79cb74053b554b0009
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4551449
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
|
|
24504dd1
|
2023-05-23T20:27:49
|
|
Tests: Add Kentucky Route Zero trace
Test: angle_trace_tests --gtest_filter="*kentucky_route_zero*"
Bug: b/284061674
Change-Id: Iab42008bfa3604e306628e90abc04b7ceb6fd4bd
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4559458
Reviewed-by: Mark Łobodziński <mark@lunarg.com>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
|
|
fb32aef5
|
2023-05-21T20:49:06
|
|
Tests: Add Galaxy S23 deqp expectations
Expectations for the following tests:
angle_deqp_gles2_tests
angle_deqp_gles3_tests
angle_deqp_gles31_tests
angle_deqp_khr_gles2_tests
angle_deqp_khr_gles3_tests
angle_deqp_khr_gles31_tests
angle_deqp_khr_gles32_tests
Bug: b/281128706
Bug: angleproject:8157
Change-Id: If69361db7b4c6b739a84d158320ea86eda2d14f2
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4559448
Auto-Submit: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Ian Elliott <ianelliott@google.com>
Commit-Queue: Ian Elliott <ianelliott@google.com>
|
|
c74dae15
|
2023-05-12T12:45:44
|
|
Vulkan: patch vertex attrib and shader input mismatch.
opengl es spec didn't specified vertex attirb input data type
mismatch with vertex input data type. For this change, it will
change the attrib format to match the vertex input format. while
keep the same data size. (expect normalized data)
Bug: b/280241844
Change-Id: Ib28a18fe495b779d5bb0e8e43887bd36b0037dba
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4528299
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Hailin Zhang <hailinzhang@google.com>
|
|
6d936bef
|
2023-05-18T11:51:05
|
|
Restore sync_restricted_traces_to_cipd upload progress bar
https://crrev.com/c/4538368 suppressed stdout for all cipd invocations
to reduce noise. This restores stdout piping to the calling process for
uploads only, as cipd shows a useful progress bar during uploads.
Bug: angleproject:8137
Change-Id: Ida7e43bc55af4dda1be768c65784fe3bc0656955
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4545407
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
|
|
80e60bbc
|
2023-05-09T12:46:18
|
|
Validate non-precision qualifiers in GLSL shaders
Add validation to reject non-precision qualifiers on struct members
in GLSL shaders, as per the GLSL ES 3.2 specification,
section 4.1.8: Structures
Tests: KHR-GLES3*.shaders.negative.non_precision_qualifiers_in_struct_members
Bug: angleproject:8045
Change-Id: I863ae631b09ff773a826d542f387072491489699
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4534656
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Brandon Schade <b.schade@samsung.com>
|
|
9e47cbd3
|
2023-05-18T14:40:37
|
|
Capture/Replay: Rework trace EGLDisplay handling
Refactor the trace-replay EGLDisplay handling to allow
initializing the global EGLDisplay handle in the
InitializeReplay4() body. This included adding
support for eglGetCurrentDisplay() to the EGL-on-
WGL shim.
Test: angle_trace_tests --gtest_filter=infinity_ops
Bug: b/282725258
Change-Id: I2319fd9a35f8fb9c0a7f10547ca39f49ce402b8d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4546267
Reviewed-by: Roman Lavrov <romanl@google.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Mark Łobodziński <mark@lunarg.com>
|
|
7abc5248
|
2023-05-19T00:00:00
|
|
Vulkan: Enable VK_EXT_depth_clamp_zero_one
Replaced the 'depth_clamping' workaround
with the dedicated extension or explicit
fragment depth clamping.
Fixed: angleproject:3970
Bug: angleproject:8077
Change-Id: Ia7666fcb3e0e949922c13a3fd11b818cbc5a8e26
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4545084
Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
3f633521
|
2023-05-18T21:27:00
|
|
Vulkan: Fix handling inactive unnamed I/O blocks in SPIR-V
When an unnamed I/O block already exists, later inactive unnamed I/O
blocks were not being added to the list of inactive varyings, causing
the SPIR-V transformer to trip up
Bug: b/283017896
Change-Id: Ida5b38e1a03da2b336d5904caa44f53dbdfb8aa3
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4544590
Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Charlie Lao <cclao@google.com>
|
|
c04ad8e0
|
2023-05-17T10:59:36
|
|
Tests: Add Honkai: Star Rail trace
Test: angle_trace_tests --gtest_filter="*honkai_star_rail*"
Bug: b/283129009
Change-Id: I4c41345b83b7ea2429bccb8a814994bcb13a7486
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4545308
Commit-Queue: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
|
|
f382b244
|
2023-05-19T14:28:26
|
|
Add ci/linux-trace disabling logic to ANGLE script
Currently disabled by this line in chromium/tools/build repo:
https://crsrc.org/b/recipes/recipe_modules/angle/api.py;drc=e768c9b9c2a9b34346f9c009341761a034df7a00;l=91
I will remove that logic after this CL lands. This way we can decide
whether to run this test inside ANGLE repo.
Bug: angleproject:6085
Change-Id: I8efafb11149cda1fd47a5e9a95612e521823493a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4549681
Auto-Submit: Roman Lavrov <romanl@google.com>
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
|
|
7d4c6d1d
|
2023-05-09T12:19:54
|
|
Allow glDelete* while PLS is active
Banning glDelete* is extremely dangerous. It will almost definitely
cause memory leaks in client code, and it makes JS garbage collection
needlessly complex.
Instead, specify that PLS is implicity deactivated if the client deletes
anything that is attached to the current draw framebuffer during a PLS
rendering pass.
Bug: chromium:1421437
Change-Id: I3a18ee6b5d5567431e6fa3eccea58cb049845502
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4521436
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Chris Dalton <chris@rive.app>
|
|
45f91a8c
|
2023-05-08T13:11:44
|
|
Deinitialize PLS planes when their texture is deleted
The spec originally called for PLS planes to be converted to memoryless
when their texture was deleted, but this is not compatible with WebGL,
which does not support memoryless planes. Change the behavior to
deinitialize them instead.
This change requires the addition of a new observer message,
angle::SubjectMessage::TextureIDDeleted, which PLS uses to deinitialize
a plane when the app deletes its texture.
Bug: chromium:1421437
Change-Id: I58fd91003747160f0a1abc1a8a7a87668890ba1f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4518565
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Chris Dalton <chris@rive.app>
|
|
c1fc512b
|
2023-05-16T17:14:23
|
|
Manual roll VK-GL-CTS from e3b9db9ad121 to 876d164bd88a (32 revisions)
Manual roll requested by yuxinhu@google.com
* Skipped the following tests:
dEQP-EGL.functional.fence_sync.valid.egl_fence_persistent_buffer
KHR-GLES31.core.texture_buffer.texture_buffer_errors
https://chromium.googlesource.com/external/github.com/KhronosGroup/VK-GL-CTS.git/+log/e3b9db9ad121..876d164bd88a
2023-05-16 piotr.byszewski@mobica.com Merge vk-gl-cts/opengl-cts-4.6.3
into vk-gl-cts/main
2023-05-16 piotr.byszewski@mobica.com Merge
vk-gl-cts/opengl-es-cts-3.2.9 into vk-gl-cts/main
2023-05-15 piotr.byszewski@mobica.com Fix vkExtensionFunctions.inl
2023-05-15 javed@igalia.com Add coverage for specific synchronization2
access flags
2023-05-15 cturner@igalia.com Add VPS handling for h265 tests
2023-05-15 ziga@lunarg.com Fix api version check in entry_points test
2023-05-15 matt.coster@imgtec.com
VK_FORMAT_FEATURE_TRANSFER_{SRC,DST}_BIT are implied on Vulkan 1.0
without VK_KHR_maintenance1
2023-05-15 ziga@lunarg.com Set missing dynamic states in
null_color_blend_att_ptr tests
2023-05-15 scerveau@igalia.com vulkan-video: update ESExtractor to
v0.3.3
2023-05-15 cturner@igalia.com Add extra checks for FENV_ACCESS support
on 32-bit ARM
2023-05-15 rgarcia@igalia.com Test large values when converting from
float to 64-bit ints
2023-05-15 ziga@lunarg.com Enable graphicsPipelineLibrary feature when
libraries are used
2023-05-15 piotr.byszewski@mobica.com Merge vk-gl-cts/vulkan-cts-1.3.6
into vk-gl-cts/main
2023-05-15 alexander.galazin@imgtec.com Notice of withdrawal of Vulkan
CTS 1.3.2.x
2023-05-08 rgarcia@igalia.com Test multi-value sample mask with dynamic
rasterization samples
2023-05-08 rgarcia@igalia.com Test GPL with null
VkPipelineRenderingCreateInfo contents
2023-05-08 rgarcia@igalia.com Test EDS3 null pipeline state pointers
2023-05-05 ziga@lunarg.com Add tests for pipeline robustness with cache
2023-05-05 debarshid@google.com Implement Sync Tests between CPU and GPU
2023-05-05 chrisglover@google.com Add tests for EXT_gl_colorspace_bt2020
2023-05-05 cturner@igalia.com Fix
VUID-VkVideoSessionCreateInfoKHR-maxActiveReferencePictures-04849
2023-05-05 cturner@igalia.com Fix
VUID-vkCmdDecodeVideoKHR-pDecodeInfo-07163 validation error
2023-05-05 cturner@igalia.com Fix memory corruption during validation
for decode.h264_interleaving
2023-05-05 marcin.zajac@mobica.com fetch_sources.py for cygwin and mingw
2023-05-05 gleese@broadcom.com Fix VK/VK-SC generated file inclusion
2023-05-05 gleese@broadcom.com Remove unused VKUTIL_LIBS
2023-05-05 rgarcia@igalia.com Test read-only depth/stencil attachment
with VRS
2023-05-05 piotr.byszewski@mobica.com Merge vk-gl-cts/vulkan-cts-1.3.5
into vk-gl-cts/main
2023-05-04 rgarcia@igalia.com Test some EDS3 line rasterization
parameters with mesh shaders
2023-05-04 rgarcia@igalia.com Test dynamic blend equation with dual
source blending
2023-05-03 piotr.byszewski@mobica.com Update vulkan-docs to current
version
2023-05-03 cturner@igalia.com Update removeTags in fetch_sources.py for
glslang
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,yuxinhu@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://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug
Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
Bug: angleproject:8166
Bug: angleproject:8167
Bug: angleproject:8169
Change-Id: I0fb573b382e63bf4820a083759e57647f6159763
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4544088
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
|
|
7aadc962
|
2023-05-05T19:28:17
|
|
Ban transform feedback and blend extensions with PLS
Transform feedback can lead to render pass breaks in the Vulkan backend.
EXT_blend_func_extended may restrict the number of draw buffers
depending on API state, which can invalidate a PLS implementation.
KHR_blend_equation_advanced does not allow multiple draw buffers, which
is required by some PLS implementations.
Bug: angleproject:7279
Change-Id: Id89f0e485ee65f55d802b121018f13b0028d8029
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4510716
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Kenneth Russell <kbr@chromium.org>
|
|
5ab2fa96
|
2023-05-12T08:38:19
|
|
Vulkan: Move texture QFOTs to syncState()
... (and getAttachmentRenderTarget() which is syncState()-like
for deferred clear) so that QFOTs are not actually scheduled until
first use. SurfaceFlinger optimistically creates EGL images and
textures for AHBs in case it does need them in the future.
However, the images and textures may go unused. Prior to this
change, ANGLE would create pending QFOT barriers while importing
AHBs into EGL images and GL textures. However, SurfaceFlinger may
not be doing any "real work" (other than repeatedly creating and
destroying EGL images and GL textures) which would result in the
command buffers containing the QFOTs being flushed. This can
result in a large build up of unreleased memory (as the
VkDeviceMemory would still be kept alive by the reference from
the unflushed QFOT command buffer) and lead to the low memory
killer nuking processes.
Bug: b/282075554
Test: cts -m CtsOpenGLTestCases
-t android.opengl.cts.GLSurfaceViewTest
Test: adb shell dumpsys SurfaceFlinger
Test: angle_end2end_tests
--gtest_filter=ImageTestES3.AHBImportReleaseStress/ES3_Vulkan
Change-Id: I7776abb2c6f834e96aa3926c26e77c53352ee561
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4527437
Commit-Queue: Jason Macnak <natsu@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
10ac4803
|
2023-05-16T11:49:01
|
|
sync_restricted_traces_to_cipd checks for extra files
Do not allow files outside of the expected ones (TraceFiles in json)
* Ran this check on existing traces: we have a few extra cpp files in
goddess_of_victory_nikke, lilys_garden
Ask for confirmation before uploading (--upload to bypass)
Other cleanup (threading instead of multiprocessing, much less noisy
logging etc)
Upload is no longer done in parallel. This might mean slower upload of
large batches (batch upgrade in experimental?) but would make failures
easier to understand.
Bug: angleproject:8137
Change-Id: I71530b886541e8b1afe9d436bf300006afb06bd7
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4538368
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Roman Lavrov <romanl@google.com>
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
|
|
6f959e07
|
2023-04-28T16:00:11
|
|
Vulkan: Add non-device memory option for VMA image
* Updated the required flags for allocateAndBindMemory() to no longer
include VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT, though still preferred.
This allows VMA to allocate from another memory type if the device
is out of memory.
* Added a debug message to indicate when allocated memory for VMA image
does not have all the preferred property flags.
* Also added a warning in the case of memory allocation fallback.
* Added a perf counter to keep track of image allocation fallbacks from
the device memory.
* deviceMemoryImageAllocationFallbacks
* Added a test to make sure that VMA images can still be allocated from
other memory types even if device memory is unavailable.
* VulkanImageTest.AllocateVMAImageWhenDeviceOOM
Bug: b/280304441
Change-Id: Ic452c18ded25345cdb7e271442372b99aede045e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4493483
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
|
|
c94ee61c
|
2023-05-11T16:40:09
|
|
Tests: Update AHB test to skip if format/usage combo not supported
Bug: b/282075554
Test: angle_end2end_tests --gtest_filter=ImageTestES3.*/ES3_Vulkan
on Cuttlefish
Change-Id: Icd8a9ad71d5b59d5754f4c32f3c4dffb32bf845c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4527436
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
b526112d
|
2023-05-12T11:31:06
|
|
Tests: include system EGL configs for ES3.1 and ES3.2 tests
These are enabled with angle_test_enable_system_egl=true
Example:
[ OK ] ProgramPipelineTest32.CreateProgramWithTransformFeedbackVarying/ES3_2_EGL (280 ms)
Bug: b/278585075
Change-Id: Ic991b3bc6fa36a6856b28fcfc7a433ac183a2c4d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4526358
Commit-Queue: Roman Lavrov <romanl@google.com>
Auto-Submit: Roman Lavrov <romanl@google.com>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
|
|
25def1a0
|
2023-05-11T17:52:09
|
|
Android test runner expects 'gtest' and marks test list
gtest is passed as the first argument when running as
out/Android/angle_trace_tests, previously skipped via argv[2:]
--list-tests usually includes "Tests list:" / "End tests list." markers
around the list - which is how GetTestsFromOutput finds them, but we
didn't include them in stdout. There is some other noise in stdout on
Android so instead of printing full stdout just add the markers back
Bug: b/276474703
Change-Id: I20ba59eb25e543b005974674b0f3688cd767b1aa
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4519232
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Commit-Queue: Roman Lavrov <romanl@google.com>
|
|
914d798d
|
2023-05-10T14:30:15
|
|
Dedup Gold properties code
Updates ANGLESkiaGoldProperties to use the newer method of providing the
repo's root directory instead of completely overriding how the HEAD SHA1
is obtained.
There should be no functional change as a result of this.
Bug: chromium:1443021
Change-Id: I7464dabf2c31008b119c8f6a8454c6a7f8f9a68f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4521886
Auto-Submit: Brian Sheedy <bsheedy@chromium.org>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
|
|
8b9440b6
|
2023-05-01T15:31:01
|
|
Vulkan: add option to control pipeline cache data compression.
Bug: b/258207403
Change-Id: I487b1cadbacfa2f7ee889a8f58278307a126a391
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4497248
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Hailin Zhang <hailinzhang@google.com>
|
|
3d455fe4
|
2023-05-03T15:35:47
|
|
Android: Galaxy S23 support
This CL:
* Adds detection of the device
* Adds end2end test support
* end2end test expectations for Vulkan backend
* Works around driver issue with vkCmdSetLogicOpEXT
Test: angle_end2end_tests, angle_trace_tests
Bug: b/277717225, b/281128706
Bug: angleproject:8157
Change-Id: If6caa5b2ba0b9d7f94e1be0841bcff2ea1c34d89
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4509693
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
|
|
64680f53
|
2023-05-05T15:58:21
|
|
Scripts: Fix non-root hash check
Use run-as to ensure the file can be read by test app.
Test: angle_trace_tests on prod device
Bug: b/276742336
Change-Id: I006f40396712064ebe6d68e04de17537a8143320
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4509708
Commit-Queue: Roman Lavrov <romanl@google.com>
Reviewed-by: Roman Lavrov <romanl@google.com>
Auto-Submit: Cody Northrop <cnorthrop@google.com>
|
|
74d1da6c
|
2023-05-08T11:07:28
|
|
Add instruction for trace tests w/multiple devices
* Added instruction on running trace tests when more than one device
is available through adb.
Bug: None
Change-Id: I4522311d4ad3517634f9c34b7af8c546bf4665e9
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4509237
Reviewed-by: Roman Lavrov <romanl@google.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
|
|
577b6c8d
|
2023-05-05T10:49:04
|
|
Tests: Add Street Fighter IV CE trace
Test: angle_trace_tests --gtest_filter=TraceTest.street_fighter_iv_ce
Bug: b/281007960
Change-Id: I81da4b005c50e915090f342d50362e4f8f0ac1f3
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4508393
Commit-Queue: Mark Łobodziński <mark@lunarg.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
|
|
961788fd
|
2023-05-05T11:35:38
|
|
Capture/Replay: reorganize trace-related gni
Move trace-related code from gni/angle.gni to
src/tests/angle_traces.gni
Rename template angle_trace_library to angle_trace_libs as the idea is
for it to build multiple libs.
Name outside-of-apk lib group ${target_name}__unpacked_libs which is
more consistent with how targets are usually named in gn, and makes the
dependency explicitly tied to template instantiation.
Bug: b/276474703
Change-Id: I316f2a549063b8ebae177f4ffc0d4a8de1942384
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4508387
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Roman Lavrov <romanl@google.com>
|
|
903d9fdf
|
2023-01-19T15:37:45
|
|
Vulkan: Implement ExternalFence for use in SyncHelperNativeFence
`ExternalFence` allows concurrent usage in `CommandQueue` and
`SyncHelperNativeFence` classes eliminating need of additional
`vkQueueSubmit()` call.
Waiting in `CommandQueue` on `QueueSerial` or `ResourceUse` will ensure
corresponding state of the native FD (because `CommandQueue` will wait
on the same FD instead of some other fence).
After this change there will be only single `vkQueueSubmit()` call
from the `SyncHelperNativeFence::initializeWithFd()` method.
This CL and the follow-up is sufficient to fix the bugs below.
Bug: angleproject:8115
Bug: angleproject:8117
Test: angle_end2end_tests --gtest_filter=EGLSyncTest.AndroidNativeFence_ExternalFenceWaitVVLBug*
Change-Id: Ic562ecc71a95203454a1dc438589a13bcf3bff7f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4392879
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Igor Nazarov <i.nazarov@samsung.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
7d6d18e4
|
2023-05-05T09:48:19
|
|
Improve adb root handling
If `id -u` returns 0, adbd is already running as root (convenient fast
path for local dev and seems we have that on bots too)
If `which su` returns something, we should be able to get root.
If "su" is there but we can't get adb root, raise.
Go back to up to 10 seconds wait.
On my local device adb root is routinely taking ~4 seconds.
adb root restarts adbd on the device so it's expected not to be fast.
Bug: b/276742336
Change-Id: If720b9176ba18ebd9734c0b8288eabc5970b5ef8
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4508392
Commit-Queue: Roman Lavrov <romanl@google.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
|
|
3ad1d702
|
2023-05-04T15:57:43
|
|
angle_trace_tests_android_binaries: test -> group
We don't need it to be a test to begin with. But I looked into it
because test with use_raw_android_executable=True makes things
really complicated due to the way this is implemented upstream:
'''
this __dist target here
https://crsrc.org/c/testing/test.gni;drc=acb6ab509901650450fc387c0d9f09eb6f3f3248;l=265
which uses create_native_executable_dist
which copies files according to the list of libs:
https://crsrc.org/c/build/config/android/rules.gni;drc=a8c26a11f6cf763a5e81b2bced40584a678b9b8a;l=94
which is actually generated not at build time but by gn gen
(also called when editing gn args)
and so the inputs are not the libs themselves but
this file which only contains a list of file names
so when libs change there is no change to the inputs of this rule..
so it doesn't get invoked and the copy doesn't happen
'''
One caveat is we need to produce a list of .so libs as a data dependency
for them to be picked up by isolate
Bug: b/276474703
Change-Id: I375a5be8499f13311654244036e36c60d945c363
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4507534
Auto-Submit: Roman Lavrov <romanl@google.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
|
|
dd7eb1d8
|
2023-05-04T14:07:44
|
|
Scripts: Fix non-root support in android_helper.py
Test: angle_trace_tests on production device
Bug: b/276742336
Change-Id: I7c1f33adb37d8109540c70ac402e43462c046cec
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4504920
Reviewed-by: Roman Lavrov <romanl@google.com>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
|
|
e350330d
|
2023-05-02T09:57:42
|
|
Fix EGLContextCompatibilityTest registration
Before this CL these tests are not registered at all.
Avoid test name duplicates by skipping configs.
Bug: angleproject:8088
Change-Id: I0d9b8260bd2ed76bda7fb46e6a131c4d2624c55f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4492920
Auto-Submit: Roman Lavrov <romanl@google.com>
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
|
|
1ad27152
|
2023-04-18T12:17:00
|
|
Switch angle_trace_tests scripts to android_helper
out/Android/angle_trace_tests {args}
replaces
(cd out/Android; python3 ../../src/tests/run_angle_android_test.py {args})
changes this generated file:
% grep angle_android_test_runner out/Android/bin/run_angle_trace_tests
args = ['@WrappedPath(../../src/tests/angle_android_test_runner.py)', 'gtest', '--output-directory', '@WrappedPath(.)', '--wrapper-script-args', '--runtime-deps-path', '@WrappedPath(gen.runtime/src/tests/angle_trace_tests__test_runner_script.runtime_deps)', '--suite', 'angle_trace_tests']
android_helper.py is already what we use for running traces on bots
(we don't invoke out/Android/angle_trace_tests when IsAndroid())
so this change affects only local runs
Keep run_angle_android_test.py to be able to run other suites,
but now it takes --suite instead of a positional arg (which is
consistent with how scripts are invoked on CI)
Bug: chromium:1441148
Change-Id: I5af10e8df7d9a651e0a9d52e47e3bce28d7a931b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4442006
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Roman Lavrov <romanl@google.com>
|
|
d0ee0197
|
2023-05-03T13:41:36
|
|
WebGL: Limit total size of private data
... not just individual arrays.
Bug: chromium:1431761
Change-Id: I721e29aeceeaf12c3f6a67b668abffb8dfbc89b0
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4503753
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
2fec8ae8
|
2023-05-02T15:53:29
|
|
Vulkan: Handle inactive render pass in draw-based clear
For simplicity, if a render pass is open for the current framebuffer but
is not active, a new one is started in UtilsVk::clearFramebuffer. A
future optimization could decide to reactive the render pass instead,
but needs to check for whether that's possible (with a condition similar
to what's found in ContextVk::handleDirtyGraphicsRenderPass)
Bug: chromium:1440764
Change-Id: I727d4ecefc2bc0a1a9e399b8851c4cc830d20879
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4499765
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
73f9cf00
|
2023-03-31T00:00:00
|
|
GL: Implement polygon mode extensions
* Implemented polygon mode extensions
on the OpenGL backend
* Supported capture and serialization
of the new commands and state
* Added PolygonModeTest end2end tests
Bug: angleproject:1791
Bug: angleproject:8132
Change-Id: I3bc08546a02f110dd739950129bee25ccc507bf6
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4492683
Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
1328f2f3
|
2023-04-17T16:43:12
|
|
Vulkan: Destroy the surface without holding the EGL lock
This change defers surface destruction to the end of the entry point
that causes it so that it is done without holding the EGL lock. This
works around a specific deadlock in Android. On this platform:
- For EGL applications, parts of surface creation and destruction are
handled by the platform, and parts of it are done by the native EGL
driver. Namely, on surface destruction, native_window_api_disconnect
is called outside the EGL driver.
- For Vulkan applications, vkDestroySurfaceKHR takes full responsibility
for destroying the surface, including calling
native_window_api_disconnect.
Unfortunately, native_window_api_disconnect may use EGL sync objects and
can lead to calling into the EGL driver. For ANGLE, this is
particularly problematic because it is simultaneously a Vulkan
application and the EGL driver, causing `vkDestroySurfaceKHR` to call
back into ANGLE and attempt to reacquire the EGL lock.
Since there are no users of the surface when calling
vkDestroySurfaceKHR, it is safe for ANGLE to destroy it without holding
the EGL lock.
Note that only eglDestroySurface and eglMakeCurrent may lead to the
destruction of a window surface.
Bug: b/275176234
Bug: angleproject:8127
Change-Id: I02dc52e53e150943457e3f503e7ef30469f96b05
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4428754
Reviewed-by: Charlie Lao <cclao@google.com>
Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
a88635c4
|
2023-04-28T18:54:25
|
|
Android logs also go to stdout/err, line-buffered if possible
Currently logs like WARN() or INFO() only go to logcat, which doesn't
make them visible in console. This change makes them go to both logcat
and stdout/err.
Fix android_helper choking on missing json data output when test crashes
and test runner doesn't have a chance to produce that file. We still
have the stdout/err in this case, so print it. However, a crash
(such as SIGSEGV or __builtin_trap()) doesn't flush output so the
non-flushed part of the buffer doesn't get in there.
AngleNativeTest redirects stdout/err to a file which enables
fully-buffered (stdlib) mode. Change this to line-buffered when
stdout path is set to /data/ (/sdcard/ is slow) and use
/data/data/com.android.angle.test/tmp/
as the temp path in android_helper.
This makes e.g. FATAL() << "message"; show up in the logs in CI or local
runs. This currently only applies to trace and perf tests,
other tests will continue using fully-buffered
/stdout/ as chromium's test_runner uses /sdcard/Download/
for temp files.
Bug: b/276742336
Change-Id: Ia622c610f776f501223b0cca11d5ec1976eb9887
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4493463
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Roman Lavrov <romanl@google.com>
|
|
84b2e9d1
|
2023-05-01T13:52:54
|
|
Capture/Replay: android_helper handles traces in/outside of apk
* list files in apk using `aapt list`
* determine lib_extension (.so vs .cr.so) based on a known lib name
* determine traces_outside_of_apk based on libangle_trace_interpreter
* update so libs handling to use these vars
* also fixes an issue where libangle_trace_interpreter.cr.so wasn't
copied to the device due to a missing check for .cr.so
Bug: b/276742336
Change-Id: I5ccc6490ed3398668feec56c816dd65a444234cb
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4495326
Commit-Queue: Roman Lavrov <romanl@google.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
|
|
f46f3908
|
2023-05-01T14:06:16
|
|
Capture/Replay: fix interpreter lib placed inside/outside APK
libangle_trace_interpreter is a shared library loaded the same way as
binary trace libraries, so they should all go together either inside or
outside the APK. Before this change this lib would end up inside the APK
when binary libs were configured to stay outside of the APK.
Bug: b/276742336
Change-Id: I690d63dcec94893692d6838bb816f9ec2477dfe1
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4495327
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Roman Lavrov <romanl@google.com>
|
|
c3ae9ac5
|
2023-03-30T19:58:18
|
|
Tests: Add Monster Hunter Stories trace
Test: angle_trace_tests --gtest_filter="*monster_hunter_stories*"
Bug: b/265827643
Bug: angleproject:7557
Change-Id: I7b53eff28fcd891456a755c82be3dc1de12eb79b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4385780
Commit-Queue: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Roman Lavrov <romanl@google.com>
|
|
5c0b4251
|
2023-04-25T19:58:03
|
|
Reland "Tests: Add Gacha Life trace"
This reverts commit 55fbc2c502abc3d4265052eec865864f02cf8095
Relanding the trace now that we can support more traces on Android.
Original change's description:
> Tests: Add Gacha Life trace
>
> Test: angle_trace_tests --gtest_filter="*gacha_life*"
> Bug: b/267382443
> Change-Id: I6bbfb28015bf0317ccdba699e08ce6bce51b4ce3
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4211589
> Reviewed-by: Roman Lavrov <romanl@google.com>
Test: run_angle_android_test.py angle_trace_tests --filter='*gacha_life*'
Bug: b/276474703
Change-Id: Ia7f3b65d19a779b8cb925f429437b6548c59f669
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4477659
Commit-Queue: Ian Elliott <ianelliott@google.com>
Auto-Submit: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Ian Elliott <ianelliott@google.com>
Commit-Queue: Charlie Lao <cclao@google.com>
Reviewed-by: Charlie Lao <cclao@google.com>
|
|
c7905f0a
|
2023-04-25T19:55:06
|
|
Scripts: Update setup for restricted_trace_perf
Bug: b/276474703
Change-Id: I99a6ef212f6584ecace786da2587a8d2ae34eaa0
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4477658
Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
Auto-Submit: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
|
|
d37c97d1
|
2023-04-17T00:00:00
|
|
Metal: Implement OES_shader_multisample_interpolation
* Added support for sample qualifier
and shader interpolation functions
* Added MSL-specific AST transformations
* Adjusted minimum fragment interpolation offset state
query test so that accurate limits could be reported
* Drive-by: Y-flip gl_SamplePosition adjustment
* Renamed ANGLESampleMaskEnabled function constant to
ANGLEMultisampledRendering to correctly reflect its
usage
Bug: angleproject:8097
Bug: angleproject:8131
Change-Id: I25c9f36487e29f05bb9fe874e146d06378fef975
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4440827
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
|
|
35461e60
|
2023-04-12T20:02:08
|
|
Android: Build traces outside of APK
Our trace list has gotten too large for a single APK (2GB).
To continue supporting compiled traces, we can now place the
libraries in the test application's home directory, which
is discoverable and executable without root.
To build and run with all traces, use `angle_trace_perf_tests`
as your build target, then use the local Android helper script:
$ autoninja -C out/<config> angle_trace_perf_tests
$ (cd out/<config>; ../../src/tests/run_angle_android_test.py \
angle_trace_tests --filter='*among_us' \
--verbose --local-output --verbose-logging \
--fixed-test-time-with-warmup 10)
To continue using bundled libraries, specify your trace list in
GN args using `angle_restricted_traces` and use steps that
match other platforms:
$ autoninja -C out/<config> angle_trace_tests
$ out/Android/angle_trace_tests --gtest_filter='*among_us*' \
--verbose --local-output --verbose-logging \
--fixed-test-time-with-warmup 10
Bug: b/276474703
Change-Id: I3829cf7016e21894eee8890e2b0d527e8214f04e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4420279
Reviewed-by: Roman Lavrov <romanl@google.com>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
|
|
e27759f9
|
2023-04-20T00:00:00
|
|
D3D11: Ignore sample mask and A2C for single-sampled rendering
Also fixed alpha-to-coverage for single-sampled
rendering and simplified sample coverage code
in the Vulkan backend.
Fixed: angleproject:8102
Change-Id: Ieea03dfdc13c6105ddf916dca6d0fea593eb3a62
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4455508
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
|
|
5c9821fd
|
2023-04-21T00:00:00
|
|
GL: Fix readPixels for snorm color buffers
Bug: angleproject:8048
Change-Id: Ie4f6c5abb6d53c195f4bf460f179ae24fffd0102
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4464157
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
|
|
f1b8a29a
|
2023-04-21T14:37:23
|
|
D3D11: Fix instanced vertex streaming data copies.
Fix the other usage of ComputeVertexBindingElementCount in the D3D11
vertex streaming code. It is possible to try to copy too much source
data due to incorrect instanced count calculations.
Bug: chromium:1425606, chromium:1433180
Change-Id: Ie393b1c0b1291cf2b5087341c9fba8c98343d7bf
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4459152
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
b22124bd
|
2023-01-17T17:44:06
|
|
Implement new "Global Mutex" functionality.
This CL improves performance compared to the existing code as well as
allows using non-std mutex implementations. Also acts as a base for
future changes.
CL adds new build option:
angle_enable_global_mutex_recursion = is_android && angle_enable_vulkan
"mutex_recursion" work same way as `std::recursive_mutex` before. It
will help in situations when Vulkan API may return back to the ANGLE.
For example: RenderDoc layer EGL deadlock.
Automatic loading of "libVkLayer_GLES_RenderDoc.so" layer causes
deadlock in EGL.
Recursion stack:
#01 pc 000000000029ea80 /vendor/lib64/egl/libGLESv2_angle.so (egl::GlobalMutexHelper::lock(int)+596)
#02 pc 000000000029c59c /vendor/lib64/egl/libGLESv2_angle.so (EGL_GetError+32)
#04 pc 0000000000062368 /system/lib64/libEGL.so (eglQueryString+20)
#05 pc 0000000000508fec /data/local/debug/vulkan/libVkLayer_GLES_RenderDoc.so
#20 pc 0000000000016690 /system/lib64/libvulkan.so (vulkan::api::EnumerateInstanceLayerProperties(unsigned int*, VkLayerProperties*)+40)
#21 pc 00000000005aa030 /vendor/lib64/egl/libGLESv2_angle.so (rx::RendererVk::initialize(rx::DisplayVk*, egl::Display*, char const*, char const*)+292)
#26 pc 000000000029c7e8 /vendor/lib64/egl/libGLESv2_angle.so (EGL_Initialize+192)
Additionally, recursive mutex will partially solve Android
SurfaceTexture deadlock (angleproject:4354).
Some performance numbers for 1000'000 `eglGetError()` calls.
Mutex Time (ms.)
Android S906B
egl::GetGlobalMutex()(std::recursive_mutex) 41.4
(Default) GlobalMutex (std::recursive_mutex) 39.1
(Recursive) GlobalMutex (std::mutex) 34.9
(Debug) GlobalMutex (std::mutex) 34.7
(Default) GlobalMutex (std::mutex) 34.4
Windows
egl::GetGlobalMutex()(std::recursive_mutex) 20.5
(Default) GlobalMutex (std::recursive_mutex) 20.0
(Recursive) GlobalMutex (std::mutex) 21.9
(Debug) GlobalMutex (std::mutex) 20.5
(Default) GlobalMutex (std::mutex) 19.9
Note: Recursive GlobalMutex enabled only for Android Vulkan by default.
Original fix:
https://chromium-review.googlesource.com/c/angle/angle/+/2029218
Bug: angleproject:8101
Bug: angleproject:4354
Test: angle_unittests --gtest_filter=GlobalMutexTest.*
Change-Id: I9e9d9b5c598ad1177ffa147ea690bd955946a712
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4401940
Commit-Queue: Igor Nazarov <i.nazarov@samsung.com>
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
2ce6d8df
|
2023-04-20T17:16:00
|
|
TextureVk calls onStateChange when releasing buffer views
TextureVk::setBuffer releases buffer views and they don't get
initialized unless a dirty bit is set. That works on the first draw call
because Texture::Texture() sets DIRTY_BIT_IMPLEMENTATION in constructor,
but when called twice mBufferViews remains unitialized causing
mBufferViews.getView() misbehavior.
Fix this by calling onStateChange when buffer views are released.
As mBufferViews is only initialized conditionally for texture buffers,
add a bool for tracking whether it is in the initialized state to avoid
marking texture as dirty unnecessarily.
Note that this isn't handled by signalDirtyStorage() inside
Texture::setBufferRange because (in this test case?) there are no
observers on Texture so onStateChange called from Texture is a no-op.
Texture however observes its TextureVk implementation so onStateChange
calls from TextureVk end up setting the dirty bit in
Texture::onSubjectStateChange.
Bug: b/278585075
Change-Id: I2b83160cdd89a086ed81e8412cd64d0aad930911
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4457147
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Roman Lavrov <romanl@google.com>
|
|
03f0e51d
|
2023-04-14T19:51:54
|
|
Roll VK-GL-CTS from a3d054bf72ab to b1e5b9348e77 (21 revisions)
Define DE_FENV_ACCESS_ON based on
https://github.com/KhronosGroup/VK-GL-CTS/commit/9f306457b48b3f8258ca44462003ef39b80a7515
https://chromium.googlesource.com/external/github.com/KhronosGroup/VK-GL-CTS.git/+log/a3d054bf72ab..b1e5b9348e77
2023-04-14 gleese@broadcom.com Assert that the number of output buffers
is correct
2023-04-14 piotr.byszewski@mobica.com Merge vk-gl-cts/vulkansc-cts-1.0.1
into vk-gl-cts/main
2023-04-14 piotr.byszewski@mobica.com Merge vk-gl-cts/opengl-cts-4.6.3
into vk-gl-cts/main
2023-04-14 piotr.byszewski@mobica.com Merge
vk-gl-cts/opengl-es-cts-3.2.9 into vk-gl-cts/main
2023-04-14 piotr.byszewski@mobica.com Test multiviewport with fragment
density map
2023-04-14 rgarcia@igalia.com Test EDS3 feature interactions
2023-04-14 rgarcia@igalia.com Fix build with GCC 13
2023-04-14 gleese@broadcom.com Modify the max_vertex tests to have room
for all attributes
2023-04-14 gleese@broadcom.com Share shader code in vertex_input tests
2023-04-14 marcin.zajac@mobica.com Add tests for manual derivatives with
subgroups
2023-04-14 gleese@broadcom.com Fix some indentation in descriptor
indexing tests
2023-04-14 gleese@broadcom.com Change descriptor_indexing tests to use
stdint types
2023-04-14 gleese@broadcom.com Trivial simplification to
descriptor_indexing tests
2023-04-14 gaopan24@hisilicon.com Fix upper Lod bound in image lod query
tests
2023-04-14 cturner@igalia.com Revert "Fix
VUID-vkCmdDecodeVideoKHR-pDecodeInfo-07267 validation error."
2023-04-14 cturner@igalia.com Try to inform the compiler when
dynamically changing the rounding mode.
2023-04-14 marcin.zajac@mobica.com Vulkan video 1.3.244 patch
2023-04-14 ziga@lunarg.com Initialize VkSparseImageMemoryRequirements2
struct in memory tests
2023-04-14 rgarcia@igalia.com Add dynamic color blend variants without
dynamic logic op
2023-04-14 rgarcia@igalia.com Test vkCmdDrawIndirect*Count* with
multiview
2023-04-14 piotr.byszewski@mobica.com Merge vk-gl-cts/vulkan-cts-1.3.5
into vk-gl-cts/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,ynovikov@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://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug
Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
Bug: None
Change-Id: I4e0756379eb4fcf408bc9d142ef9a14eb300897e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4427126
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
|
|
23ff85fe
|
2023-04-20T13:32:37
|
|
Suppress newly added PixelLocalStorageTest.TextureLevelsAndLayers
on iOS Metal
Bug: angleproject:7994
Change-Id: I9d3a1e2af99e3127d74b96c0740054e47fd4b661
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4455107
Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Auto-Submit: Yuly Novikov <ynovikov@chromium.org>
|
|
ef20f191
|
2023-03-29T14:05:04
|
|
Make the PLS allow list more permissive
Allow ClipControlEXT, FlushMappedBufferRange, Gen*, PolygonOffset*,
ProvokingVertexANGLE, and KHR_debug commands.
Allow caps DEPTH_CLAMP_EXT, CLIP_DISTANCE[0..7]_EXT.
Ban indexed caps besides BLEND, SCISSOR_TEST, SCISSOR_TEST_EXCLUSIVE_NV.
Clarify that the index restrictions on indexed caps only apply to BLEND.
Bug: chromium:1421437
Change-Id: Ibdb0acaebfa992ad37c928481d5ecb10496f22e5
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4382502
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Chris Dalton <chris@rive.app>
|
|
fa9172a3
|
2023-03-27T09:49:33
|
|
Reland "Vulkan: Use midRenderPass clear if RP has started but inactive"
This is a reland of commit 98151770adfd990c533991da27615b4879494307
Original change's description:
> Vulkan: Use midRenderPass clear if RP has started but inactive
>
> This CL extends prior CL's optimization so that if clear is issued right
> after blitFramebuffer call (this could make sense if blit and clear are
> on different buffer), we can keep the started render pass and do the
> midRenderPass clear instead of endRenderPass and start another
> renderPass.
>
> Bug: b/273808966
> Change-Id: Ia2504e8e260867a6f797d42cd4c8a72f187280ef
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4374145
> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Bug: b/273808966
Change-Id: I5c8c85c173f021a7753ef579f83d9ceb24147a7c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4442911
Commit-Queue: Charlie Lao <cclao@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
6deca89e
|
2023-03-22T22:33:40
|
|
Add Spirv Instruction to explicitly cast mediump float to 16 bit
If the GLSL shader code expects the comparison between
two mediump float values returning true, but the SpirV
compiler treats one of them as 32-bit, and treats the
other one as 16-bit, the comparison would return false
instead. The SpirV compiler may not automatically cast
the mediump float values to 16 bits, because it may
utilize the RelaxedPrecision decoration to keep a mediump
float as 32-bit, so that the compiler can avoid the
type cast from 32-bit highp to 16-bit mediump.
This change adds an additional OpQuantizeToF16 SpirV
instruction to explicitly cast mediump float scalar
or mediump float vector to 16 bit, if they are assigned
with a highp float value. This ensures that if the
GLSL shader code ever compares two meiump float values,
the SpirV shader compiler is not accidentally comparing
a 16 bit with a 32 bit float value.
This fixe the deqp test failure on Pixel 6 and Pixel 7:
dEQP-GLES2.functional.shaders.algorithm.rgb_to_hsl_vertex.
Bug: b/274859104
Bug: b/274408172
Change-Id: Ifd996cea14c0f77f45ae90f38c8e53cf5035139f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4400404
Commit-Queue: Yuxin Hu <yuxinhu@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
|
|
9188aa0e
|
2023-04-18T10:05:29
|
|
Vulkan: Disallow reactivate of UtilsVk::blitResolve renderPass
We are still seeing
ClearTestES3.RepeatedStencilClearWithBlitInBetween/ES3_Vulkan flakiness
on win-test bot with intel GPU. The exact root cause is still unknown.
For now this CL will disallow reactivate of UtilsVk::blitResolve
renderPass by the subsequent user's draw calls.
Bug: b/273808966
Change-Id: Iebf37da3642d1fc3ee724b0743bfc0767ac48354
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4442446
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Charlie Lao <cclao@google.com>
|
|
443ac5b4
|
2023-04-17T00:00:00
|
|
GL: Enable OES_shader_multisample_interpolation
Drive-by:
* Fixed validity of the related state queries
* Added SampleMultisampleInterpolationTest
* Removed unused OES_sample_variables code
Bug: angleproject:8097
Bug: angleproject:8131
Change-Id: I816d2096759a96d8691acd0a8c5ecdedf880201b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4440826
Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
fdbd6488
|
2023-04-12T14:02:44
|
|
metal: allow unequal size attachments.
OpenGLES3.0 allows FBO with attachments that have unequal size.
In Metal, an FBO is represented by a render pass pipeline, which
is created using MTLRenderPassDescriptor descriptor. The render
pass can have color attachments as well as depth and stencil
attachments. Those individual attachments must have a texture
attached, which works as a buffer. However, the documentation
does not specify any dimension restrictions for those textures.
Test: verify the FramebufferTest_ES3.AttachmentsWithUnequalDimensions
passes.
Test2: made a simple metal app that renders using an offscreen
render pass pipeline to a texture that has size of 32x16 with
a depth buffer attached (size of 16x32) and verified the
pixels on that. The content outside the common area had
undefined pixel data.
Bug: angleproject:7994, angleproject:6447
Change-Id: I257f8e3aad497772cfc7de08314818ee5f434b84
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4418266
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Reviewed-by: Kimmo Kinnunen <kkinnunen@apple.com>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
|
|
1e166daf
|
2023-04-10T23:49:46
|
|
Finalize PLS support for non-2D texture types
Commit to supporting GL_TEXTURE_2D_ARRAY and GL_TEXTURE_3D, and add
tests. Suppress D3D11 and Metal for now, since shader image support for
non-2D types needs some work on those backends.
Drop support for cube maps, since those will cause complications on an
implementation based on texelFetch.
Bug: chromium:1421437
Bug: angleproject:8124
Bug: angleproject:8125
Change-Id: I403ae157b7d2609f2190a98c2576c92f73441412
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4415150
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Chris Dalton <chris@rive.app>
|
|
2f19bb74
|
2023-03-16T16:03:29
|
|
Reland "Vulkan: Reactivate already started render pass when possible"
This is a reland of commit ad9537af7f2bb5e22bc73f4e833fd3789adaa217
Original change's description:
> Vulkan: Reactivate already started render pass when possible
>
> In some usage case (such as lineage_mobile), we are seeing in the middle
> of render pass, app switch to another fbo just to issue a glClear()
> call, which the clear call itself gets deferred. Application then switch
> back to the original frame buffer. Before this CL, the render pass gets
> recreated due to frame buffer binding change, even though the clear gets
> deferred and new render pass and the previous render pass are
> essentially the same. This CL detects this situation and reactivate the
> current render pass instead of creating a new one. With this CL,
> lineage_m app trace reduces frame time from 3.86ms to 3.7ms, and only
> one render pass is used instead of two.
>
> This CL also allows the render pass started by BlitFramebuffer reused by
> subsequent draw calls. Asphalt_9 is hitting this use pattern and this CL
> reduces frame time by 0.1245 ms (from 5.6203 ms to 5.4958 on pixel 7
> pro)
>
> Bug: b/273808966
> Change-Id: I48c2671cbef3ff9d6cf59caae88c37c77828ee07
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4348713
> Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
> Commit-Queue: Charlie Lao <cclao@google.com>
Bug: b/273808966
Change-Id: Ice9062122ae320b1a0108ff981bc65bd13b2ada0
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4406888
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Charlie Lao <cclao@google.com>
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
|
|
7bc4b7e3
|
2023-03-27T00:00:00
|
|
Metal: Implement OES_sample_variables
New ESSL built-ins are mapped to their Metal
counterparts and tweaked to follow OpenGL ES
semantics when needed.
Fixed A2C interaction with sample coverage
by emulating the former on non-Apple GPUs.
Bug: angleproject:8097
Fixed: angleproject:5087
Change-Id: I5d28a941af5cbc14743a3930731529f11f55febd
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4404896
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Kyle Piddington <kpiddington@apple.com>
Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
|
|
4e073356
|
2023-04-13T15:16:53
|
|
Trace Interpreter: gzip cpp and run gold tests.
New test step:
angle_restricted_trace_gold_interpreted_tests
similar to existing
angle_restricted_trace_gold_tests
but runs a subset of newest traces that have the right format.
Currently there are 8 of them and the filter is hard-coded in
test_suites.pyl. rise_of_empires can also be run interpreted but
happened to flake during testing so it's not included for now.
Trace cpp files are concatenated and gzipped
as a build step producing gen/tracegz_{trace}.gz
and these gz files are then distributed as part of the build
--trace-interpreter flag changes from boolean to string to support:
--trace-interpreter=gz:
* this uses the gz file above
* gold tests added in this CL use this option
--trace-interpreter=c:
* using uncompressed c/cpp file
* existing angle_trace_interpreter_tests runs a retrace
saving .c files and uses this option
Bug: b/276742336
Change-Id: I69544f25bda873af191978195d02ffbdd34363c0
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4424690
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Roman Lavrov <romanl@google.com>
|
|
0be451a1
|
2023-04-11T12:10:25
|
|
[ios] fix sublayer resize
It's only macOS that supports autoresizing mask on
CALayers. In case of iOS, a sublayer has to be resized
manually.
Fixes FramebufferTest_ES3.SurfaceDimensionsChangeAnd\
FragCoord/ES3_Metal test.
Bug: angleproject:7994
Change-Id: Ie4f08480a581e7b1b8cfb7e9b47ec3afadc0484f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4403974
Commit-Queue: Maksim Sisov <msisov@igalia.com>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
|
|
074b98fe
|
2023-04-14T12:28:29
|
|
Remove unnecessary and unused --interpreter flag.
The one we're using is --trace-interpreter and is more clear.
Bug: b/276742336
Change-Id: Iea17ca54a17f41a0445cbc4d192ff1d9f5315cf5
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4428750
Commit-Queue: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Roman Lavrov <romanl@google.com>
Auto-Submit: Roman Lavrov <romanl@google.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
|
|
2c7f31af
|
2023-04-13T11:47:34
|
|
Trace Interpreter: Move to a shared library.
Based on https://crrev.com/c/4178024 but does only one thing:
makes trace interpreter a shared library (as if it was a compiled trace)
I am not sure what impact this actually has on the TracePerfTest
callbacks (mentioned in the CL above) as I see onEglMakeCurrent callback
getting called without this CL as well. Anyways, this makes things a bit
more consistent.
* Gets rid of TraceReplayInterface
* TraceInterpreter is now an implementation detail
* Need to additionally pass list of trace files to TraceLibrary
(new SetTraceInfo replay export)
* GetResourceIDMapValue is just moved as is to the right lib
Bug: b/276742336
Change-Id: I67ea9fbcb4f7db999ab71c8443ea91c5631df942
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4423869
Commit-Queue: Roman Lavrov <romanl@google.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
|
|
6732791c
|
2023-04-05T10:16:13
|
|
Vulkan: Include image layout in DS cache key
The image layout for a texture can change from GENERAL to
SHADER_READ_ONLY_OPTIMAL when switching from rendering with a feedback
loop to not. The descriptor set cache needs to take image layout into
account otherwise it can return a false hit in this case, resulting in
the re-use of a descriptor set with the wrong image layout and
validation error VUID-VkDescriptorImageInfo-imageLayout-00344.
This change also includes a regression test to reproduce the behavior of
the application where it was observed.
Test: angle_end2end_tests --gtest_filter="*FeedbackLoopTextureBindings*"
Test: Run com.gameloft.android.ANMP.GloftGGHM on Pixel 6
Bug: b/268091452
Change-Id: I80b4e2373963247a83f8ec17028445f54c820e86
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4400824
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
|
|
f507fe05
|
2023-04-06T12:27:00
|
|
Rename PLATFORM_IOS to PLATFORM_IOS_FAMILY
The current define ANGLE_PLATFORM_IOS actually means
"iOS or tvOS or WatchOS or MacCatalyst".
The current define ANGLE_PLATFORM_WATCHOS means nothing.
The current define ANGLE_PLATFORM_APPLETV means nothing.
Replace PLATFORM_IOS and its uses with PLATFORM_IOS_FAMILY, so that
then PLATFORM_IOS can be reintroduced and others can be fixed.
Replace PLATFORM_IOS_SIMULATOR and its uses with
PLATFORM_IOS_FAMILY_SIMULATOR for consistency.
Use consistent `#if X` notation instead of `#if defined(X)`.
Bug: angleproject:8121
Change-Id: Ibe668c2ae9bb801d15e036fcf1dfd53f22c30787
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4404161
Reviewed-by: Dan Glastonbury <djg@apple.com>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Kimmo Kinnunen <kkinnunen@apple.com>
|
|
459f0fad
|
2023-04-06T13:42:49
|
|
Vulkan: Force submit when switch to system framebuffer draw
Given recent finding on unnecessary wait for acquire image semaphore,
since the semaphore wait is per submission, any GPU will have this same
performance problem if we only do command submit per frame. This CL
forces submission when we switch draw framebuffer to system default
framebuffer, so that the semaphore wait will not block user's fbo
rendering.
Bug: b/275624771
Change-Id: Id6b941870ef296393c13d0daaf81a41b6c042b9a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4406882
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Charlie Lao <cclao@google.com>
|
|
d58fbf04
|
2023-04-05T12:32:09
|
|
Vulkan: Wait for surface ANI semaphore only if image is used
Right now there is a bug that surface's ANI semaphore is added to
context when WindowSurfaceVk::getAttachmentRenderTarget get called,
which gets called from FramebufferVk::syncState, which is before we end
the previous render pass, due to the endRenderpass usually is deferred
until next renderPass starts. This caused ANI semaphore gets added to
the previous render pass's submission, which does not use surface, and
thus a bubble in GPU execution pipeline where the user FBO rendering
gets unnecessarily blocked until ANI semaphore is signaled. This lowers
GPU utilization and thus GPU frequency gets dropped and frame time
increased. This CL stores ANI semaphore to ImageHelper object and when
barrier is generated, the ANI semaphore is moved to CommandBuffer. When
CommandBuffer gets flushed and submitted, it gets added to the
waitSemaphores vector and submitted to vulkan. Since all use of swap
chain image must go through barrier code first (you need at least change
layout), this ensures ANI semaphore gets waited in exact and robust way.
Only the submission that references the swap chain image will be waited.
With this CL, professional_baseball_spirits reduces frame time from 3.8
ms to 2.7 ms, achieving parity with native GLES on pixel 7 pro.
Bug: b/275624771
Change-Id: Ifa6cacf9e3bc147bfde54eb7def2fca48c50aca0
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4400011
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Commit-Queue: Charlie Lao <cclao@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
f33c16e3
|
2023-03-27T00:00:00
|
|
Add SampleVariablesTest
* Increased required OpenGL context version to 4.2
to disable the extension on older platforms that
do not pass the tests.
Bug: angleproject:8097
Change-Id: I9158d895f0b0ec80db2516cc126e89ff5da753e1
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4401931
Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
9199e77d
|
2023-03-30T17:25:33
|
|
[ios] simulator fixes for angle_unittests
Disables some tests that do not currently work in the
iOS simulator.
Bug: angleproject:8116
Change-Id: I66bb9a6e2a5d10a567824e9fac163e7fd6b6a474
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4393495
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Kenneth Russell <kbr@chromium.org>
|
|
25e60197
|
2023-03-31T14:17:26
|
|
Vulkan: Unify buffer alloc strategy for uploads and GPU copies
With this change, glCopyBufferSubData uses the same buffer allocation
strategy as glBufferSubData. Only exception is with buffer self-copies
which never allocate a new buffer for simplicity.
Additionally, this change allows glCopyBufferSubData to be done on the
CPU if possible, i.e. if the source buffer is not being written to by
the GPU and whenever the equivalent glBufferSubData would have used a
CPU upload.
Bug: b/276002151
Change-Id: Ice8df5891c5516b148245d5d6fa9b19b787df4ce
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4390023
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
41f0a321
|
2023-04-03T21:58:43
|
|
Revert "Vulkan: Reactivate already started render pass when possible"
This reverts commit ad9537af7f2bb5e22bc73f4e833fd3789adaa217.
Reason for revert: Suspected cause for flakiness. anglebug.com/8118
Original change's description:
> Vulkan: Reactivate already started render pass when possible
>
> In some usage case (such as lineage_mobile), we are seeing in the middle
> of render pass, app switch to another fbo just to issue a glClear()
> call, which the clear call itself gets deferred. Application then switch
> back to the original frame buffer. Before this CL, the render pass gets
> recreated due to frame buffer binding change, even though the clear gets
> deferred and new render pass and the previous render pass are
> essentially the same. This CL detects this situation and reactivate the
> current render pass instead of creating a new one. With this CL,
> lineage_m app trace reduces frame time from 3.86ms to 3.7ms, and only
> one render pass is used instead of two.
>
> This CL also allows the render pass started by BlitFramebuffer reused by
> subsequent draw calls. Asphalt_9 is hitting this use pattern and this CL
> reduces frame time by 0.1245 ms (from 5.6203 ms to 5.4958 on pixel 7
> pro)
>
> Bug: b/273808966
> Change-Id: I48c2671cbef3ff9d6cf59caae88c37c77828ee07
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4348713
> Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
> Commit-Queue: Charlie Lao <cclao@google.com>
Bug: b/273808966
Change-Id: I81cc2dcacb52466808b2ccf5819feda466c39fc5
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4396502
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Auto-Submit: Charlie Lao <cclao@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
96cda1ac
|
2023-03-31T15:08:11
|
|
Vulkan: Switch to modified framebuffer should trigger submit
The feature flag preferSubmitAtFBOBoundary intended to trigger
submitCommands call when FBO is switched. Right now there is a bug that
when FBO is switched, submitCommands did not get called even if feature
is enabled. The reason is that when framebuffer changed, we first get
FramebufferVk::syncState call, and if the FBO that we switched to is
drity, we will end up calling ContextVk::flushCommandsAndEndRenderPass
to immediate end the render pass. The problem with that is that later on
when we get to ContextVk::syncState and saw
DIRTY_BIT_DRAW_FRAMEBUFFER_BINDING dirty bit and try to issue a submit,
we notice render pass already ended, so mHasDeferredFlush never gets
set, which means we never call submitCommands. All apps render to system
framebuffer in the last render pass, and system framebuffer is always
dirty due to swap chain image rotation, we hit this almost with every
app. This CL avoid flushCommandsAndEndRenderPass() call from
FramebufferVk::syncState. We now relies on
ContextVk::onFramebufferChanged (which calls onRenderPassFinished()
which will set DIRTY_RENDER_PASS bit to trigger deferred endRenderPass)
to end the current render pass.
This CL also add a regression test to ensure the submit indeed occur.
Bug: b/275624771
Change-Id: I92b95a7a6c435f242d6684cb7852172cf41896c3
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4390642
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Charlie Lao <cclao@google.com>
Reviewed-by: Roman Lavrov <romanl@google.com>
|
|
c5e9de23
|
2023-04-03T15:14:03
|
|
Revert "Vulkan: Use midRenderPass clear if RP has started but inactive"
This reverts commit 98151770adfd990c533991da27615b4879494307.
Reason for revert: Suspected cause for flakiness. anglebug.com/8118
Original change's description:
> Vulkan: Use midRenderPass clear if RP has started but inactive
>
> This CL extends prior CL's optimization so that if clear is issued right
> after blitFramebuffer call (this could make sense if blit and clear are
> on different buffer), we can keep the started render pass and do the
> midRenderPass clear instead of endRenderPass and start another
> renderPass.
>
> Bug: b/273808966
> Change-Id: Ia2504e8e260867a6f797d42cd4c8a72f187280ef
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4374145
> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Bug: b/273808966
Change-Id: I7a11635a6eceafb6f4fb3a0d95f6627ee98321c0
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4393497
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
f1f80e1e
|
2023-03-22T12:54:08
|
|
Metal: Always prefer staged GPU uploads for textures.
Uploading Metal texture data via MTLTexture::replaceRegion is a source
of lots of CPU hangs and jank. There may be better heuristics to
determine if we should do a CPU vs GPU upload but for now preferring
GPU uploads has better overall performance.
This also improves the MotionMark images test:
- 40 -> 100 when using Metal.
- 217 -> 235 when using Metal +
https://chromium-review.googlesource.com/c/chromium/src/+/4091749
Bug: angleproject:8024, angleproject:8092, angleproject:8109
Change-Id: I36b5f585884391b4cc416365ae65f8542745beee
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4264963
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
|
|
a1319e7f
|
2023-03-29T20:09:48
|
|
Tests: Fix EGLContextSharingTestNoFixture.SwapBuffersShared.
Sometimes `swapThread` may finish until `renderThread` wait for
`Step::TextureInitialized` step. In this situation `swapThread` will
change `currentStep` to `Abort` in the `ThreadSynchronization<>`
destructor, causing wait for `Step::TextureInitialized` to fail.
Bug: angleproject:6851
Change-Id: Ib08b6de11873e9959eaa810bcf8cb404c95c80d4
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4381626
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Igor Nazarov <i.nazarov@samsung.com>
|
|
b24b5568
|
2023-03-27T00:00:00
|
|
Vulkan: Skip sample coverage for single sample rendering
A new test sets sample coverage to zero and checks
that it is applied only to multisampled rendering.
Bug: angleproject:8102
Change-Id: I1a5649869e9b7ecf0543108fb99095bfaf6fd858
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4379839
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
|
|
55fbc2c5
|
2023-03-31T13:15:19
|
|
Revert "Tests: Add Gacha Life trace"
This reverts commit 98deaef0ebf2709f45e75e5571bb52aa4c8d6246.
Reason for revert: angle_trace_test_apk is too large to sign
Before this trace, if you compiled the APK with all traces
enabled, we were right on the edge of MAX_INT (2147483647).
ApkSigner doesn't support 64-bit offsets.
Original change's description:
> Tests: Add Gacha Life trace
>
> Test: angle_trace_tests --gtest_filter="*gacha_life*"
> Bug: b/267382443
> Change-Id: I6bbfb28015bf0317ccdba699e08ce6bce51b4ce3
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4211589
> Reviewed-by: Roman Lavrov <romanl@google.com>
Test: autoninja -C out/AndroidPerformance angle_trace_tests
Bug: b/276474703
Change-Id: I1a3fd6386f20dc498e4f8c8b147d4431277ecc50
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4387371
Commit-Queue: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Roman Lavrov <romanl@google.com>
|
|
61cd24d4
|
2023-03-31T14:54:17
|
|
MTLPixelFormatRGB9E5Float is not renderable on simulator.
See https://developer.apple.com/documentation/metal/
developing_metal_apps_that_run_in_simulator?language=objc
Bug: angleproject:7994
Change-Id: I07e50c19aaf6d033c7c25d0dbd4b21a8c255c1d9
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4386403
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Kenneth Russell <kbr@chromium.org>
|
|
f176027f
|
2023-03-31T13:37:03
|
|
CGL: implement EGL_ANGLE_wait_until_work_scheduled
It is as important to wait until scheduled in CGL, as it is in Metal.
CGL waits until scheduled when glFlush() is called.
Fixed: angleproject:8112
Change-Id: Id4a9e87804c6df1828b35cfd30c8427314820e52
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4386400
Commit-Queue: Kenneth Russell <kbr@chromium.org>
Auto-Submit: Kimmo Kinnunen <kkinnunen@apple.com>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
|
|
98deaef0
|
2023-03-30T19:15:24
|
|
Tests: Add Gacha Life trace
Test: angle_trace_tests --gtest_filter="*gacha_life*"
Bug: b/267382443
Change-Id: I6bbfb28015bf0317ccdba699e08ce6bce51b4ce3
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4211589
Reviewed-by: Roman Lavrov <romanl@google.com>
|
|
e975f9dc
|
2022-11-09T06:44:06
|
|
Capture/Replay: handle paletted textures
Add a method for recompressing paletted textures on
capture.
Bug: angleproject:7710
Change-Id: I11af0c1cd7c3b63850c5daf96eafcd3efce65f16
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4178311
Commit-Queue: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
|
|
336bfd60
|
2023-03-30T00:16:40
|
|
GL: Fix the RewriteRepeatedAssignToSwizzled workaround
This transformation splits chained assignments where the LHS is
assigning to a swizzle. However, instead of retaining the assignment
operator (like *=, += etc), it was accidentally unconditionally using
`=`.
Bug: chromium:1394345
Change-Id: Icaef159e1fb57e720e08d4b4f6603f08d9cd2bfe
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4381648
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
|
|
f066ae7d
|
2023-03-30T19:01:17
|
|
Tests: Add Teslagrad trace
Test: angle_trace_tests --gtest_filter="*teslagrad*"
Bug: b/276316424
Change-Id: If4056451ba3b948ade8466f93560694f76ab53c5
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4385779
Reviewed-by: Roman Lavrov <romanl@google.com>
|
|
a3a649b0
|
2023-03-31T09:16:48
|
|
Skip BlitFramebufferTest.scissorDrawBlitAndDrawAgain on Mac AMD GL
Fails since added in
https://ci.chromium.org/ui/p/angle/builders/ci/mac-exp-test/258/overview
Bug: b/273808966
Change-Id: I62f8876e4d177983082b3e21e50803c9c7fab0d4
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4386397
Auto-Submit: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
|
|
98151770
|
2023-03-27T09:49:33
|
|
Vulkan: Use midRenderPass clear if RP has started but inactive
This CL extends prior CL's optimization so that if clear is issued right
after blitFramebuffer call (this could make sense if blit and clear are
on different buffer), we can keep the started render pass and do the
midRenderPass clear instead of endRenderPass and start another
renderPass.
Bug: b/273808966
Change-Id: Ia2504e8e260867a6f797d42cd4c8a72f187280ef
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4374145
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
ad9537af
|
2023-03-16T16:03:29
|
|
Vulkan: Reactivate already started render pass when possible
In some usage case (such as lineage_mobile), we are seeing in the middle
of render pass, app switch to another fbo just to issue a glClear()
call, which the clear call itself gets deferred. Application then switch
back to the original frame buffer. Before this CL, the render pass gets
recreated due to frame buffer binding change, even though the clear gets
deferred and new render pass and the previous render pass are
essentially the same. This CL detects this situation and reactivate the
current render pass instead of creating a new one. With this CL,
lineage_m app trace reduces frame time from 3.86ms to 3.7ms, and only
one render pass is used instead of two.
This CL also allows the render pass started by BlitFramebuffer reused by
subsequent draw calls. Asphalt_9 is hitting this use pattern and this CL
reduces frame time by 0.1245 ms (from 5.6203 ms to 5.4958 on pixel 7
pro)
Bug: b/273808966
Change-Id: I48c2671cbef3ff9d6cf59caae88c37c77828ee07
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4348713
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Charlie Lao <cclao@google.com>
|