|
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>
|
|
c26011b8
|
2023-04-11T15:16:29
|
|
Vulkan: Make advanced blend alpha div workaround permanent
This workaround turned out to affect pretty much every driver, and
numerous GL implementations were found to work around it similarly to
ANGLE. It seems like this workaround may only be necessary for
colorburn and colordodge, but for now ANGLE applies it to all modes.
Bug: b/274528004
Bug: b/277777623
Change-Id: Id555c981a9775f949a3022b7e92c755accea7cea
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4416158
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
663b60b5
|
2023-04-12T09:51:32
|
|
Vulkan: More consistent fix for single buffer ANI semaphore wait
Transition into single buffer mode are generating two ANI calls. This CL
slightly improves the previous CL (crrev.com/c/4400011)'s handling of
ANI semaphore wait for single buffer mode. Instead of catching
outstanding ANI semaphore at present time, this CL consumes the
semaphore immediately just like layout change
Bug: b/275624771
Change-Id: I5418ec47b6bfc77af411c9205e1ae27adeb27976
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4419126
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Commit-Queue: Charlie Lao <cclao@google.com>
|
|
9ae918cb
|
2023-02-03T15:14:00
|
|
Reland "Vulkan: SurfaceVk should only wait for GPU work that uses it"
This is a reland of commit 5b63e1dc1d5e96018d0ad30582265a612d309f3b
The added fix is add contextVk::mLastSubmitQueueSerial into
Surface::mUse before calling finish.
Original change's description:
> Vulkan: SurfaceVk should only wait for GPU work that uses it
>
> Right now when we destroy swapchain, we call mRenderer->finish() to
> finish everything, even though the work is unrelated to this surface.
> This CL changes it to only wait for ResourceUse of all images in the
> swapChain.
>
> Bug: b/267806287
> Change-Id: I33d136ad50961fbf5fbb200ff0f89f1dbf23585d
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4220723
> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
> Commit-Queue: Charlie Lao <cclao@google.com>
Bug: b/267806287
Change-Id: I160fd22595fcf292cc53c055e0678befa3b8501b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4406891
Commit-Queue: Charlie Lao <cclao@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
fd0ced8b
|
2023-03-31T15:07:00
|
|
Vulkan: remove isVenus from ARM driver version check
There're other ARM workarounds no longer needed by Venus atop ARM mali
ddk r40p0 and above, so we choose to forward host ARM driver version in
Venus: https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22242
Bug: b/277833839
Test: workaround enabled with latest venus
Change-Id: Ic52d4fe9f3f7e8a6f87aa275e702c99668f5824f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4391232
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Commit-Queue: Yuxin Hu <yuxinhu@google.com>
Auto-Submit: Yiwei Zhang <zzyiwei@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
3d17e9aa
|
2023-04-06T12:54:24
|
|
Add PLATFORM_IOS again
ANGLE_PLATFORM_IOS means "iOS or MacCatalyst".
Bug: angleproject:8121
Change-Id: I1482f44a106a1363623e2608b126ccde5548b81e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4404162
Reviewed-by: Dan Glastonbury <djg@apple.com>
Commit-Queue: Kimmo Kinnunen <kkinnunen@apple.com>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
|
|
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>
|
|
c19b66f6
|
2023-04-06T11:30:03
|
|
EAGL: Define ANGLE_ENABLE_EAGL in build system
ANGLE_ENABLE_EAGL is a "build system" decision.
Set this and new variable ANGLE_ENABLE_CGL in BUILD.gn file. This is
consistent with the other backends.
Remove ANGLE_CPU_ARM64. This was used to do ANGLE_ENABLE_EAGL=TRUE
when on Catalyst. Instead, let the build system set this.
For ANGLE/Chrome buildsystem, this is not set, as Catalyst is not
implemented. For WebKit, this should be set at WebKit build settings.
Replace
`defined(ANGLE_PLATFORM_MACCATALYST) && defined(ANGLE_CPU_ARM64)`
with simpler expression: `defined(ANGLE_ENABLE_EAGL)`.
Replace `defined(ANGLE_PLATFORM_MACOS) || defined(ANGLE_PLATFORM_IOS)`
with simpler expression: `defined(ANGLE_PLATFORM_APPLE)`.
Bug: angleproject:8121
Change-Id: I3a0bbabb4347ad11f693e3f7c336ff12f66203d7
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4404160
Commit-Queue: Kimmo Kinnunen <kkinnunen@apple.com>
Reviewed-by: Dan Glastonbury <djg@apple.com>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
|
|
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>
|
|
3dd79798
|
2023-04-07T12:57:05
|
|
GLES1: Convert ints to uints for mediump values
Mobile drivers are limiting mediump values to 16 bits, which follows
the GLSL spec.
Our shader was using signed mediump ints for enum values. That limits
their value range to [-2^15, 2^15-1], which is [-32768, 32767].
We started failing tests that use TexEnv mode GL_COMBINE (0x8570)
which converts to 34160 in decimal, exceeding the range.
This translated to a failure to switch on envMode in textureFunction.
To fix, convert all the mediump ints in the shader to mediump uints.
Test: GLES1ConformanceTest.TexCombine/ES1_Vulkan
Test: angle_trace_tests --gtest_filter="*wayward_souls*"
Bug: b/277220840
Change-Id: I5219fe1e725c80929906aee3eebd0729a2a29a9b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4409684
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
|
|
65ed3050
|
2023-04-04T11:57:38
|
|
Vulkan: Let recordWriteBarrier use CommandBufferHelper
This is preparation for next CL. It changes
OutsideRenderPassCommandBuffer argument to
OutsideRenderPassCommandBufferHelper for recordWriteBarrier() and
recordReadBarrier() calls, so that it has access to the helper object
(will be used in next CL). It passes CommandsState to executeBarriers()
instead of PrimaryCommandBuffer. No actual functionality change is
expected.
Bug: b/275624771
Change-Id: Ia06a0398a127539b0b642005803a498cb2a9d7f1
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4400407
Commit-Queue: Charlie Lao <cclao@google.com>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
20f875f8
|
2023-04-05T09:47:46
|
|
Vulkan: Add commandQueueWaitSemaphoresTotal perf counter
This counts total number of wait semaphores we submitted. This will be
used to write test to ensure that we insert wait semaphores properly in
future CLs.
Bug: b/275624771
Change-Id: I5b8e209500ff553617f6b30c2f8b4626d29c0e6a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4400823
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Commit-Queue: Charlie Lao <cclao@google.com>
|
|
a4341e04
|
2023-04-06T11:05:07
|
|
CGL: Remove the impl preprocessor guards
Adhere to the project formatting:
- Remove #if preprocessor guards from the CGL implementation.
- Order the includes as in style guide
- Use include / import consistently
- Move GLES_SILENCE_DEPRECIATION into .gn, similar to CGL
- Remove or add platform.h include based on whether the file
itself actually the platform.h defined macros
Simplifies the nested preprocessor macros. Makes it simpler
to further fix the preprocessor use.
WebKit should instead have a non-ANGLE .mm file #importing
the implementations with the proper include guards.
Moves macOS specific APIs from SystemInfo.h to SystemInfo_internal.h,
since common/platform.h is not available for Chrome clients of
SystemInfo.h
Bug: angleproject:8121
Change-Id: Iaef0d6948fbcef6d1c2e7877477d25ccc259cc2c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4404159
Reviewed-by: Dan Glastonbury <djg@apple.com>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Kenneth Russell <kbr@chromium.org>
|
|
854264e3
|
2023-04-11T06:18:44
|
|
Vulkan: enable precisionSafeDivision for venus
..otherwise the legacy org.skia.skqp.SkQPRunner#gles_xfermodes2 SkQP cts
will fail across our host Vulkan implementations: mali, anv, radv, tu.
Btw, radv has been lucky due to the existing isAMD condition satisfied.
Bug: b/274528004
Change-Id: I39debe4e58d8afff0671809ac19cf9be8637f73e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4413212
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Auto-Submit: Yiwei Zhang <zzyiwei@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
f0848fc5
|
2023-04-11T10:17:48
|
|
Move targetSdkVersion to Android.bp and set to system_current
Also adds android:exported="true" which is required for newer SDKs.
Bug: b/275459680
Change-Id: I8ae5b67c1d3ccca867139fc1d9043308e03ffb6c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4414227
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Auto-Submit: Roman Lavrov <romanl@google.com>
|
|
23ec0620
|
2023-03-23T09:51:53
|
|
Vulkan: Add more data to blob cache header
This is to potentially increase blob cache robustness against
collisions and partially modified data. This CL adds 7 bytes
per chunk (8 bytes in total). During decompression, the data
will be checked in order to determine if the cache data can
be used.
* Added chunk index to the header. (1 byte)
* Added CRC16 of the compressed data to the header. (2 bytes)
* Added the original (uncompressed) data size to the header. (4 bytes)
* Moved kBlobHeaderSize to the anonymous namespace.
* Added the following GN flag to enable CRC calculation for the cache.
* angle_enable_crc_for_pipeline_cache (only available in debug mode)
* Corresponds to kEnableCRCForPipelineCache.
* When it is false, the CRC is set to 0.
Bug: b/246683126
Change-Id: I9aaf9cda52e0af07a2e1c2d0c39aca407e515701
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4378717
Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
cfc21f23
|
2023-04-06T18:39:26
|
|
Fix GetCurrentThreadUniqueId on Release APPLE
Fix GetCurrentThreadUniqueId on Release builds of
ANGLE_PLATFORM_APPLE.
Code inside ASSERT() is discarded when compiling on Release.
Instead, create the pthread per-thread keys outside ASSERTs and
just assert the results.
Bug: angleproject:8122
Change-Id: I89b7bd66f4346a94ec5c67eedda637f012ba7ff6
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4406215
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Auto-Submit: Kimmo Kinnunen <kkinnunen@apple.com>
Reviewed-by: Dan Glastonbury <djg@apple.com>
Commit-Queue: Kenneth Russell <kbr@chromium.org>
|
|
79a2f7e4
|
2023-04-06T10:42:19
|
|
EAGL: Remove the impl preprocessor guards
Adhere to the project formatting:
- Remove #if preprocessor guards from the EAGL implementation.
- Order the includes as in style guide
- Use include / import consistently
- Move GLES_SILENCE_DEPRECIATION into .gn, similar to CGL
- Remove or add platform.h include based on whether the file
itself actually the platform.h defined macros
Simplifies the nested preprocessor macros. Makes it simpler
to further fix the preprocessor use.
WebKit should instead have a non-ANGLE .mm file #importing
the implementations with the proper include guards.
Bug: angleproject:8121
Change-Id: I775bedd048fe3382f873abffb693f130f6104c5c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4404158
Auto-Submit: Kimmo Kinnunen <kkinnunen@apple.com>
Commit-Queue: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Dan Glastonbury <djg@apple.com>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
|
|
36296928
|
2023-03-31T16:44:35
|
|
Mark RGBX and BGRX formats as having 8 unused bits.
This makes sure that pixelBytes ends up being 4 and fixes potential
buffer size validation.
Fix EGL configs using pixelBytes to compute EGL_BUFFER_SIZE which
is not supposed to include unused bits. This is covered by
dEQP-EGL.functional.query_config.constraints.color_buffer_size
Bug: chromium:1404790
Change-Id: I47a6e825f3b47501fd0984c21554c394fef32eb6
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4390022
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
be3d7e6b
|
2023-03-30T14:35:18
|
|
Remove redundant g_SurfaceMutex.
This mutex become redundant after recent CL:
https://chromium.googlesource.com/angle/angle/+/23ad4fa2be35aed303cbb8c2d632a04714354ef0
Don't hold global surface lock during AcquireNextImage
Every place in the code where `ANGLE_SCOPED_GLOBAL_SURFACE_LOCK()`
is used also uses `ANGLE_SCOPED_GLOBAL_LOCK()`.
Bug: angleproject:6851
Change-Id: I464b6ca74743c9ee9fa23caad216f0e26c480655
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4385293
Commit-Queue: Igor Nazarov <i.nazarov@samsung.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
|
|
1e9182a5
|
2023-04-05T12:54:30
|
|
Disable staged uploads to packed texture formats on AMD.
The same formats are having upload failures on AMD drivers.
Bug: chromium:1430857
Change-Id: I8364d5646ff6811db09710ac27d2ac0f6dfdc116
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4401891
Reviewed-by: Austin Eng <enga@chromium.org>
Commit-Queue: Geoff Lang <geofflang@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>
|
|
9a2ef389
|
2023-04-04T14:57:09
|
|
Vulkan: Minor protected submitCommands() optimization.
Bug: angleproject:3965
Change-Id: I52a7597f1dd3bdaf4a221c6b6338caa1577c08f9
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4392876
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Igor Nazarov <i.nazarov@samsung.com>
|
|
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>
|
|
8b79410b
|
2023-04-02T22:25:12
|
|
Vulkan: Treat readonly SSBOs as readonly!
Instead of assuming SSBOs are always written to, this change adds
plumbing for the backend to know when an SSBO is declared readonly and
marks the buffer readonly accordingly.
With this change, BufferVk can optimize uploads and copies to and from
the buffer with the knowledge that it can be safely mapped on the CPU
for read while it's being used by the GPU.
Bug: b/276002151
Change-Id: I75342148c07949a83436054a738395bbd88caec5
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4392720
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@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>
|
|
b49f9520
|
2023-04-03T18:11:04
|
|
Trace Interpreter: Improve ReadFileToString performance.
Shaves off ~1s (~15%) from ~7.5s parse time on Panther for
minecraft_bedrock trace.
Switches the stream to std::ios::binary so on Windows
the caller will need to handle \r\n
Bug: b/276742336
Change-Id: I0c14e76168763875da60a0fdefb879859b0b3d0c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4392894
Commit-Queue: Roman Lavrov <romanl@google.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
b30c05de
|
2023-04-04T09:36:28
|
|
Trace Interpreter: Add #include <algorithm>
ANGLE-Dawn roll failed with:
error: no member named 'lower_bound' in namespace 'std'
Bug: b/276742336
Change-Id: Ife3d83aaa2b9f29f3750e880a12dfccf3f8fe915
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4391765
Auto-Submit: Roman Lavrov <romanl@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
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>
|
|
3aea3cfd
|
2023-04-03T16:38:29
|
|
Vulkan: Workaround depth bias constant factor on ANV
Bug: b/249380591
Change-Id: Iaeda7faf5eb40e0e2086674d3e63bf5bc9911ab4
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4392893
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org>
Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
c723d71f
|
2023-04-03T16:17:01
|
|
Trace Interpreter: Improve StringToGLenum performance.
Binary search instead of linear.
This gets called a lot when parsing traces to be run by the trace
interpreter. I saw ~37 seconds parse time on Panther for
minecraft_bedrock trace, this CL makes that ~5 times faster.
Bug: b/276742336
Change-Id: Ide32c247b327f36c00f26951a90e4412d71db2b6
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4392892
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Roman Lavrov <romanl@google.com>
|
|
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>
|
|
ec307af4
|
2023-03-30T14:17:52
|
|
Fix bug in DeallocateGlobalMutex().
Bug: angleproject:6851
Change-Id: Ie5dd32220a38a9b7a9a18ff830a4ee7b7c02b9c3
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4381863
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Igor Nazarov <i.nazarov@samsung.com>
Reviewed-by: Charlie Lao <cclao@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>
|
|
552d4271
|
2023-03-31T10:59:30
|
|
Vulkan: Refactor buffer init logic
Bug: b/276002151
Change-Id: I28d3fa34ab11340cc8b38743e87664a514870068
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4388547
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
|
|
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>
|
|
6458cd95
|
2023-03-30T14:27:07
|
|
[GL backend] Remove over-zealous ASSERT in StateManagerGL.cpp
StateManagerGL::bindVertexArray asserts that the passed-in
|vaoState| pointer is non-null; however, we actually pass in null
directly in [1]. This assert goes off when running a WebView test
with ANGLE.
[1] https://source.chromium.org/chromium/chromium/src/+/main:third_party/angle/src/libANGLE/renderer/gl/StateManagerGL.cpp;l=3385;drc=48340c1e35efad5fb0253025dcc36b3a9573e258;bpv=1;bpt=1
Bug: chromium:1168587
Change-Id: I14d5f9f317f3cbe2a828ab7637edc5f1911bf81c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4381861
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
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>
|
|
5fcd027e
|
2023-03-29T08:54:34
|
|
Fix the watchOS build for the mirror clamp to edge extension
The mirror clamp to edge extension relies on
MTLSamplerAddressModeMirrorClampToEdge, which is not available
on watchOS. Disable the extension there for the moment.
Bug: angleproject:8103
Change-Id: I52b9d5217b39080cde6663e0d0fa839e53dacecf
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4379037
Reviewed-by: Kenneth Russell <kbr@chromium.org>
|
|
20f3df07
|
2023-03-30T11:36:29
|
|
Vulkan: ImageHelper::initExternal missing some variable init
When ImageHelper::releaseImage is called and then re-initialized (due to
mipmap change or usage change etc), right now we have a bug that
mCurrentShaderReadStageMask and mLastNonShaderReadOnlyLayout are still
left as is. And they do not get reset when image is initialized. This
means if the image was reinitialized again, it may end up think the new
image was previously used by fragment shader and insert an unnecessary
barrier when new VkImage is used. This was discovered when I do the
experimental work try to ghost VkImage for glTexSubImage call and
realized that new VkImage was having a strong fragment->vertex
dependency which it should not (since this is a new VkImage). This CL
initialize mCurrentShaderReadStageMask and mLastNonShaderReadOnlyLayout
and mCurrentQueueFamilyIndex from initExternal call since it is a new
vkImage.
Bug: b/273808966
Change-Id: I5bbeae5f1012f10c24620cfae8fa20365a7b5ab7
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4386136
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@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>
|
|
3c8aee63
|
2023-03-27T13:24:47
|
|
D3D11: Fix streamed instanced attribute size calculation.
D3D11 passes around a 0 instance count to signify "not an instanced
draw call". This had an incorrect interaction with
ComputeVertexBindingElementCount which checks for an instance count
of 0 and skips instancing calculations.
Force instance count to be at least 1 when computing buffer size
needed.
Bug: chromium:1425606
Change-Id: Ia10fa1c11abebce28c57ce4527e2b748e51516ce
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4375138
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
|
|
48b431ca
|
2023-03-21T16:39:33
|
|
Vulkan: Fix stage component reservations w.r.t xfb
Input components limit don't need to reserve any components.
This change also fixes a bug where the tessellation evaluation output
components didn't reserve a slot for gl_Position.
Additionally, the input component count of stages are clamped by the
output component count of the previous stages.
Bug: b/274289482
Change-Id: Ib5b4243d7a4cb713ccea505a5f0064bf3377caa8
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4356115
Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org>
|
|
31321cb3
|
2023-03-28T09:57:48
|
|
Tests: Add Minecraft Bedrock trace
This CL adds a new Minecraft trace. The app has changed engines since
our first trace, updating to the Bedrock engine.
Also, our first trace was recorded on Qualcomm, and the trace does not
behave correctly on ARM.
This also bumps the original minecraft version, but the content is
unchanged.
Test: angle_trace_tests --gtest_filter="*minecraft_bedrock*"
Bug: b/183647942
Bug: b/197965659
Change-Id: Id65889c65df8a6a3a1560ccbe4fce239982d98de
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4376790
Reviewed-by: Roman Lavrov <romanl@google.com>
|
|
29abd5a2
|
2023-03-06T11:35:45
|
|
Explicitly Add Aliased Memory Decoration in SpirV
In GLSL, aliased memory qualifier is implicitly available,
unless we explicitly specify the memory is restrict:
https://www.khronos.org/opengl/wiki/Type_Qualifier_(GLSL)#Memory_qualifiers.
However, in SpirV, aliased memory qualifier has to be
explicitly specified:
https://registry.khronos.org/SPIR-V/specs/unified1/SPIRV.html#AliasingSection
This change adds the aliased memory decorations to SSBO
if the GLSL does not specify the restrict memory qualifier.
This is a temporary workaround to fix the deqp test failures
on some android devices. Eventually we would like to waive this
test for ANGLE due to alised memory in Vulkan does not suppose
to affect SSBOs that have different set/binding, please refer
to this Khronos ticket for more details:
https://gitlab.khronos.org/Tracker/vk-gl-cts/-/issues/4321
Bug: b/266235549
Change-Id: Ic7afc417a5d421664b60e0413a011314787e14e7
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4312130
Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
bb15ceef
|
2023-03-27T11:32:30
|
|
Remove syncing of extended dirty bits for TexImage calls.
All extended dirty bits were synced for glTexImage calls but many of
them required valid GL state or a complete framebuffer. This caused
errors in the Vulkan backend when we would read and write out of
bounds of the framebuffer due to an incorrect render area.
Bug: chromium:1410191
Change-Id: I17f156f71ded72761b631ef9842b048a9173c9b7
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4374102
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
14ddf569
|
2023-03-29T10:00:47
|
|
Tests: Add fishdom trace
Test: angle_trace_tests --gtest_filter="*fishdom*"
Bug: b/275532615
Change-Id: I2c5668db7f9ae9f1cdf87887640fc2faf0758d6d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4374161
Reviewed-by: Cody Northrop <cnorthrop@google.com>
|
|
4afbbe85
|
2023-03-28T09:08:31
|
|
Tests: Add Vainglory trace
Test: angle_trace_tests --gtest_filter=TraceTest.vainglory
Bug: b/275526619
Change-Id: Ie06afa408d61935c7ab8d4f4f15f38e10b38821a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4376791
Reviewed-by: Cody Northrop <cnorthrop@google.com>
|
|
fe45418c
|
2023-03-28T11:43:23
|
|
Translator: Limit the size of private variables in WebGL shaders
As a follow up to
https://chromium-review.googlesource.com/c/angle/angle/+/3023033, the
limit to shader-private variables (locals and globals) is further
reduced to 1MB. A variable that large will not fit in GPU registers and
will spill to memory, killing performance.
Bug: chromium:1427865
Change-Id: I77314d4b891c591cd9a83ad2aebb77d7256f3ada
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4377639
Reviewed-by: Kenneth Russell <kbr@chromium.org>
|
|
97897d92
|
2023-03-27T16:02:57
|
|
Vulkan: Work around driver bug with dynamic primitive restart
This CL forces the state to be static on buggy drivers.
Bug: b/275210062
Change-Id: Ia3391ecb19c3c9d19c05a83e11da8c718513a4e2
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4374104
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@google.com>
|
|
8b81a3d2
|
2023-03-27T10:03:34
|
|
GLES1: Use ASCII minus in comment
Bug: angleproject:7933
Change-Id: I05fb4512594447ff02078f1845c1ceb74c1b27ce
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4374097
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
6d12a280
|
2023-03-24T00:00:00
|
|
D3D11: Support NV_shader_noperspective_interpolation
Fixed: angleproject:8096
Change-Id: Ic7c27c735661b2ef8095c81201b2ce0a82ad3ae7
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4368472
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
da7dd31f
|
2023-03-27T11:29:10
|
|
GL: Disable extended dirty bit states for internal blits.
New GL states have been added to the GL backend and not updated in
ScopedGLState which is used to reset internal state for blits. This
caused test failures when tests were run in specific orders. Ex:
ClipDistanceTest.ThreeClipDistancesRedeclared/ES2_OpenGL:CopyTextureVariationsTest.CopySubTexture/ES2_OpenGL__AToBGRAFlipYUnmultiplyAlpha
Bug: angleproject:5160
Bug: chromium:1410191
Change-Id: I805e39bc8c4c7d7d843b43fdc7813dd668919e8a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4374101
Reviewed-by: Peng Huang <penghuang@chromium.org>
|
|
21ffb23a
|
2023-03-27T00:00:00
|
|
Add sample coverage regression tests
* SimpleOperationTest.DrawSingleSampleWithCoverage
* SimpleOperationTest.DrawSingleMultiSampleWithCoverage
Bug: angleproject:8102
Change-Id: Iedc520a2c7d21912c3969ceaf3a8f1ef2ed7eae0
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4379837
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
57dd0e5f
|
2023-03-27T13:05:36
|
|
Translator: Initialize out arguments too for WebGL
Local variables were initialized for WebGL, but not `out` arguments.
However, `out` arguments completely overwrite the passed-in variable at
call site, so they should also be zeroed out.
Bug: chromium:1425685
Change-Id: Ib2f61a962eea74c4933aafa4d5ad377189cec578
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4375137
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
fcf0ddeb
|
2023-03-27T15:27:29
|
|
Vulkan: Add more blitFramebuffer test
UtilsVk::blitResolveImpl() implementation will set up customized program
and scissor rect to implement blit. In other CL we may reuse the
render pass that started by blit. This CL adds more test to ensure that
continiued draw without any state change will continue work properly
(i.e, the state destroyed by blit gets restored properly for the follow
up draw calls issued by application).
Bug: b/273808966
Change-Id: I164803512b334ca467ca08ea3b008b153fac334d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4375099
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Charlie Lao <cclao@google.com>
|
|
c6ec59dc
|
2023-03-27T11:15:48
|
|
Explicitly pass the extended dirty bits to syncState.
Add a the extended dirty bits and bit mask to syncState instead of
calling gl::State::getAndResetExtendedDirtyBits when encountering
DIRTY_BIT_EXTENDED. It disallowed us from masking the extended dirty
bits and feels like an anti-pattern to modify the extended dirty bits
in gl::State from the backend.
This is a refactor only.
Bug: chromium:1410191
Change-Id: I66fdec3eb57e3426cf0fda9ccb759700eafdda14
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4374100
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
|
|
fc7cb00e
|
2023-03-24T00:00:00
|
|
Metal: Support NV_shader_noperspective_interpolation
Fixed: angleproject:8095
Change-Id: Ieded1f704f82963984f1aee5072f152de0de374c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4368473
Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
1ee27fcd
|
2023-03-24T00:00:00
|
|
Fix translation of noperspective interpolation qualifier
Auxiliary storage qualifiers used with 'noperspective'
interpolation must be retained during ESSL translation
* Added new qualifiers:
* EvqNoPerspectiveCentroid
* EvqNoPerspectiveCentroidIn
* EvqNoPerspectiveCentroidOut
* EvqNoPerspectiveSample
* EvqNoPerspectiveSampleIn
* EvqNoPerspectiveSampleOut
* Adjusted GLSL and SPIR-V output
* Adjusted 'sample' rank to be the same as 'centroid'
Fixed: angleproject:4388
Change-Id: Iffc80a7a3b057beffd3bcbbc9446eeed77183c99
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4368471
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
|
|
fbb16d64
|
2023-03-24T02:23:19
|
|
Mali: Disable disjointTimerQueries on ChromeOS with MaliT8xxOrOlder
ChromeOS boards using MT8183 are encountering GL_OUT_OF_MEMORY errors
when using disjointTimerQueries, which leads to meets visual effects
freezing after a couple of seconds.
Extend the workaround treatment to ChromeOS.
Bug: chromium:1356053,b/269068358
Change-Id: I212f2b4a2fed1ddd8e8344bde4f4ca9069ea3393
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4369684
Commit-Queue: Kramer Ge <fangzhoug@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Auto-Submit: Kramer Ge <fangzhoug@chromium.org>
|
|
abbbe970
|
2023-03-24T08:10:40
|
|
[GL backend] Get texture bindings size from frontend caps
EGLContext currently sets the texture bindings size to be
GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS. StateManagerGL later copies
these bindings into its own textures array [1]. However, the latter
texture array is clamped to a size of max 96 [2], and thus this copy
can overflow (see crash in crbug.com/1418842).
This CL changes the texture bindings size to be set from the frontend
caps rather than the native caps. The former have the same clamping
as for StateManagerGL's textures.
[1] https://source.chromium.org/chromium/chromium/src/+/main:third_party/angle/src/libANGLE/renderer/gl/StateManagerGL.cpp;drc=c85c710dec58dfdcf2f35af647a0a5155639edd5;l=3274
[2] https://source.chromium.org/chromium/chromium/src/+/main:third_party/angle/src/libANGLE/angletypes.h;drc=4a77b0f5237515960673b9bd1bc5a229f0eeaa95;l=952
[3] https://source.chromium.org/chromium/chromium/src/+/main:third_party/angle/src/libANGLE/Context.cpp;l=4050-4059;drc=b4bc946c63b2b95e1f05dec4e84adcadd10499c6
Bug: chromium:1418842
Change-Id: I66c10b640f70d9dc6c7d41925f12ffb7a3ba78e0
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4369699
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
d8c9ba9a
|
2023-03-27T00:00:00
|
|
Avoid defaulted comparison operator
Not available until C++20.
Bug: angleproject:8046
Change-Id: I6f4093b0bdccca55818109836e2e0d68f66897b9
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4373861
Reviewed-by: Brian Osman <brianosman@google.com>
Auto-Submit: Alexey Knyazev <lexa.knyazev@gmail.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
afc1e5dc
|
2023-03-27T00:00:00
|
|
GL: Support OES_sample_variables
Bug: angleproject:8097
Change-Id: I983d6e83fe9ca942c91cbdf7274b46306e38f11f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4368476
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
|
|
1301402c
|
2023-03-23T21:56:45
|
|
Vulkan: improve etc to bc grident texture precison.
ETC has gradient modes. Two endpoints in BC are RGB565;
the color depth is lower than ETC. Two endpoints in
RGB888 space may be quite different, but after conversion to
RGB565 they may be projected to the same point.
This conversion loses quite a lot of details.
This change tries to change one endpoint to an adjacent one
(not optimal) in RGB565, so that all the colors are interpolated
from these two endpoints. With this change,
the arknight image in b/259327729 improved PSNR from 39 to 49.
This change includes some of work by @gregschlom
1) Use look up table instead of bit operation.
2) Use more vector operations. This may not improve the performance
but makes the code short and neat.
bug: b/259327729
Change-Id: Ic0720aff17af5d466e5598dc38ba953dc084a3cc
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4368021
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Hailin Zhang <hailinzhang@google.com>
|
|
249b03ac
|
2023-03-24T15:11:10
|
|
restricted_trace_perf: Delete settings when using default
Follow up to the addition of `--renderer default`, actively
delete the settings if default is chosen. Otherwise the script
will just use whatever settings you already have.
Test: restricted_trace_perf.py
Bug: b/269645211
Change-Id: I83be7e3f7fa2f2a2bc9f9d243820b49a3cdbed82
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4368874
Commit-Queue: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
|
|
435e557c
|
2023-03-22T21:35:09
|
|
Vulkan: Do not enforce custom ANGLEs secondary command buffers.
This change become possible after the commit:
Vulkan: Fix Secondary Command Buffers with asyncCommandQueue.
After the above change, `attach/detachAllocatorImpl<>()` will be
skipped when using Vulkan secondary command buffers. Other places that
use `mCommandAllocator` already no-op regardless of the allocator type.
Therefore enforcing:
ANGLE_USE_CUSTOM_VULKAN_OUTSIDE_RENDER_PASS_CMD_BUFFERS
ANGLE_USE_CUSTOM_VULKAN_RENDER_PASS_CMD_BUFFERS
when enabling `angle_enable_vulkan_shared_ring_buffer_cmd_alloc` is no
longer required. This will remove possible confusion when configuring
ANGLE build and allow mixing Vulkan secondary command buffers and
ANGLEs custom secondary buffers that use `shared_ring_buffer_cmd_alloc`.
Bug: angleproject:6401
Bug: b/256666069
Change-Id: I52a64065e6ce9e4aabbf76031c3f5443e0e26a3a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4360071
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Igor Nazarov <i.nazarov@samsung.com>
Reviewed-by: Charlie Lao <cclao@google.com>
|
|
aa8f2e4b
|
2023-03-22T19:53:04
|
|
Vulkan: Minor SecondaryCommandPool::destroy() optimization.
Follow up for the commit:
9b6368ccfceddf1784ef41e95e57696453cca71d
Vulkan: Fix freeing Secondary Command Buffers from wrong thread.
Bug: angleproject:6100
Change-Id: I8ef34898941c0c5684d3ea4378332cdf6b87c0c8
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4359703
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Igor Nazarov <i.nazarov@samsung.com>
Reviewed-by: Charlie Lao <cclao@google.com>
|
|
85735eb4
|
2023-03-17T19:56:23
|
|
Vulkan: Enable async features for Secondary Command Buffers.
Since, all known problems with Secondary Command Buffers and async
features are fixed, it should be safe to allow enabling these features
for testing.
Locally, this CL passes custom build dEQP tests (EGL/GLES2/3/3.1) with
asyncCommandQueue and Vulkan Secondary Command buffers enabled.
Tests were executed on S906B that uses ANGLE as the system GLES driver.
Bug: angleproject:6811
Bug: angleproject:6100
Change-Id: Id3ef6df56f0a3bd1986f2e6047f01e6eac165fc6
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4350270
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Igor Nazarov <i.nazarov@samsung.com>
|
|
2bd8acfe
|
2023-03-23T18:24:43
|
|
Tests: Add Geometry Dash trace
Test: angle_trace_tests --gtest_filter="*geometry_dash*"
Bug: b/271876646
Change-Id: I18ab2f22230f0c63d3aaf7c825c9cc55d896d4d0
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4368019
Commit-Queue: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Roman Lavrov <romanl@google.com>
|
|
e27e7c6a
|
2023-03-17T19:43:54
|
|
Vulkan: Retire Command Buffers before destroying the Pools.
"VulkanSecondaryCommandBuffer"s may be still in "CommandQueue" when
"ContextVk" destroys the Command Pools (asyncCommandBufferReset = true).
Fixed by calling "retireFinishedCommandsLocked()" when appropriate.
Normally, it is only required to retire Vulkan Secondary Buffers.
However, some drivers may have bug and also require to reset
Primary Buffers, that have Secondaries recorded, before destroying the
Secondaries Pools.
Bug: angleproject:6811
Bug: angleproject:6100
Change-Id: I891547c95cfbdfab44398980f939596af56ab57b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4350269
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Igor Nazarov <i.nazarov@samsung.com>
Reviewed-by: Charlie Lao <cclao@google.com>
|
|
9524c639
|
2023-01-17T18:47:47
|
|
Vulkan: Fix Secondary Command Buffers with asyncCommandQueue.
This change fixes following errors (asyncCommandQueue = true):
1. "vkEndCommandBuffer()" called from "asyncCommandQueue" thread.
Call stack:
vkEndCommandBuffer()
VulkanSecondaryCommandBuffer::end()
OutsideRenderPassCommandBufferHelper::flushToPrimary()
CommandQueue::flushOutsideRPCommands()
CommandProcessor::processTask()
Fixed by calling "vkEndCommandBuffer()" from the Context thread
in the new "OutsideRenderPassCommandBufferHelper::detachCommandPool()"
method.
2. "vkAllocateCommandBuffers()/vkBeginCommandBuffer()" called from
"asyncCommandQueue" thread.
Call stack:
vkAllocateCommandBuffers()/vkBeginCommandBuffer()
VulkanSecondaryCommandBuffer::initialize()
<*>CommandBufferHelper::initializeCommandBuffer()
<*>CommandBufferHelper::reset()
<*>CommandBufferHelper::flushToPrimary()
CommandQueue::flush<*>Commands()
CommandProcessor::processTask()
Fixed by calling "vkAllocateCommandBuffers()/vkBeginCommandBuffer()"
from the Context thread in the new
"<*>CommandBufferHelper::attachCommandPool()" method.
3. "SecondaryCommandPool::collect()" called from "asyncCommandQueue"
thread without synchronization.
Call stack:
SecondaryCommandPool::collect()
rx::vk::RecycleCommandBufferHelper()
CommandBufferRecycler<>::recycleCommandBufferHelper)
RendererVk::recycle<*>CommandBufferHelper()
CommandProcessor::processTask()
No need for this call, because "SecondaryCommandPool" is already
detached.
Notes:
This CL not only fixes errors, but also optimizes CommandBufferHelper
recycling. Before, there was no recycling plus unnecessary
"VulkanSecondaryCommandBuffer" allocation/freeing.
Further optimization may add multiple "VkCommandPool"s to the
"SecondaryCommandPool" to allow resetting buffers in the async thread.
Bug: angleproject:6811
Bug: angleproject:6100
Change-Id: I7004c27a112e916c5c973b43b137193017d6aa3d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4342189
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Igor Nazarov <i.nazarov@samsung.com>
|
|
dae99340
|
2023-03-23T14:36:28
|
|
Remove uninited pixel check from TexStorageWithPBO
Towards the end of the test "TexStorageWithPBO" from Texture2DTest, the
color of the pixel outside the red square is checked to confirm that it
is black. However, due to that part being uninitialized in the test,
its color could be left over from a prior test, causing a failure.
* Removed the pixel check for outside the square.
* Updated the color check for the square to cover its whole area.
Bug: angleproject:4126
Bug: angleproject:5081
Bug: angleproject:5097
Bug: angleproject:5651
Bug: angleproject:8093
Change-Id: I3ceb8cf30456f51a60630f9e258210a8ccae0d95
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4367898
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
f2c5ce4e
|
2023-03-16T17:44:56
|
|
Re-enable mutable texture upload for one context
It was observed that in some apps, mutable textures are uploaded in a
context, but that context's outside RP command buffer is not flushed
at all, resulting in invalid (noise) or incorrect textures.
* Added isEligibleForMutableTextureFlush() to be used to determine
whether onMutableTextureUpload() should be called.
* Restricted the use of mutable texture upload to single-context
share groups.
* When the number of contexts becomes greater than one, the original
context's outside render pass command buffer is flushed.
* Added related tests.
* Added a test to make sure that textures can be uploaded in one
thread, and used for draw calls in another, with the help of a
sync object.
* Added a test to make sure that textures can be uploaded in the
main thread, and used in a new thread.
* Added a test in which a new context is created after mutable
mipmap textures are defined.
Bug: b/264143971
Change-Id: I66c0d8b04d39bb7244e5752aac0e46a0192f012e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4349156
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
997c4c7b
|
2023-03-21T00:00:00
|
|
D3D11: Implement EXT_conservative_depth
Drive-by:
* Hid the extension from ES 2.0 client contexts.
Bug: angleproject:8046
Change-Id: I8bca4161dde4bda7ee75541b9164777884900d89
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4366784
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
|
|
648f3657
|
2023-03-21T00:00:00
|
|
Metal: Implement EXT_conservative_depth
Bug: angleproject:8046
Change-Id: I3b9f497da19bf005c7948e552f2e1c7415d4ac6d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4363020
Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
Reviewed-by: Kyle Piddington <kpiddington@apple.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
34a06e25
|
2023-03-15T18:46:55
|
|
Start MacBook Pro AMD 2019 experiment on ANGLE bots
Suppress failing tests
Bug: chromium:1382149, angleproject:8091
Change-Id: I817d3db8badc35a12ecc9650750ca9190c617f6c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4341695
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Auto-Submit: Yuly Novikov <ynovikov@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
0e502f8c
|
2023-03-20T20:34:28
|
|
Vulkan: Update SharedCommandBlockPool::valid() method.
Current logic returns `valid()` result whether `mAllocator` is
attached or not. However this is not correct, because it is allowed
to use some method even after allocator is detached.
Since this class does not require initialization - it is always valid.
Bug: angleproject:6401
Bug: b/256666069
Change-Id: I57f899ae7718762b7e2b68e9c3d1e04dccb2c351
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4355391
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Igor Nazarov <i.nazarov@samsung.com>
|
|
74edb4b4
|
2023-03-22T18:38:38
|
|
Skip PixelLocalStorageTest.Interrupt on iOS Metal
Bug: angleproject:7994, chromium:1421437
Change-Id: Ib6a8b316212510f73f56ef9e56c8d2da2fe07cfc
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4359704
Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Auto-Submit: Yuly Novikov <ynovikov@chromium.org>
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
|
|
888ca8d9
|
2023-03-21T18:56:56
|
|
Bind FBO before timer query on Mali GL driver.
glBeginQuery(GL_TIME_ELAPSED/GL_TIMESTAMP) on Mali implementation
assumes a complete FrameBuffer. Without it glGetQueryObject will return
a meaningless value, causing some applications to misbehave.
This workaround caches and binds a default FBO in this case.
Bug: chromium:1356053,b/269068358
Change-Id: I756ded948c2c5aada744f9dd428ad77c37a009c6
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4359032
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Kramer Ge <fangzhoug@chromium.org>
|
|
ad52f12e
|
2023-03-21T00:00:00
|
|
Implement EXT_conservative_depth
Added translator frontend and GLSL backend
support for gl_FragDepth redeclaration and
layout qualifiers.
Added mappings to DepthGreater, DepthLess,
and DepthUnchanged SPIR-V execution modes.
Bug: angleproject:8046
Change-Id: I23f19ff54380741107970a44055ea269eef179f6
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4355028
Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
a621ea88
|
2023-03-17T10:21:56
|
|
Adding a trace point for texture metrics.
Bug: b/236121838
Change-Id: I28e7977f7b5dc6e24cb5a2be10689c223851ba0b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4348737
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Doug Horn <doughorn@google.com>
Reviewed-by: Charlie Lao <cclao@google.com>
|
|
ec9595f1
|
2023-03-21T10:02:00
|
|
restricted_trace_perf: Run against default driver
On newer Android versions where ANGLE can be the default driver,
selecting "native" as the driver will always seek out the system
driver instead of the default driver.
To allow the platform to select the GLES driver, add a "default"
mode that does not use any Android settings for driver selection.
To use, pass `--renderer default`
Test: restricted_trace_perf.py
Bug: b/269645211
Change-Id: Ie9bf64eaa823d9d54301472c1d4e48bf2f5482cd
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4358331
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Auto-Submit: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
|
|
a491bbe3
|
2023-03-18T19:05:08
|
|
Add PLS utilities for interrupting a rendering pass
Adds two more simple commands to ANGLE_shader_pixel_local_storage that
allow WebGL and the command buffer to interrupt rendering passes without
having to either (1) make expensive queries, or (2) track lots of
complex state for validation that they are not currently equipped to
track.
Bug: chromium:1421437
Change-Id: I80eaef3ae6b0b4bbbecb9cd2268ac90b43675d1c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4355032
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Kenneth Russell <kbr@chromium.org>
|
|
23ad4fa2
|
2023-03-10T11:56:00
|
|
Don't hold global surface lock during AcquireNextImage
On Android, the global surface lock must be released before calls
to vkAcquireNextImageKHR, though GetSurfaceIfValid must remain
inside the surface lock.
Bug: b/268091451
Test: Mini-game puzzles in 'Fishdom' app, available in play store
Change-Id: Ia9c96de52a367b4537a42cee83e2372322fbdfbc
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4316610
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Mark Łobodziński <mark@lunarg.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: mohan maiya <m.maiya@samsung.com>
|
|
ba845fcf
|
2023-03-20T00:00:00
|
|
Metal: Implement EXT_clip_control
* Skipped vertex shader depth correction when
clip depth mode is set to GL_ZERO_TO_ONE.
* Adjusted front face mode and pre-fragment
vertical flip driver uniform based on the
clip origin state.
* Added more clip control end2end tests.
* D3D11: Fixed scissored draws
with upper-left clip origin.
Fixed: angleproject:8065
Change-Id: Ife82fa2ad39fad463c23ec10b49bff409272ebf2
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4356661
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
Reviewed-by: Kyle Piddington <kpiddington@apple.com>
|
|
1e6dd013
|
2023-03-21T00:00:00
|
|
Metal: Support centroid qualifier
Fixed: angleproject:8090
Change-Id: I3137599e976bc469709347f423b7e8b71e6ed9f7
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4356667
Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Kyle Piddington <kpiddington@apple.com>
|
|
53d1a179
|
2023-03-20T17:17:59
|
|
Makes ToposortStructs() return consistent results
This patch introduces a step in ToposortStructs() that
sorts the nodes by name. Doing this ensures consistent
results between calls. Without this, the order depends
upon the pointer value, which varies depending upon when
called.
Ensuring consistent results for the same input is important
for other parts of this code that use the string as key.
Bug: chromium:1423136
Change-Id: I19f053df5cf86c81b800056e86b742d8c34af7d4
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4357255
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Scott Violet <sky@chromium.org>
|
|
f5695244
|
2023-03-21T00:00:00
|
|
Fix sample qualifier validation
* `smooth sample` is the same as `sample`
* `flat sample` is the same as `flat`
Bug: angleproject:3589
Change-Id: I8615fa73f4b0cea729b8e09d86f1b8183669de2b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4356666
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
0cb6697a
|
2023-03-09T10:35:04
|
|
Capture/restricted_traces: update documentation
With the new context handling the trace files are named differently, and
the description how to remove secondary contexts also is out of date.
Bug: None
Change-Id: Ia8258502ef53f9d90b742eff01f8125d816ca74e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4323658
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Gert Wollny <gert.wollny@collabora.com>
|