|
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>
|
|
ec308b35
|
2023-05-15T15:03:10
|
|
Vulkan: Add feature to limit sample count to 2
This CL adds a feature called `limitSampleCountTo2`. Using it will
have the Vulkan backend limit max samples to 2.
Why 2? That's the minimum required in Vulkan to multisample without
error. Here's an example validation error:
vkCmdResolveImage: srcImage sample count is VK_SAMPLE_COUNT_1_BIT.
The Vulkan spec states: srcImage must have a sample count equal to
any valid sample count value other than VK_SAMPLE_COUNT_1_BIT.
https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VUID-vkCmdResolveImage-srcImage-00257
Using a limit as opposed to forcing a value allows non-multisampling
(sample count of 1) to continue working.
To see how tests fare when the feature is set, see the following test
results that force the value on:
https://chromium-review.googlesource.com/c/angle/angle/+/4534098/4
Test: adb shell setprop debug.angle.feature_overrides_enabled limitSampleCountTo2
Bug: b/279498079
Bug: angleproject:8162
Change-Id: I1df2822709151e6084c32055b5aff444e0b10db5
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4518562
Commit-Queue: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Greg Schlomoff <gregschlom@google.com>
Reviewed-by: Charlie Lao <cclao@google.com>
|
|
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>
|
|
c2c8b062
|
2023-05-11T22:38:48
|
|
[Risc-V] Fix definition of kAndroidOpenGLTlsSlot.
On Risc-V, ANGLE was using a TLS offset of 3.
This worked... sometimes!
On Risc-V, the android OpenGL TLS slot is supposed to be -5,
as per tls_defines.h.
Tested by running cuttlefish with Swiftshader + ANGLE on Risc-V
Bug: b/273278430
Change-Id: Ib32f7dbcc158085b75f4befc277a03229ff87152
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4521034
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Auto-Submit: Jean-François Geyelin <jif@chromium.org>
|
|
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>
|
|
560ba1c6
|
2023-05-13T01:42:21
|
|
Revert "Suppress VUID-vkCmdDrawIndexed-None-0784x"
This reverts commit aa6291aa43aa34ed5eb68c6b7faaba94ce08ef74.
Reason for revert: The roller was successful. The issue seems to have been fixed.
Original change's description:
> Suppress VUID-vkCmdDrawIndexed-None-0784x
>
> * Suppressed the following VVLs
> * VUID-vkCmdDrawIndexed-None-07840
> * VUID-vkCmdDrawIndexed-None-07841
> * VUID-vkCmdDrawIndexed-None-07843
> * VUID-vkCmdDrawIndexed-None-07844
> * VUID-vkCmdDrawIndexed-None-07845
> * VUID-vkCmdDrawIndexed-None-07847
> * VUID-vkCmdDrawIndexed-None-07848
>
> Bug: angleproject:8159
> Change-Id: Id516d0a8e677b00b3f46a456d07386c5fd91d6dc
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4514440
> Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
> Auto-Submit: Amirali Abdolrashidi <abdolrashidi@google.com>
> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Bug: angleproject:8159
Change-Id: I00d45397cf72facfc60674563f95e81df80cc7c2
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4529339
Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Auto-Submit: Amirali Abdolrashidi <abdolrashidi@google.com>
Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
|
|
17dbf435
|
2023-05-13T01:11:19
|
|
Revert "Suppress more of VUID-vkCmdDraw-None-0784x"
This reverts commit c441206103b14f68fc5cfa9434f4058429a714dd.
Reason for revert: The roller was successful. The issue seems to have been fixed.
Original change's description:
> Suppress more of VUID-vkCmdDraw-None-0784x
>
> * Suppressed the following VVLs
> * VUID-vkCmdDrawIndexed-None-07840
> * VUID-vkCmdDrawIndexed-None-07841
> * VUID-vkCmdDrawIndexed-None-07843
> * VUID-vkCmdDrawIndexed-None-07847
>
> Bug: angleproject:8151
> Bug: angleproject:8159
> Change-Id: I7fe36cfa34b8157af0be7f0c35779185a6b341aa
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4514442
> Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
> Auto-Submit: Amirali Abdolrashidi <abdolrashidi@google.com>
> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Bug: angleproject:8151
Bug: angleproject:8159
Change-Id: I41082df93a55c4eec46ad7d0d048a8159472a7d2
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4528542
Auto-Submit: Amirali Abdolrashidi <abdolrashidi@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.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>
|
|
ad01f53c
|
2023-05-11T09:44:13
|
|
Vulkan: Add additional nullptr check in ShouldReportDebugMessage
Some platforms are using the callback for non-VVL messages, and we
just need an additional nullptr check for pMessageIdName when
deciding whether to print it.
Test: Trace tests on S23 with VVL enabled
Bug: angleproject:8163
Change-Id: Id76903e01be859f6ae7a6d253ed32ae54cd682ec
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4522466
Auto-Submit: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Charlie Lao <cclao@google.com>
|
|
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>
|
|
b1395bcb
|
2023-05-09T12:34:55
|
|
GL: Disable EXT_clip_control on Mali-G72 and G76.
Querying the clip control state from the driver when sychronizing
external contexts generates driver errors.
Simply disable this extension in this configuration for now.
Chrome is currently not using it for rasterization.
This issue was noticed on specific Huawei devices in the wild. It
hasn't been observed on other OEMs.
Bug: chromium:1434317
Change-Id: I88d9bff1933274f61020b75e68aee9c94b0b684a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4518062
Reviewed-by: Peng Huang <penghuang@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Colin Blundell <blundell@chromium.org>
|
|
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>
|
|
deab374e
|
2023-05-09T10:29:21
|
|
Vulkan: skip releaseStagedUpdates when not owned
this is only a temp quick fix for b/279677207. may introduce
rendering issue there are still other multi-thread race issues.
the stagedupdates come from defer clears or empty entries.
Bug: b/279677207
Change-Id: Idfd21120e5fe916d0d9d205dba2d71695085a5d6
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4518740
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Hailin Zhang <hailinzhang@google.com>
|
|
b0f9c01e
|
2023-05-01T12:54:10
|
|
metal: adds feature that minimizes generated shader differences
This adds a feature (enabled by default) that results in
generating the same code regardless of whether emulateAlphaToCoverage
is enabled or addExplicitBoolCasts. This is done to maximize
cache sharing.
Bug: chromium:1423136
Change-Id: Ia491f13469c750fc2c45aecf1f93fed53b782dc5
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4496254
Reviewed-by: Alexey Knyazev <lexa.knyazev@gmail.com>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Scott Violet <sky@chromium.org>
|
|
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>
|
|
e482d4b2
|
2023-05-08T17:53:14
|
|
Store the temp file name in a std::string instead of stack array
It's possible to overflow the tempFile buffer if the temporary file
directory is too long.
Bug: chromium:1443445
Change-Id: Id6038f54cba2dfb524a5602df99bf775aecb4450
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4515532
Reviewed-by: Roman Lavrov <romanl@google.com>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
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>
|
|
c4412061
|
2023-05-08T18:46:10
|
|
Suppress more of VUID-vkCmdDraw-None-0784x
* Suppressed the following VVLs
* VUID-vkCmdDrawIndexed-None-07840
* VUID-vkCmdDrawIndexed-None-07841
* VUID-vkCmdDrawIndexed-None-07843
* VUID-vkCmdDrawIndexed-None-07847
Bug: angleproject:8151
Bug: angleproject:8159
Change-Id: I7fe36cfa34b8157af0be7f0c35779185a6b341aa
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4514442
Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
Auto-Submit: Amirali Abdolrashidi <abdolrashidi@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
aa6291aa
|
2023-05-08T15:49:15
|
|
Suppress VUID-vkCmdDrawIndexed-None-0784x
* Suppressed the following VVLs
* VUID-vkCmdDrawIndexed-None-07840
* VUID-vkCmdDrawIndexed-None-07841
* VUID-vkCmdDrawIndexed-None-07843
* VUID-vkCmdDrawIndexed-None-07844
* VUID-vkCmdDrawIndexed-None-07845
* VUID-vkCmdDrawIndexed-None-07847
* VUID-vkCmdDrawIndexed-None-07848
Bug: angleproject:8159
Change-Id: Id516d0a8e677b00b3f46a456d07386c5fd91d6dc
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4514440
Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
Auto-Submit: Amirali Abdolrashidi <abdolrashidi@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
fbca2b29
|
2023-05-08T16:19:54
|
|
Metal: Build built-in shaders from source on the simulator
Compiling the built-in shaders with iphonesimulator sdk generates the
same shaders as on iOS which do not work on the simulator. Fall back
to simply building them from source on the simulator.
Bug: chromium:1385510
Change-Id: If6a3846fd06a4ff12c1e46c31f207e2a7b6c50bb
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4515521
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
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>
|
|
9c376a02
|
2023-03-31T00:00:00
|
|
Metal: Implement ANGLE_polygon_mode
Bug: angleproject:1791
Change-Id: Iea1e10751ad8e853b4fb209952488211cfa4bac4
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4497909
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
|
|
c710023d
|
2023-03-31T00:00:00
|
|
D3D11: Implement ANGLE_polygon_mode
Bug: angleproject:1791
Change-Id: I17a1ec9222199d4afb2dbcba3d0219f0a37f6a67
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4500079
Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
7f04dc7d
|
2023-04-19T15:05:47
|
|
Reland: Metal: Embed precompiled default shaders.
Compile all builtin shaders to an embedded mtllib to avoid the overhead
of compiling them at startup.
This reland adds ios simulator precompiled shaders.
Bug: chromium:1385510
Change-Id: Ic8585ffe566875e705f2fb00f8e665e8a80797f6
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4512494
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Quyen Le <lehoangquyen@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
255c6738
|
2023-04-28T21:08:01
|
|
Vulkan: Fix flaky linux-asan-test failure with asyncCommandQueue
Regression from this commit:
Vulkan: Clean up CommandProcessor::queuePresent
https://chromium-review.googlesource.com/c/angle/angle/+/4257927
Details:
- `CommandProcessor::processTask()` handles `CustomTask::Present`;
- It calls `CommandProcessor::present()` that assigns
`swapchainStatus->isPending = false`;
- `CommandProcessor` thread is suspended for a while...;
- `WindowSurfaceVk::destroy()` calls `waitForPresentToBeSubmitted()`;
- It sees that `swapchainStatus->isPending == false` and skips waiting;
- `WindowSurfaceVk` (and `SwapchainStatus` ) instance is destroyed;
- `CommandProcessor` thread resumes and checks
`task->getSwapchainStatus()->lastPresentResult` - ASAN failure.
The 460 bytes offset is `SwapchainStatus::lastPresentResult` member
inside `WindowSurfaceVk` instance.
Test that failed:
ImageTest.ValidationGLEGLImageExternal/ES2_Vulkan_SwiftShader_AsyncCommandQueue
==27108==ERROR: AddressSanitizer: heap-use-after-free on address 0x61e0000eea4c at pc 0x7f98434e0e10 bp 0x7f98363c0a70 sp 0x7f98363c0a68
READ of size 4 at 0x61e0000eea4c thread T29
#0 0x7f98434e0e0f in rx::vk::CommandProcessor::processTask(rx::vk::CommandProcessorTask*) src/libANGLE/renderer/vulkan/CommandProcessor.cpp:664:59
0x61e0000eea4c is located 460 bytes inside of 2880-byte region [0x61e0000ee880,0x61e0000ef3c0)
freed by thread T0 here:
#0 0x5651c72a563d in operator delete(void*) /b/s/w/ir/cache/builder/src/third_party/llvm/compiler-rt/lib/asan/asan_new_delete.cpp:152:3
#1 0x7f9843f4c8c9 in SafeDelete<rx::SurfaceImpl> src/common/angleutils.h:285:5
previously allocated by thread T0 here:
#0 0x5651c72a4ddd in operator new(unsigned long) /b/s/w/ir/cache/builder/src/third_party/llvm/compiler-rt/lib/asan/asan_new_delete.cpp:95:3
#1 0x7f9843a38599 in rx::DisplayVkXcb::createWindowSurfaceVk(egl::SurfaceState const&, long) src/libANGLE/renderer/vulkan/linux/xcb/DisplayVkXcb.cpp:99:12
Bug: b/269524271
Change-Id: Ie70bc9e2b89267653ddb6b3a30c1a67e22864f26
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4491743
Commit-Queue: Igor Nazarov <i.nazarov@samsung.com>
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
54532241
|
2023-01-19T15:45:29
|
|
Vulkan: Remove mUse related code from SyncHelperNativeFence
Since adding `rx::vk::ExternalFence` class, waiting on `mUse` is almost
the same as waiting directly on `mExternalFence`.
Because `mUse` is no longer required to release the fence and to reduce
code complexity, `mUse` related code paths were removed.
Since `SyncHelperNativeFence` no longer using `mUse` no need to inherit
from `SyncHelper`. Added `SyncHelperInterface` abstract base instead.
Bug: angleproject:8115
Change-Id: I2aabbc905d833f8bf6db36b3be356d6db40349d0
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4392880
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Igor Nazarov <i.nazarov@samsung.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>
|
|
76fa3806
|
2023-05-04T10:19:35
|
|
Vulkan: Expand BufferOnly path for VertexArray binding change
VertexArrayVk has a fast code path for attribute change where the only
change is buffer (i.e, no format or relativeOffset change). It will pass
in bufferOnly to syncDirtyAttrib() call and will avoid invalidate
graphics pipeline. This CL expands DIRTY_BIT_BINDING_n change and will
also try to detect the bufferOnly case.
This CL and crrev.com/c/4507978 together seeing Gfxbench driver overhead
score improves 1.48% (from average 6804 before CLs to 6905 after CLs) on
pixel 7 pro.
Bug: b/277644512
Change-Id: I71da1b886bb26ba2629b83af3aeaba4d45c3d3c2
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4504919
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Commit-Queue: Charlie Lao <cclao@google.com>
Auto-Submit: Charlie Lao <cclao@google.com>
|
|
086b6c20
|
2023-05-04T15:55:31
|
|
Vulkan: Simplify TransformFeedback buffer tracking
Right now the buffers that used by transform feedback is tracked by
mCurrentTransformFeedbackBuffers, which is angle::FlatUnorderedSet.
With the QueueSerial numbers, this can be much simplified. This CL
removes mCurrentTransformFeedbackBuffers. It adds a new QueueSerial
variable called mCurrentTransformFeedbackQueueSerial, and is inavlid if
no active transform feedback. Then check if a buffer is used by
transform feedback is as simple as check if it is written by
mCurrentTransformFeedbackQueueSerial. Since buffers are already tracked
by queue serial, so there is no new tracking needed. It is simply a
check if the buffer contains mCurrentTransformFeedbackQueueSerial or
not.
Bug: b/280889890
Change-Id: I54bdc4a0cfc7194a12d2aa0abdc67a3211949024
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4507978
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Charlie Lao <cclao@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>
|
|
e71207de
|
2023-01-18T13:39:58
|
|
Vulkan: Fixes in rx::vk::SyncHelperNativeFence class
Issues:
- Resource::mUse was not updated in initializeWithFd() method,
making code paths, that checking for "mUse" a dead-code.
- mFenceWithFd may be potentially destroyed while still in use.
(Because mUse is not valid).
- missing checkCompletedCommands() in getStatus(), that may cause
infinite loop in the application.
Bug: angleproject:8115
Change-Id: I857d785f564b809eb83417fe5f212f7d0f12c5b5
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4392878
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Igor Nazarov <i.nazarov@samsung.com>
|
|
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>
|
|
72f9add4
|
2023-05-03T15:30:33
|
|
Vulkan: Initialize mLastSubmittedQueueSerial to valid value
Currently, ContextVk::mLastFlushedQueueSerial and
ContextVk::mLastSubmittedQueueSerial are invalid after Context
initialization. Although, invalid QueueSerial will always test as
submitted and finished, this produce a edge case. In case of
SyncHelper::mUse, we can not longer assert that mUse.valid() after
submitSyncIfDeferred() call, because invalid mUse is now a valid case...
This CL initializes both members to valid value, that will also always
test as submitted and finished. This removes the edge case, and allow
using assert in SyncHelper to check if everything works as expected.
Bug: b/277644512
Change-Id: I6be71596ab7dca1026764756fba7b21b81524413
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4503485
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Igor Nazarov <i.nazarov@samsung.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>
|
|
e24f4519
|
2023-01-19T02:30:39
|
|
Vulkan: Add externalFence into submitCommands()
Currently one-off fence in the `queueSubmitOneOff()` is used only in
`SyncHelperNativeFence::initializeWithFd()` to submit external fence.
Other `queueSubmitOneOff()` calls may use `QueueSerial` instead of a
fence.
Providing `fence` into `queueSubmitOneOff()` prevents tracking that
submission with `QueueSerial`. Therefore using `mUse` to collecting
`mFenceWithFd` as garbage will not work as intended.
This CL removes `fence` from `queueSubmitOneOff()` and adds
optional `externalFence` into `submitCommands()` instead.
Providing `externalFence` will cause additional `vkQueueSubmit()` call:
- first submission will submit everything as usual except using
the `externalFence`.
- second, will only submit internal `CommandQueue` fence for
`QueueSerial` tracking.
As the result of this CL, call to `initializeWithFd()` will always
produce two (2) `vkQueueSubmit()` calls. Previously it may be one (1) or
two (2) submissions. Future CL will reduce submission count to one (1).
If add additional submission into `queueSubmitOneOff()` instead of
`submitCommands()`, then maximum number of submissions will be
three (3).
Bug: angleproject:8117
Change-Id: I6f1ec12682aaab71bfc871e665fec2659df96b26
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4392877
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Igor Nazarov <i.nazarov@samsung.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>
|
|
d925c5c9
|
2023-05-04T16:16:11
|
|
Revert "Metal: Embed precompiled default shaders."
This reverts commit 9f6c9f6630b63f541f5fd875aef87ce2a26fd618.
Reason for revert:
iOS Metal tests broken downstream:
https://ci.chromium.org/ui/p/chromium/builders/ci/ios-blink-dbg-fyi/4972/overview
Original change's description:
> Metal: Embed precompiled default shaders.
>
> Compile all builtin shaders to an embedded mtllib to avoid the overhead
> of compiling them at startup.
>
> Bug: chromium:1385510
> Change-Id: I1c31ae0088babae01a9e42d63b3c2c30b65f4476
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4450126
> Commit-Queue: Geoff Lang <geofflang@chromium.org>
> Reviewed-by: Quyen Le <lehoangquyen@chromium.org>
> Reviewed-by: Kenneth Russell <kbr@chromium.org>
Bug: angleproject:8152
Bug: chromium:1385510, chromium:1441754
Change-Id: I7f253f7aa14117b93d1e09ed61db0c4563fc9c3d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4508064
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
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>
|
|
c687078a
|
2023-05-01T16:45:19
|
|
FrameCapture: Add GLES1 case for BlendFunc state init/reset
A recent frame capture change added state init/reset for
glBlendFunc/glBlendFuncSeparate calls and combined them to
avoid complexity, but this caused crashes in GLES1 native
trace playback. This CL separates handling of the two calls.
Test: angle_trace_tests --gtest_filter=TraceTest.street_fighter_iv_ce
Bug: b/280329971
Change-Id: I34d674e2fc051f5af70a60a24e5b65c5ce54fd49
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4494261
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Roman Lavrov <romanl@google.com>
Commit-Queue: Mark Łobodziński <mark@lunarg.com>
|
|
55df82e0
|
2023-05-04T15:23:08
|
|
Fix crash in std::stoi()
std::stoi() will throw exceptions when the input is invalid,
so change to use std::atoi() which doesn't throw exception.
Bug: chromium:1401610
Change-Id: I188412363b26286003b5daf311e5725fe4c4d7e9
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4507533
Commit-Queue: Peng Huang <penghuang@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Auto-Submit: Peng Huang <penghuang@chromium.org>
|
|
7fd01d03
|
2023-04-19T00:54:24
|
|
Vulkan: Throttle the CPU without holding the global lock
CPU throttling goes through CommandQueue and is thread-safe. Performing
it in an unlocked tail call allows other unrelated EGL calls to go
through.
Bug: angleproject:8135
Change-Id: Idb3841be5d8ea8c4b76217f6707be26b28ea39c2
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4444027
Reviewed-by: Igor Nazarov <i.nazarov@samsung.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Charlie Lao <cclao@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>
|
|
fbff065c
|
2023-05-03T22:19:07
|
|
Replace GetResourceFromHashSet with map lookup
Function GetResourceFromHashSet had linear time complexity
because it was sweeping through the set until a resource with a
matching ID was found. This change replaces hash sets with hash
maps to get constant time lookup. This solves, among other things,
O(N^2) time complexity for rendering scenes containing a large
number of surfaces.
Function GetResourceFromHashSet was consuming over 50% of all CPU time
on the main thread of Chrome's GPU process while running the MotionMark
1.2 Images test. With this change, the benchmark score increases by
70% on an M1 MacBook running a PGO official build of Chrome.
Bug: chromium:1435066
Change-Id: I895ac0141a91d324c63adec2c0efb8e030d9675b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4505950
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Justin Novosad <junov@chromium.org>
Reviewed-by: Igor Nazarov <i.nazarov@samsung.com>
|
|
d6481cdf
|
2023-04-18T22:36:39
|
|
Vulkan: Make eglPrepareSwapBuffersANGLE thread-safe
This function now only calls vkAcquireNextImageKHR without any further
processing of its results. That is deferred to the following
eglSwapBuffers call which does that under the share group lock.
The vkAcquireNextImageKHR call, together with the allocation of its
related semaphore and fence are protected by a fine-grained lock.
mNeedToAcquireNextSwapchainImage is turned atomic to guard against races
to call vkAcquireNextImageKHR from multiple contexts. Note that the
latter is not currently possible, but will be once calling
vkAcquireNextImageKHR is moved to the end of the render pass.
Bug: angleproject:6851
Bug: angleproject:8133
Change-Id: If2eeab475b4acf0621fd930c43d9d86a78a9197b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4445495
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Igor Nazarov <i.nazarov@samsung.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
cd171d2e
|
2023-03-28T14:58:57
|
|
Vulkan: Enable async pipeline cache compression
* Enabled the feature after adding more header data, including original
cache size, chunk index, and CRC.
Bug: b/246683126
Change-Id: Idef85f0a6f9e0072fcb800aedb6b720cc88c46b2
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4378720
Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Charlie Lao <cclao@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>
|
|
aa1dc5da
|
2023-05-03T19:36:04
|
|
Revert "Vulkan: Simplify present history logic"
This reverts commit 1dee7cad284dda0c7c3ca18c10d8b7764353c7b0.
Reason for revert:
error: SurfaceVk.cpp:784 (destroy): ! Assert failed in destroy (..\..\src\libANGLE\renderer\vulkan\SurfaceVk.cpp:784): fence.getStatus(device) == VK_SUCCESS
Example builds:
https://ci.chromium.org/ui/p/angle/builders/try/win-test/13341/overview
https://ci.chromium.org/ui/p/angle/builders/try/win-test/13345/overview
Original change's description:
> Vulkan: Simplify present history logic
>
> Instead of marking `ImagePresentOperation` as corresponding to an older
> swapchain, accumulate all present history in the `mOldSwapchains`.
>
> Keeping old Swapchain's `ImagePresentOperation` with Fences can lead to
> multiple "old swapchains" lists. This may cause situations exceeding
> the `kMaxOldSwapchains` limit.
>
> Keeping items with Fences may help cleanup resources faster, but I think
> that it is not worth the code complexity. It also should be safe to
> recycle Fences at the same time as the Semaphores (when the first image
> is recycled).
>
> Also this CL may fix bug:
> if (mPresentHistory.empty() || mPresentHistory.back().imageIndex == kInvalidImageIndex)
> The above condition will always pass when using actual present Fences
> (VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_FENCE_INFO_EXT).
>
> Bug: angleproject:7847
> Change-Id: I39d854b03733dcb976c6bd7eb5f848d0cbece5d6
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4481251
> Reviewed-by: Charlie Lao <cclao@google.com>
> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
> Commit-Queue: Igor Nazarov <i.nazarov@samsung.com>
Bug: angleproject:7847
Change-Id: Icf0cf5b12dd1efa682abebd83699b8d87dc07427
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4502778
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: 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>
|
|
1dee7cad
|
2023-01-17T18:01:49
|
|
Vulkan: Simplify present history logic
Instead of marking `ImagePresentOperation` as corresponding to an older
swapchain, accumulate all present history in the `mOldSwapchains`.
Keeping old Swapchain's `ImagePresentOperation` with Fences can lead to
multiple "old swapchains" lists. This may cause situations exceeding
the `kMaxOldSwapchains` limit.
Keeping items with Fences may help cleanup resources faster, but I think
that it is not worth the code complexity. It also should be safe to
recycle Fences at the same time as the Semaphores (when the first image
is recycled).
Also this CL may fix bug:
if (mPresentHistory.empty() || mPresentHistory.back().imageIndex == kInvalidImageIndex)
The above condition will always pass when using actual present Fences
(VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_FENCE_INFO_EXT).
Bug: angleproject:7847
Change-Id: I39d854b03733dcb976c6bd7eb5f848d0cbece5d6
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4481251
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Igor Nazarov <i.nazarov@samsung.com>
|
|
533cf9a4
|
2023-05-02T22:39:09
|
|
Vulkan: Suppress new VUID-vkCmdDraw-None VVL errors
Test: angle_trace_tests --gtest_filter="*slingshot_test2*"
Bug: angleproject:8151
Change-Id: Ifc26a57fe92b57c30f253f5bb491a1ac3932f2f1
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4500928
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
a73e546c
|
2023-04-14T13:40:19
|
|
Vulkan: Add pending memory size for VMA images
* Added implementation for vma::FindMemoryTypeIndexForImageInfo().
* Add pending memory allocation tracking for VMA images using
the memory requirement from getMemoryRequirements() and the
memory type index from the function above.
Bug: b/218891184
Change-Id: I1c3d3a8f5f36eb57bd7a5a059aa3bf713b819831
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4428535
Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
|
|
dcc37e31
|
2023-05-02T13:22:18
|
|
Vulkan: Restore stencil write mask workaround for ARM
Still has issues on latest drivers.
Test: angle_trace_tests --gtest_filter="*pokemon_go*"
Bug: b/279715714
Bug: angleproject:7556
Change-Id: I4d46cdc2b86da374413f97e45858e18022e0cc7b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4499032
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
b052a5bf
|
2023-03-31T00:00:00
|
|
Vulkan: Implement polygon mode extensions
* NV_polygon_mode
* ANGLE_polygon_mode
Bug: angleproject:1791
Bug: angleproject:8132
Change-Id: I2beffdad0c1569546020b78a9c6d9b8ea87c2100
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4498687
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
|
|
0561884e
|
2023-04-26T17:26:42
|
|
Vulkan: Dirty VertexArray binding bit if buffer storage change
In crrev.com/c/3669603, we did optimization for black_desert_mobile that
when vertex array is unbound, we remove vertex array from buffer's
observer list to reduce overhead of observer notifications when buffer
is been modified. To compensate for the lost notification, when vertex
array is bound, we always assume every buffer that is bound to vertex
array has been dirtied, for the simplicity at that time. This CL further
the optimization of that CL. In this CL, I moved the dirty bit set into
backend and improves vulkan backend by checking buffer's serial number
and only dirty the binding if the serial has changed. Given this, now we
can also remove all the non-current vertex array from buffer's observer
list (previously it is heuristic based with a hard coded observer count
limit). This and the previous CL improves asphalt_9 by ~1%.
Bug: b/277644512
Change-Id: Ibc3f8e3df9fe70c6879e0b2bca86d8487a9dba73
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4481241
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Commit-Queue: Charlie Lao <cclao@google.com>
|
|
89a8ba7d
|
2023-04-25T17:08:42
|
|
Vulkan: Add bit mask vertex array buffer binding point.
There are various places we are looping all vertex binding points. Right
now it is always 16, even though most of them do not have any buffer
bound. This CL adds mArrayBufferBindingBitMask, which is the bit mask
tracking all binding index that has a buffer bound. Now we only need to
loop for all bindings that actually have a buffer, which usually much
less than 16.
This CL also removes some redundant use of "gl::" name space.
Bug: b/277644512
Change-Id: I30d053274839bfa7c56487651b95c62f2a2c67e3
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4478229
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Charlie Lao <cclao@google.com>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
|
|
2ceb04e0
|
2023-05-02T10:45:11
|
|
Initialize display TLS at thread creation time
Bug: chromium:1441754
Change-Id: I611c6f591f2a6d3439e3c5d1250e2fde996c0ecf
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4496673
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
1fc399c6
|
2023-05-01T22:29:35
|
|
Vulkan: Adjust VVL suppression after VU consolidation
Bug: angleproject:8119
Change-Id: I42746d399841591e78114cb26c2e377e255e791e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4492542
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
|
|
5c04f18a
|
2023-04-24T16:18:24
|
|
Vulkan: Remove DisplayVk param from ToEGL
It's no longer used
Bug: angleproject:3041
Change-Id: I5063152d1598aa5d40d94bbf5c643a1288589037
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4470387
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Igor Nazarov <i.nazarov@samsung.com>
Reviewed-by: Charlie Lao <cclao@google.com>
|
|
144f2d2c
|
2023-04-24T12:52:27
|
|
Vulkan: Use thread-local space for EGL errors
The assumption in anglebug.com/3041 that ANGLE is "single-threaded
anyway" no longer holds.
Bug: angleproject:3041
Change-Id: I613395c8003cad60764362d2776aaf7b6804b788
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4468107
Reviewed-by: Igor Nazarov <i.nazarov@samsung.com>
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: 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>
|
|
cd6a58f2
|
2023-04-18T12:45:10
|
|
Vulkan: Make eglPrepareSwapBuffersANGLE less special
This function now uses the UnlockedTailCall mechanism so it doesn't
require as much special-case code generation.
This change does not fix the bug that this function is doing too much
work without holding any locks. That will be done in a follow up.
Bug: angleproject:6851
Bug: angleproject:8133
Change-Id: I77f4d514ff4aeef85bc1cc59214f7caa23aca7df
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4443186
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
b7a5714f
|
2023-03-31T00:00:00
|
|
Add polygon mode extension stubs
* Added NV_polygon_mode
* Specified a portable polygon mode extension
implementable on all ANGLE backends
Bug: angleproject:1791
Bug: angleproject:8132
Change-Id: I018aaaf1fb43ec16910859b152049e02169ede91
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4492684
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
|
|
9f6c9f66
|
2023-04-19T15:05:47
|
|
Metal: Embed precompiled default shaders.
Compile all builtin shaders to an embedded mtllib to avoid the overhead
of compiling them at startup.
Bug: chromium:1385510
Change-Id: I1c31ae0088babae01a9e42d63b3c2c30b65f4476
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4450126
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Quyen Le <lehoangquyen@chromium.org>
Reviewed-by: Kenneth Russell <kbr@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>
|
|
059efd15
|
2023-04-27T18:37:05
|
|
Vulkan: use any available memory type for external
For external memory import, compatible memory types are decided by the
Vulkan driver since the memory has been allocated externally. There are
usually special requirements against external memory. e.g. AHB allocated
with CPU R/W often usage bits is only importable for non-device-local
heap on some AMD systems. So if angle requests for device-local, it'd be
unable to find a compatible memory type for import. This change updates
to pick the first available type on the external fallback code path.
Bug: b/279862309
Test: android.media.cts.DecodeAccuracyTest on venus atop radv
Change-Id: I0fd5ceb6fe633f591cbcdb01d246803fe0130796
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4484422
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
2ee97f91
|
2023-04-27T15:43:03
|
|
Unconditionally enable append_aliased_memory_decorations_to_ssbo
After the discussion with Khronos group on how to
handle aliased ssbo in GL driver:
https://gitlab.khronos.org/Tracker/vk-gl-cts/-/issues/4321
https://gitlab.khronos.org/opengl/API/-/issues/183
it is the correct behavior to append aliased memory
qualifier to SSBOs, if restrict memory qualifier is
not specified. Unconditonally enable this feature
for all hardware.
Bug: b/266235549
Change-Id: I20c811710bb10f0de39de5707adab0262a46d296
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4485008
Commit-Queue: Yuxin Hu <yuxinhu@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org>
|
|
e96e919f
|
2023-04-24T00:00:00
|
|
D3D11: Implement multisampling shader extensions
* OES_sample_variables
* OES_shader_multisample_interpolation
Bug: angleproject:8097
Bug: angleproject:8131
Change-Id: I8ea81725d30ab3a5db6254b897fe72dbe88739d9
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4484164
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
f9a700ee
|
2023-04-27T14:15:56
|
|
Disable mutable texture upload for discrete GPUs
A local case was observed for the trace "vainglory" on Linux, where
it fails due to OOM on one of the memory heaps.
* mutableMipmapTextureUpload is now disabled when discrete GPUs are
used in order to migitate OOM for VRAM.
* After this change, the heap usage for "vainglory" drops from
~3,794,862,080 to ~1,126,891,520.
Bug: b/278600575
Change-Id: Ie09d0037ffaf28640c4e36c5fff5d329c3a3f9cc
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4458269
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
ae6b2d11
|
2023-04-25T14:23:30
|
|
Metal: Gracefully fail compilation of stencil blit shaders.
ANGLE only supports stencil blits on Metal 2.1 and greater. Generate
useful error messages and fail the blit gracefully when these shaders
are not supported instead of asserting/crashing.
Bug: chromium:1385510
Change-Id: I11df34d38f203c1498164def274135d8f1d14635
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4476346
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Quyen Le <lehoangquyen@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
3e281219
|
2023-04-27T14:52:18
|
|
Adds feature to output blob cache key and source for shader
Bug: chromium:1423136
Change-Id: Ic03e1b9971b2f1417c0b2e95c8d3846f28a01572
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4480976
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Scott Violet <sky@chromium.org>
|
|
059bfe89
|
2023-04-27T16:13:06
|
|
metal(ish): Adds platform function for logging cache hits/misses
And adds call from metal.
This way chrome can log overall cache stats.
Bug: chromium:1423136
Change-Id: Iba5b3bd138adf15fe5e999d3dee0002f140edac1
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4484260
Commit-Queue: Scott Violet <sky@chromium.org>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
|
|
adf21a92
|
2023-04-27T22:45:55
|
|
Revert "When asserts enabled, log validation errors as WARN"
This reverts commit 362c70238251c3610a1668b9f4c91f422d7d7f24.
Reason for revert: spams logs in Chrome wegbl conformance testing causing instability
Original change's description:
> When asserts enabled, log validation errors as WARN
>
> These messages are useful for debugging but INFO() doesn't get logged
> at all (e.g. when using flags from linux-test CI)
>
> Bug: None
> Change-Id: I7fc02e866fc304c1e925becff58b71345d34238b
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4456067
> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
> Commit-Queue: Roman Lavrov <romanl@google.com>
Bug: chromium:1439591
Bug: chromium:1440881
Change-Id: I211ee710568a4162b04ffcc297c20efb67019acb
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4480384
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Commit-Queue: Roman Lavrov <romanl@google.com>
|
|
90539b10
|
2023-04-24T16:36:01
|
|
Vulkan: Clean up some of trace events
CommandBuffer::begin/end/reset events are too fine grain. The trace
event retireFinishedCommandsLocked already covers reset.
Also made flushImpl generate event only if we did submit, if we end up
early out, that is not interesting.
Also add event for fenceWait, since that is quite important for
performance investigation, sometimes an indication of bad
synchronization.
Bug: b/277644512
Change-Id: I7d2f6d0716a83bf3b88a9e590ddc042b038b347a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4471747
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Charlie Lao <cclao@google.com>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
|
|
b875f47b
|
2023-04-24T11:11:03
|
|
Vulkan: Make mLastSubmittedQueueSerial reflect what it means
Right now we always update ContextVk::mLastSubmittedQueueSerial and
ContextVk::mLastFlushedQueueSerial when context becomes current, even
though it does not make any submission. It was done it this way mainly
for simplification (i.e, you will always see both queueSerial's index
the same). But this also causes a performance cost when a
mLastSubmittedQueueSerial is used to tag a resource. For example, if you
insert a EGLSync right after makeCurrent, that EGLSync may get a queue
serial number bigger than it should be, which will translate to longer
sync wait time. This CL changes these two queue serial to exact what the
name suggests, that it will only update if we made a "flush" or "submit"
call.
Bug: b/277644512
Change-Id: Ibe4c78985a3fe0726836d620202e5276894a8e7c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4458532
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Charlie Lao <cclao@google.com>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
|
|
1810995c
|
2023-04-25T13:09:27
|
|
Capture/Replay: Initialize MEC alpha test state
Fixes Street Fighter IV CE rendering issues when capturing.
Test: angle_trace_tests --gtest_filter="*street_figher_iv_ce*"
Bug: b/278606770
Change-Id: Ifb44c45b19514e4cabed1e81be99bce5706ac4d3
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4475732
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Mark Łobodziński <mark@lunarg.com>
|
|
3625b749
|
2023-04-27T08:19:05
|
|
[ContextEGL] Synchronize state only when first making current
ContextEGL::onMakeCurrent() can be called when this context is already
current, which introduces complexities for the case where this context
is wrapping an external context. This CL ensures that in this case we
save state from the native context only when first transitioning this
context to be current.
To test: Exercise the repro steps in crbug.com/1434657: No assert
should go off.
Bug: chromium:1434657
Change-Id: I9690a76917fcb6d0fa31361bfbd3766bb6074d41
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4483695
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Auto-Submit: Colin Blundell <blundell@chromium.org>
|
|
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>
|
|
1904410a
|
2023-04-26T19:37:04
|
|
Vulkan: Add missing ASSERTs to QueueSerial relation operators
Bug: b/255414841
Change-Id: I46203a6f51bd43818cc8c136b47ed4420e7dd184
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4481249
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Igor Nazarov <i.nazarov@samsung.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>
|
|
f4febc9c
|
2023-04-25T10:16:47
|
|
Vulkan: Remove generic syncval suppression about storage buffers
Bug: angleproject:7125
Change-Id: I3778e82c90f9d546f4e3948894060af0173b7b84
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4471628
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Yuxin Hu <yuxinhu@google.com>
|
|
ec04c40d
|
2023-04-24T23:12:09
|
|
Vulkan: Fix regression not calling mRenderer->notifyDeviceLost
Change:
Vulkan: Fix freeing not completed Secondary Command Buffers.
https://chromium-review.googlesource.com/c/angle/angle/+/4334579
.. accidentally removed `mRenderer->notifyDeviceLost();` line from
`ContextVk::handleDeviceLost()` method. This CL fixes that regression.
Bug: angleproject:6100
Change-Id: Iba3c9df71399821ac1b05109e873abfe5dc02bad
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4470307
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Igor Nazarov <i.nazarov@samsung.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
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>
|
|
8b97c8d3
|
2023-03-31T15:54:40
|
|
Implement build option for load-time GlobalMutex allocation.
Performance difference on S906B for 1000'000 `eglGetError()` calls.
Before: 26.5 ms
After: 23.8 ms
(Assuming `angle::FastMutex2` is used).
Potentially can be enabled for other platforms.
Bug: angleproject:8101
Change-Id: Ic2037edaae6da82dbded71288bae250d7981e7d3
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4386408
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Igor Nazarov <i.nazarov@samsung.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
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>
|
|
b5fa8728
|
2023-04-20T14:59:28
|
|
Add extension to skip texture renderability validation in ANGLE.
Add a new extension to skip the texture renderability
validation in ANGLE.
Bug: angleproject:0000
Change-Id: Ia9e5a1eff233f5aced4706b7d3c183058d474c41
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4455549
Auto-Submit: vikas soni <vikassoni@chromium.org>
Commit-Queue: Zhenyao Mo <zmo@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: vikas soni <vikassoni@chromium.org>
|
|
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>
|
|
13935469
|
2023-04-25T09:58:42
|
|
Vulkan: Fix access mask of generateMipmap's blit
Bug: angleproject:8143
Bug: angleproject:7125
Change-Id: I6e5b6cd1f445c2c41d4b78aeb368e30cc4c5354b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4475444
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
|
|
a2fceac2
|
2023-04-17T12:55:34
|
|
Prefer Metal over CGL for querying device registry IDs.
This avoids loading the OpenGL framework when it will not be used.
The Metal framework is already loaded unconditionally.
Bug: chromium:1433697
Change-Id: I171f842f2245d974eb6798880a7fbaf336edecfc
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4434709
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
b494691d
|
2023-04-20T00:00:00
|
|
GL: Enable NV_shader_noperspective_interpolation on ES
Although the extension requires ESSL 3.00,
some drivers support it only in ESSL 3.10.
Fixed: angleproject:4542
Change-Id: I2c50b521056f485a5986942ea882780b327844a9
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4455507
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
|
|
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>
|
|
1acc6d40
|
2023-04-21T17:03:49
|
|
Vulkan: Use Android TLS for *valid* global context
... instead of just global context. This means that the majority of
calls which call GetValidGlobalContext() will be faster (because they
don't need to check for context loss).
Bug: angleproject:8135
Change-Id: Ia91f8fadb5799088542c58d417f31c3e5028b3e0
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4454769
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Igor Nazarov <i.nazarov@samsung.com>
Reviewed-by: Charlie Lao <cclao@google.com>
|