|
50dec716
|
2023-03-17T11:39:15
|
|
Linux skips RegisterContextCompatibilityTests altogether.
It is already effectively disabled by skipping all configs but that
still makes egl* calls leading to sporadic process corruption due to
loading desktop drivers under xvfb.
Note that it currently fails to register tests on all platforms as
RegisterContextCompatibilityTests is called after TestSuite
instantiation which leads to tests not being registered at all.
+some cleanups
Bug: angleproject:8083
Change-Id: I075dc67b73d627548efb3f80186ec408481e2707
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4348334
Commit-Queue: Roman Lavrov <romanl@google.com>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
|
|
ca2378b7
|
2023-03-08T18:44:58
|
|
Assert that waitForStep steps go in increasing order.
This should make race conditions like the one in
https://crrev.com/c/4321809 much more obvious from the logs and catch
some of the issues when writing or updates tests.
The test that has to be updated here is an example why we probably don't
want to just replace `== step` with `>= step`
Bug: angleproject:8071
Change-Id: I2c740931046bb5a9115474b7d67f76e9a21c30a4
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4322049
Commit-Queue: Roman Lavrov <romanl@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
aa5b97de
|
2023-03-06T17:59:43
|
|
ANGLE_metal_shared_event_sync: Control signaling external events
It was assumed that the external MTLSharedEvent passed to eglCreateSync
should be signaled by the GL. This change adds
EGL_SYNC_METAL_SHARED_EVENT_SIGNALED_ANGLE, which when passed as the
value for EGL_SYNC_CONDITION during eglCreateSync, changes the behavior
to not insert a fence command into the command stream.
Test: angle_end2end_tests --gtest_filter=EGLSyncTestMetalSharedEvent.AngleMetalSharedEventSync_WaitSync_ExternallySignaled
Bug: angleproject:8064
Change-Id: Ia1b8615b976f293d411b7d2be506b0ac87d64dee
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4307152
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Sunny Sachanandani <sunnyps@chromium.org>
|
|
1365f5b3
|
2022-09-09T17:19:26
|
|
Vulkan: Fix Swapchain Acquire Image Semaphore wait stage flags.
There is a screen tearing on G996B with single
"glClear(GL_COLOR_BUFFER_BIT)" no scissor in the frame.
Fixed by defining "kSwapchainAcquireImageWaitStageFlags" and
adding "VK_PIPELINE_STAGE_TRANSFER_BIT" stage flag.
Also added "VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT" stage, because first
use of the Swapchain Image after Acquire may be in the
"glBlitFramebuffer()" command.
This fix may slightly affect performance. In such case, a better fix
should be implemented (include only stages based on the actual first
use). However, this may be not trivial.
Additionally, "kSwapchainAcquireImageWaitStageFlags" is used as a source
stage mask in the "ImageLayout::Present" pipeline barrier. This is
needed in order to build a dependency chain from the Acquire Image
Semaphore to the layout transition's first synchronization scope, so
that layout transition happens after acquire semaphore is signaled.
Reference:
https://github.com/KhronosGroup/Vulkan-Docs/wiki/Synchronization-Examples#combined-graphicspresent-queue
https://vulkan-tutorial.com/Drawing_a_triangle/Drawing/Rendering_and_presentation
Alternative fix of both issues is to define:
kSwapchainAcquireImageWaitStageFlags = VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT
This might potentially delay command buffer execution relative to the
Swapchain Acquire Image Semaphore signal operations, but will relax
the pipeline barrier.
Bug: angleproject:8030
Test: angle_end2end_tests --gtest_also_run_disabled_tests --gtest_filter=EGLSurfaceTest.DISABLED_RandomClearTearing*
Change-Id: I29f58862c4b369524b2555dd944e2fb67eebe956
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4271377
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Igor Nazarov <i.nazarov@samsung.com>
Reviewed-by: Charlie Lao <cclao@google.com>
|
|
8cac53cd
|
2023-01-17T19:22:57
|
|
Vulkan: Fix incorrect "SharedPresent" barrier.
Previous fix swapped top/bottom barriers:
629da7fc9cd4886dd87f07a069c259551e892936
Fix dEQP-EGL.functional.mutable_render_buffer#basic
Above fix is only partial, because it only includes execution dependency
without memory barriers (top/bottom stages has no memory access).
Fixed by forcing all possible stages for "SharedPresent" images.
Better solution requires creating specific versions
of "ImageLayout::SharedPresent".
Added new test that skips "glFlush()" before "glReadPixels()".
Performing flush executes present and may "fix" the barrier problem.
New test fails on "Samsung Galaxy S22+ S906B"
Bug: b/264420030
Test: angle_end2end_tests --gtest_filter="EGLSingleBufferTest.SharedPresentBarrier*"
Change-Id: Icbb50900d99e42d2e9482cd6109981bbc460348a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4262068
Commit-Queue: Igor Nazarov <i.nazarov@samsung.com>
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
ceb49b1c
|
2023-01-17T19:21:43
|
|
Vulkan: Fix crashes when Surface is not current.
It is possible to destroy Surface while some resources are still
in use (by CPU/GPU):
1. Make Surface current.
2. Draw something.
3. Make other Surface current (same Context).
4. (optional - if test Surface is Window Surface) Draw something.
5. Delete Surface.
6. UnMake the Context from current.
7. Different crashes possible depending on Surface type and what
is done in step 2.
Bug: angleproject:8017
Test: angle_end2end_tests --gtest_filter="EGLSurfaceTest.DestroyNotCurrent*Surface*"
Change-Id: I3102aa237075b301b3222b420415753c83ba192a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4227073
Commit-Queue: Igor Nazarov <i.nazarov@samsung.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
|
|
629da7fc
|
2023-01-26T12:25:04
|
|
Fix dEQP-EGL.functional.mutable_render_buffer#basic
These are vulkan commands submitted between
glClear() and glReadPixels() when the EGL_RENDER_BUFFER
is EGL_SINGLE_BUFFER (ImageLayour is SharedPresent):
```
vkCmdClearColorImage()
vkCmdPipelineBarrier: (
VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT,//srcStageMask
VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT,//dstStageMask
VK_ACCESS_MEMORY_WRITE_BIT,//srcAccessMask
VK_ACCESS_MEMORY_WRITE_BIT|VK_ACCESS_MEMORY_READ_BIT//dstAccessMask
)
vkCmdCopyImageToBuffer()
```
This means that operations at the bottom of pipeline
in vkCmdCopyImageToBuffer() need to wait for operations
at the top of pipeline in vmCmdClearColorImage(), which
translates to vkCmdCopyImageToBuffer() does not have
to wait for vkCmdClearColorImage() to finish.
Even the dstAccessMask ensures that
vkCmdCopyImageToBuffer() will invalidate cache before
copying image, it is possible that it will retrieve the
old Framebuffer color attachment data as the
vkCmdClearColorImage() has not finished.
This CL fixes the bug by making the srcStageMask to
be VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT and the
dstStageMask to be VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT,
when the ImageLayout is SharedPresent.
This ensures that vkCmdCopyImageToBuffer() waits for
vkCmdClearColorImage() to finish.
This CL also addresses similar issue in some other
rx::vk::ImageLayout items in kImageMemoryBarrierData.
Bug: b/264420030
Change-Id: If47ab071afaf96e396357cb0f50131339fa58509
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4198476
Commit-Queue: Yuxin Hu <yuxinhu@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
|
|
9e33b83a
|
2023-02-14T11:47:17
|
|
Vulkan: Fix bug in EGLMultiContextTest.ReuseUnterminatedDisplay
This test is not destroying the context properly, which leads to
eglTerminate(dpy) not actually destroying the RendererVk. When the next
test app runs, it calls RendererVk::initialize again and calls
volkLoadInstance(mInstance). Because the previous RendererVk object is
still there, and the two CommandQueue shares the same volk instance,
writing to volk function table causes tsan to complain that other thread
is still using the old function pointer that now gets overwritten.
The test really should clean up properly here in order to have other
test to continue to run.
Bug: angleproject:7602
Change-Id: I93cd2439194aba9f28ce478aaf79ae8b81c6426b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4249984
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Charlie Lao <cclao@google.com>
|
|
48b6ebad
|
2023-02-13T16:37:15
|
|
Test: Move code of EGLSurfaceTest::runWaitSemaphoreTest().
To improve readability, code moved from class body closer to the tests.
Bug: angleproject:7995
Change-Id: I2c0aef593b28cfffe2b04de308274d0007d863c5
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4245177
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
cad19f01
|
2022-02-01T17:36:03
|
|
Vulkan: Wait forever when waiting on fences
If a timeout occurs while waiting for the VK queue to be idle during
context destruction, there is no way to safely delete the resources
without potentially crashing as the driver is still reading them.
Instead, wait forever and let Chrome's watchdog tear the process down.
Bug: chromium:1223346
Change-Id: Ifa91465270f54b62a5ead88e8f26b3315072c380
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3430243
Reviewed-by: Zhenyao Mo <zmo@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
0d0e8c37
|
2023-02-08T17:33:39
|
|
Vulkan: Fix mutable render buffer with protected content.
Original implementation used Unprotected submission unconditionally.
In case of protected content/commands this may cause undefined
behavior.
New test works OK despite the bug.
VVL also did not show error, but should report:
VUID-VkSubmitInfo-pNext-04120
If the pNext chain of this structure does not include a
VkProtectedSubmitInfo structure with protectedSubmit set to VK_TRUE,
then each element of the pCommandBuffers array must be an
unprotected command buffer
Also from spec:
protectedSubmit specifies whether the batch is protected.
If protectedSubmit is VK_TRUE, the batch is protected.
If protectedSubmit is VK_FALSE, the batch is unprotected.
If the VkSubmitInfo::pNext chain does not include this structure,
the batch is unprotected.
It is a bug in VVL. It ignores check entirely if VkSubmitInfo::pNext
chain does not include VkProtectedSubmitInfo structure.
Bug: angleproject:3966
Test: angle_end2end_test --gtest_filter="EGLProtectedContentTest.ProtectedContextWithProtectedMutableRenderBufferWindowSurface*"
Change-Id: I0e0762e5fdfe19ce6c2184a36d057a95c2c79f00
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4232115
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
b6cc5754
|
2023-01-17T16:17:22
|
|
Vulkan: Fixed Wait Semaphores problems.
This feature fixes 2 problems.
1. Swapchain Image Acquire Semaphore added to wait list AFTER
rendering commands:
- Make Window Surface current.
- Clear Window Surface (Image is Acquired).
- Perform rendering to the Window Surface.
- Change to other Surface (for example: PbufferSurface) using
the same Context.
- Unmake Context from current to ensure commands are submitted.
- Rendering commands to the Window Surface will be submitted
without Acquire Semaphore.
2. Context from other thread may submit command of another Context
without proper Wait Semaphores:
- Make Window Surface current in the first context.
- Clear Window Surface (Image is Acquired).
- Perform rendering to the Window Surface.
- Call "glBeginQuery()/glEndQuery()" (or other commands) - this will
flush command to the Primary Command Buffer without submitting.
- In other Thread and Context make some Surface current
(for example: PbufferSurface).
- Clear that surface with scissor and unmake Context from current
to ensure commands are submitted.
- Rendering commands to the Window Surface from the first Context
will be submitted without Acquire Semaphore.
- Problem will happen even if add Wait Semaphore BEFORE writing
rendering commands.
Bug: angleproject:7995
Test: angle_end2end_tests --gtest_filter="EGLSurfaceTest.WaitSemaphoreAddedAfterCommands*"
Test: angle_end2end_tests --gtest_filter="EGLSurfaceTest.CommandsSubmittedWithoutWaitSemaphore*"
Change-Id: I28174ff98fdd09b4117962fc0810cfeeb2a4d1f1
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4194182
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
|
|
0ee67145
|
2023-02-06T18:08:26
|
|
Vulkan: Fix bug with ContextVk::mWaitSemaphores processing.
Regression:
2e5ca217ca134a7ae4e241e2f7e4cfa637305af7
Vulkan: Let each current context has its own QueueSerial.
Problem details:
- Call to finishImpl()/flushImpl() will skip mWaitSemaphores processing
when there are no pending commands.
- finishImpl() will call clearAllGarbage() that will clear
all mCurrentGarbage.
- However, some mWaitSemaphores may be in the mCurrentGarbage
(Semaphore created in SyncHelperNativeFence::serverWait()).
Bug: angleproject:8007
Test: angle_end2end_tests --gtest_filter="EGLSyncTest.AndroidNativeFence_VkSemaphoreDestroyBug*"
Change-Id: Ia51663eae739b505ca00437cea4ae71526dedbfb
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4225392
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Igor Nazarov <i.nazarov@samsung.com>
|
|
3e65d0b6
|
2023-02-01T15:17:43
|
|
Test: Fixed EGLContext leak in the EGLSurfaceTest tests.
"EGLSurfaceTest.RobustResourceInitAndEmulatedAlpha/*" causes
"EGLContext" leak. This test calls "initializeSingleContext()" on
"mContext" that was already implicitly initialized in the
"initializeSurface*()".
Added assertions in order to catch EGLContext/EGLSurface leaking.
Fix details:
- removed implicit "initializeContext()" call, to remove confusing
when it is necessary make explicit call or not.
- rename "initializeContext()" into "initializeAllContexts()" to better
reflect what it does.
- "initializeContext()" now creates contexts unconditionally, like once
before. Lazy initialization is not required, because there is no
longer implicit call in the "initializeSurfaceWithAttribs()".
- Created "initializeMainContext()" instead of calling
"initializeSingleContext()" directly.
Bug: angleproject:7996
Change-Id: I05954f7a044c12798ac857b877ecede6989526eb
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4208870
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Igor Nazarov <i.nazarov@samsung.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
6a5e61cd
|
2023-01-11T16:49:52
|
|
Vulkan: Make ThreadSafeCommandQueue's wait without lock
This CL makes all wait functions in ThreadSafeCommandQueue class to wait
without holding the lock, so that other contexts can still submitting
commands or make calls into CommandQueue. To make this work,
Shared<Fence> has been refactored into SharedFence class which is RAII
and manages refcounted VkFence object. It's copy constructor simply adds
a reference to the underline fence object, so that the local copy of a
SharedFence object guarantees underline vkfence will remain valid. RAII
makes sure that local copy of SharedFence will not leak refcount. The
ThreadSafeCommandQueue wait functions makes a local copy of SharedFence
so that it can unlock and wait and then relock.
This CL also adds a new test for this:
EGLMultiContextTest.ThreadBCanSubmitWhileThreadAWaiting
Bug: b/261106868
Change-Id: I96ecfa1d9f7a3dc646ff2287d789313a9f8fb75d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4159871
Commit-Queue: Charlie Lao <cclao@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
|
|
6338909e
|
2023-01-19T13:18:41
|
|
EGL: Remove protected content test case
Remove Protected content test:
Protected context with unprotected texture since it is a
spec violation to render to an unprotected texture from a
protected context
Bug: angleproject:7967
Change-Id: I40ce205a962614fe726417b0ed921b3a5133c079
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4182560
Commit-Queue: mohan maiya <m.maiya@samsung.com>
Reviewed-by: Jeff Vigil <j.vigil@samsung.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
be9e8e7b
|
2022-12-14T14:13:39
|
|
Add EGL_ANGLE_wait_until_work_scheduled extension
We're changing eglReleaseTexImage so it calls
flushCommandBuffer(mtl::NoWait) instead of
flushCommandBuffer(mtl::WaitUntilScheduled)
and then adding an extension to allow us to
WaitUntilScheduled.
This is because Chrome calls eglReleaseTexImage for
every canvas and having it WaitUntilScheduled per call
is very slow. So instead we'll call eglWaitUntilWorkScheduledANGLE
once which will effectively wait just once.
Bug: angleproject:7890
Change-Id: I87bc9f9a1a7f4a0f99d93736cc3083799e76afeb
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4109311
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Gregg Tavares <gman@chromium.org>
|
|
2de99d47
|
2022-11-17T12:19:35
|
|
Reset instance/device extensions in RendererVk::onDestroy()
RendererVk::initialize() adds a nullptr to the end of
RendererVk::mEnabledInstanceExtensions (presumably to ensure the
VK implementation crashes if it tries to read past?). If
RendererVk::onDestroy() fails to clear this nullptr, it can lead
to a crash when sorting the extension lists when the renderer
is re-initialized the second time.
Bug: b/249457381
Test: cvd start --gpu_mode=guest_swiftshader
Test: EGLDisplayTest.InitalizeTerminateInitalize/ES3_Vulkan_NoFixture
Change-Id: Ib24af11024cad6b28284f3a75cc862c48abec258
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4035646
Commit-Queue: Jason Macnak <natsu@google.com>
Reviewed-by: Ian Elliott <ianelliott@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
68b47e58
|
2022-11-16T10:46:59
|
|
Vulkan: Initial support for VK_EXT_graphics_pipeline_library
When available, this change uses VK_EXT_graphics_pipeline_library to
create pipelines. Currently, it is only used when
graphicsPipelineLibraryFastLinking is available. This restricts the use
of this extension to devices where monolithic pipelines are not any more
performant than linked libraries.
A future change adds support for other implementations by providing
async pipeline creation.
Bug: angleproject:7369
Change-Id: I1e3b7ac4aa56e75c7d6f4d0d5ea91cb0b862e581
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4031489
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Reviewed-by: Steven Noonan <steven@valvesoftware.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
386ef2ee
|
2022-11-17T13:16:27
|
|
Fix EGL validation of core robustness attribute.
Implement EGL validation of EGL_CONTEXT_OPENGL_ROBUST_ACCESS.
Previously, only the _EXT flavour was validated.
Note that EGLRobustnessTest was changed to only exercise the
core version.
Bug: chromium:1385480
Change-Id: I51f93d6cd344d073cd9656c9fff9636ca4eac99d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4030882
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Stephen White <senorblanco@chromium.org>
|
|
4be8294c
|
2022-10-06T09:50:28
|
|
Tests: Enable EGL_ANGLE_iosurface_client_buffer tests on iOS
This enables EGL_ANGLE_iosurface_client_buffer extension tests on iOS
platform. A few OpenGLES related tests had to be suppressed though. I'm
getting the following:
[==========] 96 tests from 1 test suite ran. (960 ms total)
[ PASSED ] 66 tests.
[ SKIPPED ] 30 tests, listed below:
[ SKIPPED ] IOSurfaceClientBufferTest.RenderToBGRX8888IOSurface/ES2_OpenGL
[ SKIPPED ] IOSurfaceClientBufferTest.RenderToBGRX8888IOSurface/ES3_OpenGL
[ SKIPPED ] IOSurfaceClientBufferTest.RenderToRG88IOSurface/ES2_OpenGL
[ SKIPPED ] IOSurfaceClientBufferTest.RenderToRG88IOSurface/ES3_OpenGL
[ SKIPPED ] IOSurfaceClientBufferTest.RenderToR8IOSurface/ES2_OpenGL
[ SKIPPED ] IOSurfaceClientBufferTest.RenderToR8IOSurface/ES3_OpenGL
[ SKIPPED ] IOSurfaceClientBufferTest.RenderToR16IOSurface/ES2_OpenGL
[ SKIPPED ] IOSurfaceClientBufferTest.RenderToR16IOSurface/ES3_OpenGL
[ SKIPPED ] IOSurfaceClientBufferTest.RenderToR16IOSurface/ES2_Metal
[ SKIPPED ] IOSurfaceClientBufferTest.RenderToR16IOSurface/ES3_Metal
[ SKIPPED ] IOSurfaceClientBufferTest.RenderToBGRA1010102IOSurface/ES2_OpenGL
[ SKIPPED ] IOSurfaceClientBufferTest.RenderToBGRA1010102IOSurface/ES3_OpenGL
[ SKIPPED ] IOSurfaceClientBufferTest.ReadFromBGRA1010102IOSurface/ES2_OpenGL
[ SKIPPED ] IOSurfaceClientBufferTest.ReadFromBGRA1010102IOSurface/ES3_OpenGL
[ SKIPPED ] IOSurfaceClientBufferTest.RenderToRGBA16FIOSurface/ES2_OpenGL
[ SKIPPED ] IOSurfaceClientBufferTest.RenderToRGBA16FIOSurface/ES3_OpenGL
[ SKIPPED ] IOSurfaceClientBufferTest.ReadFromToRGBA16FIOSurface/ES2_OpenGL
[ SKIPPED ] IOSurfaceClientBufferTest.ReadFromToRGBA16FIOSurface/ES3_OpenGL
[ SKIPPED ] IOSurfaceClientBufferTest.RenderToYUV420IOSurface/ES2_OpenGL
[ SKIPPED ] IOSurfaceClientBufferTest.RenderToYUV420IOSurface/ES3_OpenGL
[ SKIPPED ] IOSurfaceClientBufferTest.ReadFromToYUV420IOSurface/ES2_OpenGL
[ SKIPPED ] IOSurfaceClientBufferTest.ReadFromToYUV420IOSurface/ES3_OpenGL
[ SKIPPED ] IOSurfaceClientBufferTest.RenderToP010IOSurface/ES2_OpenGL
[ SKIPPED ] IOSurfaceClientBufferTest.RenderToP010IOSurface/ES3_OpenGL
[ SKIPPED ] IOSurfaceClientBufferTest.ReadFromToP010IOSurface/ES2_OpenGL
[ SKIPPED ] IOSurfaceClientBufferTest.ReadFromToP010IOSurface/ES3_OpenGL
[ SKIPPED ] IOSurfaceClientBufferTest.MakeCurrent/ES2_OpenGL
[ SKIPPED ] IOSurfaceClientBufferTest.MakeCurrent/ES3_OpenGL
[ SKIPPED ] IOSurfaceClientBufferTest.ReadFromBGRX8888IOSurfaceWithTexBaseMaxLevelSetToZero/ES2_OpenGL
[ SKIPPED ] IOSurfaceClientBufferTest.ReadFromBGRX8888IOSurfaceWithTexBaseMaxLevelSetToZero/ES2_Metal
Test: iPhone 13 and ./iossim -d 'iPhone 13' -c \
'--gtest_filter=\*IOSurfaceClientBufferTest\*' angle_end2end_tests.app
Bug: angleproject:5491
Change-Id: Id7c489ae41b11442a2dd06174b2c279894e83401
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3957539
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
|
|
0b7f3f5e
|
2022-10-12T17:47:06
|
|
More robustness tests
Similar test to what was introduced in
https://chromium-review.googlesource.com/c/angle/angle/+/3943534, but
for vertex and compute shaders.
Bug: angleproject:7629
Change-Id: I743233136125358edb6a15760b1ece63c36d3f85
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3949915
Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
|
|
135022e4
|
2022-10-11T00:03:11
|
|
Vulkan: Create robust pipelines based on context state
Previously, pipelines were made robust based on whether any context in
the share group has so far been made robust. This means that pipelines
created on non-robust contexts would still be compiled as robust.
Inefficiency aside, this was buggy because robustness was not part of
the pipeline cache key, so if a pipeline was created as non-robust
first, then recreated in a robust context, it would reuse the non-robust
variant.
With VK_EXT_pipeline_protected_access, a similar situation arises for
context protected-ness. However, it is incorrect in that case to create
pipelines as protected unnecessarily.
This change makes pipeline robustness a part of the pipeline cache key,
in preparation for protectedness to be added similarly. Compute
programs may now generate multiple pipelines as a result too.
Bug: angleproject:7629
Change-Id: Ie95f10eff878f8c8b221c1018da44385c7aad15e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3943534
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
|
|
583fd03e
|
2022-09-29T16:28:05
|
|
Translator: Fix ClampIndirectIndices vs. unsized arrays
A deepCopy() was missing from this code path, which led to an AST
validation error. However, clamping indices for unsized arrays is not
strictly correct. For example, an out of bounds write with robustness
is expected to be dropped, not overwrite the last element.
Since robustness already covers storage blocks, this clamping is no
longer done.
Bug: angleproject:7712
Change-Id: I96dd18ef47cd453f19391bdccbd4372c24854ade
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3924863
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
|
|
163e56e4
|
2022-09-20T00:40:55
|
|
Allow feature overrides to end in * (wildcard)
Makes it easier to apply overrides to features with long names. Also
works around Android's limit of 92 characters for debug properties.
Bug: b/238024366
Change-Id: I8f417287f92b2439de1a7b7d6abbaf9e61b405e8
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3906222
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org>
|
|
d2a58f00
|
2022-09-08T14:19:21
|
|
EGL: Implement eglCopyMetalSharedEventANGLE
Add eglCopyMetalSharedEventANGLE function to the
ANGLE_metal_shared_event_sync extension. This brings the extension on
par with the EGL_ANDROID_native_fence_sync extension.
eglCopyMetalSharedEventANGLE allows for copying the Metal event object
from EGLSync objects implemented by the ANGLE Metal renderer. This
function follows Objective-C convention for "copy" methods and increases
the retain count of the Metal event object. The EGL API user is thus
responsible for ensuring to release the returned object to avoid memory
leaks.
Test: angle_end2end_tests --gtest_filter=EGLSyncTestMetalSharedEvent.*
Bug: angleproject:7561
Change-Id: I8c35b559014b85cb8c6a0e76ac2ab7891eed5da0
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3881423
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Quyen Le <lehoangquyen@chromium.org>
|
|
a89f678f
|
2022-06-16T13:59:16
|
|
EGL: Implement ANGLE_metal_shared_event_sync on metal
Implement creation of fence sync object taking an external
MTLSharedEvent and optional value to use when signaling completion of
prior commands.
Extended end2end test suite with metal shared event test cases.
Test: angle_end2end_tests --gtest_filter=EGLSyncTestMetalSharedEvent.*
Bug: angleproject:7561
Change-Id: I0e72b5417275a20a24e535670ceb995ecc87abcb
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3865060
Reviewed-by: Quyen Le <lehoangquyen@chromium.org>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Kenneth Russell <kbr@chromium.org>
|
|
fc51d98f
|
2022-08-11T03:29:16
|
|
Add Direct Composition offset to gl_FragCoord
DComp usually gives us an offset at (0, 0), but this is not always
the case. It is valid for DComp to give us an offset into a texture
atlas, for example with some video overlays. If we do have an offset,
gl_FragCoord must also be offset to point to the correct pixel in the
surface.
Bug: chromium:1269749
Change-Id: I3ca39860d176bcf9f1d520d781cfed2d1d1ad1dd
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3827081
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Rafael Cintron <rafael.cintron@microsoft.com>
Reviewed-by: Rafael Cintron <rafael.cintron@microsoft.com>
|
|
9c17232a
|
2022-09-02T16:05:48
|
|
Vulkan: Make robustness affect all of share group
Since contexts in a share group can share their program, if any context
in the share group is robust, programs in all contexts in the share
group need to be created with robustness in mind.
This fixes the situation when the programs are created after a robust
context has been created. However, if programs are created first, then
a robust context is added to a share group, there remains a bug where
the old programs aren't recreated to have robust behavior.
Bug: angleproject:7629
Change-Id: I4922091962a32ca75a6107343df0cd87e5e9592d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3872506
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
ba4b6913
|
2022-08-23T09:34:27
|
|
Fix data race in BlobCache
* Re-enable shader cache feature
* Improve BlobCache thread-safety test
* Improve EGLProgramCacheControlTest to not check the size
of the BlobCache, since the shader cache interferes with this.
* Include the arguments to ConstructCompiler() and Compile()
in the key hash for the shader cache.
Bug: angleproject:7036
Change-Id: Ied4e11f9160552f2f9358d99b5656315239ba856
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3851161
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Eddie Hatfield <eddiehatfield@google.com>
|
|
aa2a558e
|
2022-08-23T09:47:02
|
|
Vulkan: Add support for setting timestamp surface attribute
On Android the EGL wrapper handles most of the functionality required
by EGL_ANDROID_get_frame_timestamps. However if for some reason the
swapchain is recreated, the timestamp state would be lost resulting in
stuttering.
Introduce EGL_ANGLE_timestamp_surface_attribute extension that adds
support for toggling the EGL_TIMESTAMPS_ANDROID attribute of a surface.
Cache this state and recreate the swapchain accordingly.
Bug: angleproject:7489
Test: EGLSurfaceTest.TimestampSurfaceAttribute*
Test: dEQP-EGL.functional.get_frame_timestamps*
Change-Id: I3660f7137c006d904164d243a682a4ff520eabd8
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3753396
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Ian Elliott <ianelliott@google.com>
Commit-Queue: mohan maiya <m.maiya@samsung.com>
|
|
f10625d3
|
2022-08-11T14:32:45
|
|
Enable Robustness Extension on ARM
These dEQP tests failed due to Robustness was disabled:
dEQP-GLES31.functional.debug.negative_coverage.callbacks.buffer#readn_pixels
dEQP-GLES31.functional.debug.negative_coverage.log.buffer#readn_pixels
dEQP-GLES31.functional.debug.negative_coverage.get_error.buffer#readn_pixels
dEQP-GLES31.functional.debug.error_filters#case_12
dEQP-GLES31.functional.debug.error_groups#case_12
Re-enable the Robustness Extension on ARM to check if
mali driver supports GL_EXT_robustness extension now. If it does
we can enable the robustness feature in ANGLE so that the above
dEQP tests can pass.
Bug: angleproject:7351
Bug: angleproject:4823
Bug: angleproject:2330
Change-Id: Ifce20e410607f2d4b6b3b55235081fef690c983c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3828441
Commit-Queue: Yuxin Hu <yuxinhu@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
13456bfc
|
2022-08-23T13:33:13
|
|
Propagate device type in another eglGetPlatformDisplayEXT call.
Same as https://crrev.com/c/3759712 for another test.
Also use !platformSupportsMultithreading() to skip tests.
However, need to skip separately from capture/replay where
multi-threaded tests seem to run into issues.
Bug: angleproject:7494
Bug: angleproject:7423
Change-Id: Ief87b4163aedd26b440987540c06ceb7ae8a575b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3851166
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Roman Lavrov <romanl@google.com>
|
|
bd1484f3
|
2022-08-22T13:53:35
|
|
Temporarily disable shader caching feature
This will be re-enabled when the BlobCache test flakes are resolved.
Bug: angleproject:7036
Change-Id: I38829ffcd5869679bf65017475e8a10d165f369b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3846403
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Eddie Hatfield <eddiehatfield@google.com>
Reviewed-by: Lingfeng Yang <lfy@google.com>
|
|
955adb77
|
2022-08-12T10:14:48
|
|
Cache compiled shader
By storing the compiled shader in the blob cache, the time to
recompile the same shader is reduced.
Based on work by <hckim.kim@samsung.com>
Bug: angleproject:7036
Change-Id: I884ae40e715c49a9ccd12903012e8327811e3557
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3808235
Commit-Queue: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
|
|
7a87e90d
|
2022-07-16T11:39:08
|
|
An inactive but alive thread shouldn't prevent cleanup
1. Acquire EGL global lock before thread cleanup and remove
all clean up related mutexes
2. Mark contexts that are not current as invalid during terminate
3. During thread exit, if there are other active threads, terminate
with TerminateReason::InternalCleanup. This gives an opportunity
for well behaved threads to cleanup up invalid objects.
Bug: angleproject:6723
Bug: angleproject:6798
Test: EGLContextSharingTestNoFixture.InactiveThreadDoesntPreventCleanup*
Change-Id: I418e5f8b486d3d309bd58c4cfb04b7dc1149ffc1
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3768667
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Roman Lavrov <romanl@google.com>
Commit-Queue: mohan maiya <m.maiya@samsung.com>
|
|
4cab7f38
|
2022-08-10T20:33:07
|
|
Fix EGL_ANGLE_program_cache_control for eglCreateContext
EGL_CONTEXT_PROGRAM_BINARY_CACHE_ENABLED_ANGLE is an attribute for
creating EGL context, but ANGLE reads it from mAttributeMap which is
not the attribs passed to eglCreateContext().
Bug: chromium:1336126
Change-Id: Id3ea1955f927a7e051285c79b590dcf1f11f22ed
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3823621
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Auto-Submit: Peng Huang <penghuang@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
553b1334
|
2022-07-28T23:33:28
|
|
Vulkan: fix default msaa framebuffer resolve issue.
Bug: b/239217726
Change-Id: I826aad7495814e0a178a586c4cfd5943278cddac
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3793304
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
16e7226d
|
2022-07-13T17:56:36
|
|
Propagate device type in ReuseUnterminatedDisplay.
Fixes the issue with SwiftShader from https://crrev.com/c/3717277
Bug: angleproject:7494
Change-Id: Icb83087caf789518b0c3f30b10b543b299a500bc
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3759712
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Auto-Submit: Roman Lavrov <romanl@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
12efe5b2
|
2022-06-21T15:43:42
|
|
Cleanup invalid EGL handles only if app called eglTermiate
Maintain set of active threads instead of a global refCount
and free display's invalid EGL resources iff -
1. app previously called eglTerminate on that display
2. there are no more active threads associated with that display
Bug: angleproject:6723
Test: EGLMultiContextTest.RepeatedEglInitAndTerminate*
Test: EGLMultiContextTest.ReuseUnterminatedDisplay*
Change-Id: I868491bbbf0664e9129dcb0d1fa9e2243ef36d82
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3717277
Commit-Queue: mohan maiya <m.maiya@samsung.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Roman Lavrov <romanl@google.com>
|
|
723cc880
|
2022-06-10T17:55:54
|
|
Reland "Reland "Vulkan: Destroy DescriptorSet cache when it becomes invalid""
This is a reland of commit 551a26aeedbfd971d6199c8eddb433a4f4ff871c
Original change's description:
> Reland "Vulkan: Destroy DescriptorSet cache when it becomes invalid"
>
> This is a reland of commit 0779ccbcd427dcb00e53afa6385fb4e8e2377993 with
> the fix for angleproject:7466. When DescriptorPoolhelper gets
> release/destroyed, we ensure all sharedCacheKeys are destroyed.
>
> Original change's description:
> > Vulkan: Destroy DescriptorSet cache when it becomes invalid
> >
> > When a new texture descriptorSet is allocated, we store one reference of
> > the cache key in ProgramExecutableVk and all TextureVks that it
> > associated with. When any of the TextureVk is destroyed or its view
> > destroyed, we immediately erase the descriptorSet from the cache and
> > track GPU progress and free the descriptorSet when it's GPU completed.
> > That way we delete the dead descriptorSet that will for sure never been
> > reused ASAP so that its space is avialable for reuse.
> >
> > Bug: b/235523746
> > Change-Id: Ib1b9662a254eea5a3f410dc6d5d89fca6727a647
> > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3700226
> > Reviewed-by: Lingfeng Yang <lfy@google.com>
> > Commit-Queue: Charlie Lao <cclao@google.com>
> > Reviewed-by: Ian Elliott <ianelliott@google.com>
> > Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
>
> Bug: b/235523746
> Bug: angleproject:7466
> Change-Id: I4413bec27ea0ca830010e2ca15036c2e667141c0
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3726964
> Reviewed-by: Ian Elliott <ianelliott@google.com>
> Commit-Queue: Charlie Lao <cclao@google.com>
> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Bug: b/235523746
Bug: angleproject:7466
Change-Id: I6b88b884841c5dbc625ee7e0c52c45af09dec199
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3741027
Commit-Queue: Charlie Lao <cclao@google.com>
Reviewed-by: Ian Elliott <ianelliott@google.com>
|
|
4b745c2b
|
2022-07-01T01:25:36
|
|
Revert "Reland "Vulkan: Destroy DescriptorSet cache when it becomes invalid""
This reverts commit 551a26aeedbfd971d6199c8eddb433a4f4ff871c.
Reason for revert: Blink test failures at: https://ci.chromium.org/ui/p/chromium/builders/ci/WebKit%20Linux%20MSAN/15546/overview
Original change's description:
> Reland "Vulkan: Destroy DescriptorSet cache when it becomes invalid"
>
> This is a reland of commit 0779ccbcd427dcb00e53afa6385fb4e8e2377993 with
> the fix for angleproject:7466. When DescriptorPoolhelper gets
> release/destroyed, we ensure all sharedCacheKeys are destroyed.
>
> Original change's description:
> > Vulkan: Destroy DescriptorSet cache when it becomes invalid
> >
> > When a new texture descriptorSet is allocated, we store one reference of
> > the cache key in ProgramExecutableVk and all TextureVks that it
> > associated with. When any of the TextureVk is destroyed or its view
> > destroyed, we immediately erase the descriptorSet from the cache and
> > track GPU progress and free the descriptorSet when it's GPU completed.
> > That way we delete the dead descriptorSet that will for sure never been
> > reused ASAP so that its space is avialable for reuse.
> >
> > Bug: b/235523746
> > Change-Id: Ib1b9662a254eea5a3f410dc6d5d89fca6727a647
> > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3700226
> > Reviewed-by: Lingfeng Yang <lfy@google.com>
> > Commit-Queue: Charlie Lao <cclao@google.com>
> > Reviewed-by: Ian Elliott <ianelliott@google.com>
> > Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
>
> Bug: b/235523746
> Bug: angleproject:7466
> Change-Id: I4413bec27ea0ca830010e2ca15036c2e667141c0
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3726964
> Reviewed-by: Ian Elliott <ianelliott@google.com>
> Commit-Queue: Charlie Lao <cclao@google.com>
> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Bug: b/235523746
Bug: angleproject:7466
Change-Id: Icdde2752c462b7ebbb51d46fd35ce749b5caf377
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3739585
Reviewed-by: Ian Elliott <ianelliott@google.com>
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Auto-Submit: Ian Elliott <ianelliott@google.com>
Commit-Queue: Ian Elliott <ianelliott@google.com>
|
|
551a26ae
|
2022-06-10T17:55:54
|
|
Reland "Vulkan: Destroy DescriptorSet cache when it becomes invalid"
This is a reland of commit 0779ccbcd427dcb00e53afa6385fb4e8e2377993 with
the fix for angleproject:7466. When DescriptorPoolhelper gets
release/destroyed, we ensure all sharedCacheKeys are destroyed.
Original change's description:
> Vulkan: Destroy DescriptorSet cache when it becomes invalid
>
> When a new texture descriptorSet is allocated, we store one reference of
> the cache key in ProgramExecutableVk and all TextureVks that it
> associated with. When any of the TextureVk is destroyed or its view
> destroyed, we immediately erase the descriptorSet from the cache and
> track GPU progress and free the descriptorSet when it's GPU completed.
> That way we delete the dead descriptorSet that will for sure never been
> reused ASAP so that its space is avialable for reuse.
>
> Bug: b/235523746
> Change-Id: Ib1b9662a254eea5a3f410dc6d5d89fca6727a647
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3700226
> Reviewed-by: Lingfeng Yang <lfy@google.com>
> Commit-Queue: Charlie Lao <cclao@google.com>
> Reviewed-by: Ian Elliott <ianelliott@google.com>
> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Bug: b/235523746
Bug: angleproject:7466
Change-Id: I4413bec27ea0ca830010e2ca15036c2e667141c0
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3726964
Reviewed-by: Ian Elliott <ianelliott@google.com>
Commit-Queue: Charlie Lao <cclao@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
785353fd
|
2022-05-24T12:40:16
|
|
Support Desktop OpenGL context creation in end2end tests
Validation of Desktop GL versions and profile masks is unimplemented.
Bug: angleproject:7360
Change-Id: Ifae94215b6aada895c2b02318a1d05c9515e9b96
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3664916
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
|
|
45def3d4
|
2022-06-15T13:49:08
|
|
Remove non-negative offsets restriction in D3D extension
The EGL_ANGLE_d3d_texture_client_buffer extension currently
fails if either EGL_TEXTURE_OFFSET_[X|Y]_ANGLE offsets are
negative. This restriction is unnecessary, as D3D allows
for negative offsets.
Bug: angleproject:7446
Change-Id: I2e258a3a558eae51794f6533e28a0c06532f156d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3715956
Commit-Queue: Rafael Cintron <rafael.cintron@microsoft.com>
Reviewed-by: Rafael Cintron <rafael.cintron@microsoft.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
d50b2276
|
2022-06-21T12:05:28
|
|
Reland "Vulkan: Support EGL_ANDROID_front_buffer_auto_refresh"
This is a reland of commit ef60d38ecf12d6663e9ecccacbff9803b1fba7c6
There are no fixes as the revert itself was a speculative one
Original change's description:
> Vulkan: Support EGL_ANDROID_front_buffer_auto_refresh
>
> Cache value of EGL_FRONT_BUFFER_AUTO_REFRESH_ANDROID attribute
> and set swapchain present mode accordingly when recreating
> swapchain in single buffer mode.
>
> Bug: angleproject:7224
> Tests: EGLAndroidAutoRefreshTest.Basic*
> Change-Id: I2dbb92ce5c3fa047e0b02ea9011725311f346027
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3707570
> Reviewed-by: Ian Elliott <ianelliott@google.com>
> Commit-Queue: mohan maiya <m.maiya@samsung.com>
> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
> Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org>
Bug: angleproject:7224
Bug: angleproject:7465
Change-Id: Ia876ea17169c0f1b3afdb7753570e0b1aca985f5
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3733521
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
46ddcc44
|
2022-06-27T14:53:31
|
|
Revert "Vulkan: Support EGL_ANDROID_front_buffer_auto_refresh"
This reverts commit ef60d38ecf12d6663e9ecccacbff9803b1fba7c6.
Reason for revert: crashes in end2end tests on Win Intel Vulkan
Original change's description:
> Vulkan: Support EGL_ANDROID_front_buffer_auto_refresh
>
> Cache value of EGL_FRONT_BUFFER_AUTO_REFRESH_ANDROID attribute
> and set swapchain present mode accordingly when recreating
> swapchain in single buffer mode.
>
> Bug: angleproject:7224
> Tests: EGLAndroidAutoRefreshTest.Basic*
> Change-Id: I2dbb92ce5c3fa047e0b02ea9011725311f346027
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3707570
> Reviewed-by: Ian Elliott <ianelliott@google.com>
> Commit-Queue: mohan maiya <m.maiya@samsung.com>
> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
> Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org>
Bug: angleproject:7224, angleproject:7465
Change-Id: Ia48a31124c8e0a3e4bcd4b7dc6f62b0782b42d97
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3726099
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
|
|
89e38b57
|
2022-06-22T15:04:08
|
|
Refactor to use ANGLETest vs ANGLETestWithParam
Bug: angleproject:6747
Change-Id: I72ad52d0268eae0e1a401f12f3e94cc5efa402f2
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3719002
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
|
|
ef60d38e
|
2022-06-21T12:05:28
|
|
Vulkan: Support EGL_ANDROID_front_buffer_auto_refresh
Cache value of EGL_FRONT_BUFFER_AUTO_REFRESH_ANDROID attribute
and set swapchain present mode accordingly when recreating
swapchain in single buffer mode.
Bug: angleproject:7224
Tests: EGLAndroidAutoRefreshTest.Basic*
Change-Id: I2dbb92ce5c3fa047e0b02ea9011725311f346027
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3707570
Reviewed-by: Ian Elliott <ianelliott@google.com>
Commit-Queue: mohan maiya <m.maiya@samsung.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org>
|
|
91976352
|
2022-06-21T15:41:02
|
|
Use C++17 attributes instead of custom macros
Bug: angleproject:6747
Change-Id: Iad6c7cd8a18d028e01da49b647c5d01af11e0522
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3718999
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
6c8bb1f3
|
2022-06-21T06:06:29
|
|
Metal: Fix invalid iosurface texture after base/max lvl changed
Changing base/max lvl invalidated previously bound iosurface's texture.
This caused conformance/canvas/webgl-to-2d-canvas.html failure.
Fix by rebinding the iosurface's texture after base/max lvl changed.
Bug: chromium:1337324
Change-Id: I28f84b0ac28695221997571f71c476e802cbfac3
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3715729
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Peng Huang <penghuang@chromium.org>
|
|
89aa1027
|
2022-06-07T12:19:54
|
|
Specify display to EGL query in print info test.
This will be backwards-compatible with EGL 1.4 and non-ANGLE
GL implementations.
Bug: angleproject:7396
Change-Id: I78a6c5b9a0d49ef9768b9a5895f6280d22e64123
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3692267
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Auto-Submit: Jamie Madill <jmadill@chromium.org>
|
|
3dfc8004
|
2022-06-08T14:24:48
|
|
Vulkan: Optimize sync followed by swap
Previously, inserting a sync object immediately caused a submission.
That was done in
https://chromium-review.googlesource.com/c/angle/angle/+/3200274 to be
able to wait until the sync object is signaled without having to wait
for whatever is recorded after it until a flush naturally happens.
Some applications issue a glFenceSync right before eglSwapBuffers. The
submission incurred by glFenceSync disallowed the optimizations that
eglSwapBuffers would have done, leading to performance degradations.
This could have been avoided if glFenceSync was issued right after
eglSwapBuffers, but that's not the case with a number of applications.
In this change, when a fence is inserted:
- For EGL sync objects, a submission is issued regardless
- For GL sync objects, a submission is issued if there is no render pass
open
- For GL sync objects, the submission is deferred if there is an open
render pass. This is done by marking the render pass closed, and
flagging the context as having a deferred flash.
If the context that issued the fence sync issues another draw call, the
render pass is naturally closed and the submission is performed.
If the context that issued the fence sync causes a submission, it would
have a chance to modify the render pass before doing so. For example,
it could apply swapchain optimizations before swapping, or add a resolve
attachment for blit.
If the context that issued the fence sync doesn't cause a submission
before another context tries to access it (get status, wait, etc), the
other context will flush its render pass and cause a submission on its
behalf. This is possible because the deferral of submission is done
only for GL sync objects, and those are only accessible by other
contexts in the same share group.
Bug: angleproject:7379
Change-Id: I3dd1c1bfd575206d730dd9ee2e33ba2254318521
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3695520
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
9ad43bdd
|
2021-12-09T16:52:35
|
|
Re-land: "Vulkan: Support Wayland"
Implement DisplayVkWayland and WindowSurfaceVkWayland. Get window size
from native window and check egl config is just empty. An EGL wayland
test is added for testing rendering and buffers swapping.
Re-land fixes:
- link failure in systems with no libwayland installed.
- XCB display availability check.
Bug: angleproject:6902
Change-Id: I5daecf3591493308ac71a7dd3bc0802f492e6fed
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3621059
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
4bbc55f4
|
2022-05-03T08:19:55
|
|
Revert "Re-land: "Vulkan: Support Wayland""
This reverts commit e0dd196a0e0aace17dfaa204163d798f504ea94e.
Reason for revert: blocks ANGLE roll into Chromium
Original change's description:
> Re-land: "Vulkan: Support Wayland"
>
> Implement DisplayVkWayland and WindowSurfaceVkWayland. Get window size
> from native window and check egl config is just empty. An EGL wayland
> test is added for testing rendering and buffers swapping.
>
> Re-land fixes link failure in systems with no libwayland installed.
>
> Bug: angleproject:6902
> Change-Id: I4f091d4f479a537d0390caedce88a5d39f8b356f
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3608088
> Reviewed-by: Jamie Madill <jmadill@chromium.org>
> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Bug: angleproject:6902, angleproject:7260
Change-Id: I7e92bf811b191eee6679d577006cddc0e1286fad
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3621057
Auto-Submit: Yuly Novikov <ynovikov@chromium.org>
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
|
|
e0dd196a
|
2021-12-09T16:52:35
|
|
Re-land: "Vulkan: Support Wayland"
Implement DisplayVkWayland and WindowSurfaceVkWayland. Get window size
from native window and check egl config is just empty. An EGL wayland
test is added for testing rendering and buffers swapping.
Re-land fixes link failure in systems with no libwayland installed.
Bug: angleproject:6902
Change-Id: I4f091d4f479a537d0390caedce88a5d39f8b356f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3608088
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
6c248691
|
2022-04-21T10:10:03
|
|
Enable SINGLE_BUFFER with eglCreateWindowSurface
Enable core EGL feature for Vulkan using:
VK_PRESENT_MODE_SHARED_DEMAND_REFRESH_KHR
Test: angle_end2end_test --gtest_filter=EGLSingleBufferTest
Bug: angleproject:7224
Change-Id: I3e85f932471f7b3c97bbc5c2f5314f25eb9b2867
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3610975
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
95c1ff52
|
2022-02-24T08:31:52
|
|
EGL: Fix EGL_KHR_mutable_render_buffer
Fixes for eglSurfaceAttrib error cases.
Improve query for render buffer
Add test case to EGLSurfaceTest
Test: angle_end2end_test --gtest_filter=EGLSingleBufferTest
Bug: angleproject:7134
Change-Id: I4fa568c9530312003dc17111be212bf5b66d97fb
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3556088
Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
768c7d47
|
2022-04-21T16:55:05
|
|
Revert "Re-land: "Vulkan: Support Wayland""
This reverts commit f6cdd02fb4bceb4072430e3dbcb1e945809471e0.
Reason for revert: Still warns about extra dependency on wayland.
https://ci.chromium.org/ui/p/chromium/builders/try/linux-rel/990820/overview
Original change's description:
> Re-land: "Vulkan: Support Wayland"
>
> Implement DisplayVkWayland and WindowSurfaceVkWayland. Get window size
> from native window and check egl config is just empty. An EGL wayland
> test is added for testing rendering and buffers swapping.
>
> Re-land fixes link failure in systems with no libwayland installed.
>
> Bug: angleproject:6902
> Change-Id: I706af14620d6298275009f5caf93b0e60339219b
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3578765
> Auto-Submit: Antonio Caggiano <antonio.caggiano@collabora.com>
> Reviewed-by: Jamie Madill <jmadill@chromium.org>
> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Bug: angleproject:6902
Change-Id: I11b1fe473fceb2fddb85bd562b769d18426ce07b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3600378
Auto-Submit: Jamie Madill <jmadill@chromium.org>
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
dd493b5c
|
2022-04-11T17:49:36
|
|
EGL: allow eglQueryString(EGL_NO_DISPLAY, EGL_VERSION)
According to the EGL 1.5 specification, this should be okay:
If dpy is EGL_NO_DISPLAY, then the EGL_VERSION string describes the
supported client version. If dpy is a valid, initialized display,
then the EGL_VERSION string describes the supported EGL version for
dpy.
Bug: angleproject:7194
Change-Id: I0d851742695293d553465175ce4b59ce7f5d5336
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3583143
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Steven Noonan <steven@valvesoftware.com>
Auto-Submit: Steven Noonan <steven@valvesoftware.com>
Commit-Queue: Kenneth Russell <kbr@chromium.org>
|
|
f6cdd02f
|
2021-12-09T16:52:35
|
|
Re-land: "Vulkan: Support Wayland"
Implement DisplayVkWayland and WindowSurfaceVkWayland. Get window size
from native window and check egl config is just empty. An EGL wayland
test is added for testing rendering and buffers swapping.
Re-land fixes link failure in systems with no libwayland installed.
Bug: angleproject:6902
Change-Id: I706af14620d6298275009f5caf93b0e60339219b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3578765
Auto-Submit: Antonio Caggiano <antonio.caggiano@collabora.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
fcec6904
|
2022-04-13T14:18:06
|
|
Generate feature variable names from display names
The json file now only contains the feature display name. The variable
name is automaticaly derived.
For consistence with Chromium and other Chromium-based projects, the
display name is now always snake_case, and that's what's specified in
the json files. This also makes camelCase variable name generation
trivial (as opposed to the other way around).
Feature overrides now accept both snake_case and camelCase names to
ensure compatibility with existing scripts. This is done by removing _
and comparing override names with feature names in lower case.
Bug: angleproject:6435
Change-Id: I0b6ed2bbf5c312bc4f4be7b3c7d55dbaca2a9886
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3584630
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
01c0bc21
|
2022-04-13T17:56:13
|
|
Revert "Vulkan: Support Wayland"
This reverts commit 510351f2006e32ffc6da722f1fc9ea5666e9c0da.
Reason for revert: Breaking ANGLE roll:
https://bugs.chromium.org/p/angleproject/issues/detail?id=7202
Original change's description:
> Vulkan: Support Wayland
>
> Implement DisplayVkWayland and WindowSurfaceVkWayland. Get window size
> from native window and check egl config is just empty.
>
> Then add an EGL wayland test for testing rendering and buffers swapping.
>
> Bug: angleproject:6902
> Change-Id: I8204a5cc99f26330b74caba241bebf14c5650c2d
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3395898
> Reviewed-by: mohan maiya <m.maiya@samsung.com>
> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
> Auto-Submit: Antonio Caggiano <antonio.caggiano@collabora.com>
> Reviewed-by: Jamie Madill <jmadill@chromium.org>
> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Bug: angleproject:6902
Change-Id: Idd0cb78c84baeb1b2ab6910173160206901799f6
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3584921
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
|
|
510351f2
|
2021-12-09T16:52:35
|
|
Vulkan: Support Wayland
Implement DisplayVkWayland and WindowSurfaceVkWayland. Get window size
from native window and check egl config is just empty.
Then add an EGL wayland test for testing rendering and buffers swapping.
Bug: angleproject:6902
Change-Id: I8204a5cc99f26330b74caba241bebf14c5650c2d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3395898
Reviewed-by: mohan maiya <m.maiya@samsung.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Auto-Submit: Antonio Caggiano <antonio.caggiano@collabora.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
797e627e
|
2022-04-08T22:49:51
|
|
Autogenerate list of features as enum
The WithX() and WithNoX() helpers are removed and replaced with enable()
and disable() member functions that take the name of the feature (as a
Feature::X enum constant). This has two benefits:
- Adding tests that override a feature no longer requires additional
helper functions to be written.
- There's no mistaking the feature name.
This change doesn't yet fix the main issue in anglebug.com/6435, but
does fix the following helpers using an old feature name (so they were
ineffective):
- WithMetalForcedBufferGPUStorage
- WithNoVulkanViewportFlip
A follow up would remove the old way of overriding features in tests and
replaces them with the new way.
Bug: angleproject:6435
Change-Id: Ida02b26ec72bc40d7a8938c76a93815bb903ca05
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3580982
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
ba04fcfd
|
2022-03-11T13:58:52
|
|
Support ANGLE_PREFERRED_DEVICE on CGL
Add the possibility to test both integrated and discrete GPU
with ANGLE tests. Previously it was using only discrete.
The binaries need the NSSupportsAutomaticGraphicsSwitching bundle
property.
This is needed to test ANGLE_power_preference.
Changes the behavior of test apps:
Previously,
./angle_end2end_tests
would use discrete GPU.
After,
./angle_end2end_tests
or
ANGLE_PREFERRED_DEVICE=intel ./angle_end2end_tests
will use integrated GPU.
ANGLE_PREFERRED_DEVICE=amd ./angle_end2end_tests
will use discrete GPU.
Bug: angleproject:7093
Change-Id: Ia64f6024e3215e69c2a1bde3ba4f67c3ca595476
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3516114
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
|
|
ba0eba20
|
2022-04-01T17:39:58
|
|
Remove the TODOs regarding multisample buffer age
* Removed the TODOs regarding the buffer age for multisample images.
Bug: angleproject:7149
Change-Id: I25100eaef774613e71c5f7afdaed5833c63b6343
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3566228
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
|
|
cd9e887a
|
2022-03-31T15:43:17
|
|
Vulkan: Add multisample buffer age tests
* Added variations of VerifyContent for multisample images.
* getBufferAge() now sets age to 0 when the image is multisampled.
Bug: angleproject:7149
Change-Id: I11f6fc92f383fba180f118b29c799072ed0eb51c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3563510
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
|
|
5aaa402c
|
2022-03-30T06:13:02
|
|
Fix Surface use-after-free bug
In Display::destroyContext we would incorrectly destroy current surfaces
while trying to makeCurrent the context to be destroyed. Introduce
ScopedSurfaceRef, mirroring ScopedContextRef, to keep the surfaces alive
while destroying the context.
Bug: angleproject:7141
Test: EGLSurfaceTest.SurfaceUseAfterFreeBug*
Change-Id: Ie9b3d7841e5ee561d96c13bfee9c7c87b40cc39d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3561354
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: mohan maiya <m.maiya@samsung.com>
|
|
7a85d114
|
2022-03-25T15:01:17
|
|
Use [[nodiscard]] on RAII classes
Scoped* classes provide an RAII way of adding cleanup/restore state/etc
in a robust way. Unfortunatley, it's very easy to mistakenly leave the
variable name, leading to the destructor being called immediately
instead of at the end of the scope:
{
ScopedX(parameters); // instead of ScopedX x(parameters);
// Code here is run after destructor
}
The [[nodiscard]] attribute, if specified on the ScopedX class would
lead to a warning (turned to error with -Werror). This change does
that for classes named *Scoped* in ANGLE.
Bug: chromium:1103817
Change-Id: I65c9922c9b4eba1f9c033e093fe8fe534648ab62
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3552092
Reviewed-by: Lingfeng Yang <lfy@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
cdd97fb8
|
2022-03-24T17:41:30
|
|
Reland "Vulkan: Fix invalid access with display texture share group."
This is a reland of 1099b5ef2279cfe1988a39c8e011aada59c650f1.
Original change's description:
> Vulkan: Fix invalid access with display texture share group.
> Create bufferpool that owns by RendererVk.
> If we are using EGL_ANGLE_display_texture_share_group
> extension, use the bufferpool owned RendererVk,
> otherwise, use the bufferpool owned by EGL::ShareGroup.
> The bufferpool lifetime will remain consistent with
> texture lifetime.
> Bug: chromium:1299211
> Change-Id: Ie4e87cea1dfd20dabab24e2afed6ddd92e469888
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3531155
> Reviewed-by: Charlie Lao <cclao@google.com>
> Reviewed-by: Geoff Lang <geofflang@chromium.org>
> Commit-Queue: Geoff Lang <geofflang@chromium.org>
Bug: chromium:1299211
Change-Id: I4b8f5bcb30297f2c5f24e02404fd96011f9d843b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3550038
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
73ec28af
|
2022-03-23T21:13:45
|
|
Revert "Vulkan: Fix invalid access with display texture share group."
This reverts commit 1099b5ef2279cfe1988a39c8e011aada59c650f1.
Reason for revert: suspect culprit of 1309304
Original change's description:
> Vulkan: Fix invalid access with display texture share group.
>
> Create bufferpool that owns by RendererVk.
> If we are using EGL_ANGLE_display_texture_share_group
> extension, use the bufferpool owned RendererVk,
> otherwise, use the bufferpool owned by EGL::ShareGroup.
> The bufferpool lifetime will remain consistent with
> texture lifetime.
>
> Bug: chromium:1299211
> Change-Id: Ie4e87cea1dfd20dabab24e2afed6ddd92e469888
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3531155
> Reviewed-by: Charlie Lao <cclao@google.com>
> Reviewed-by: Geoff Lang <geofflang@chromium.org>
> Commit-Queue: Geoff Lang <geofflang@chromium.org>
Bug: chromium:1299211, 1309304
Change-Id: Ibdc119ef6bb52352858114d72a0f1c0edcd4da5e
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3546288
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Reviewed-by: Shrek Shao <shrekshao@google.com>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
|
|
1099b5ef
|
2022-03-17T17:20:44
|
|
Vulkan: Fix invalid access with display texture share group.
Create bufferpool that owns by RendererVk.
If we are using EGL_ANGLE_display_texture_share_group
extension, use the bufferpool owned RendererVk,
otherwise, use the bufferpool owned by EGL::ShareGroup.
The bufferpool lifetime will remain consistent with
texture lifetime.
Bug: chromium:1299211
Change-Id: Ie4e87cea1dfd20dabab24e2afed6ddd92e469888
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3531155
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
9637185c
|
2022-03-10T15:38:13
|
|
Add ForceGPUSwitch to EGL_ANGLE_power_preference
eglHandleGPUSwitch() does not work with WebKit sandbox profile.
The root cause is that we do not know the
primary display, and as such we do not know which GPU drives this.
Add eglForceGPUSwitchANGLE(display, gpuIDHigh, gpuIDLow).
This lets the caller figure out the GPU in another process. Then
the caller can just set the GPU in the sandboxed process.
Add tests that are disabled by default until the runner and the
infrastructure supports running the tests with automatic switching
enabled.
Bug: angleproject:7092
Change-Id: I316ee431156596effbdb89659a5e24291719a204
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3516274
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Kenneth Russell <kbr@chromium.org>
|
|
e74d0e81
|
2022-02-11T18:05:12
|
|
Vulkan: Implement EGL_KHR_partial_update
This change provides a trivial implementation of partial
update that does nothing, making apps that want this
extension happy. A possible efficient Vulkan implementation
would use the damage set to narrow down render area, but it
appears to only be useful for only some TBDR hardware.
Bug: angleproject:6960
Reviewed-by: Antonio Caggiano <antonio.caggiano@collabora.com>
Change-Id: Ic553ac9590c336093f1bf25a6521574622599bf6
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3427640
Reviewed-by: Ian Elliott <ianelliott@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Auto-Submit: Constantine Shablya <constantine.shablya@collabora.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
1dc9f126
|
2022-03-16T19:29:26
|
|
Revert "Flush the texture staged updates when destroying context share group"
This reverts commit 5c29d795d1625f71ac6999f157b6f3bba79d5256.
Reason for revert: this is causing some test failures on chromium and blocking the angle-chromium auto roller job: https://chromium-review.googlesource.com/c/chromium/src/+/3529771/
Original change's description:
> Flush the texture staged updates when destroying context share group
>
> If we are using the extension EGL_ANGLE_display_texture_share_group,
> flush the texture staged updates upon destroying the context. With the
> extension enabled, the texture could still be alive when both context
> and its' EGL::ShareGroup are destroyed. If we have staged updates not
> yet flushed, the updates will keep the ShareGroupVk bufferpool occupied,
> causing an error upon ShareGroupVk::onDestroy().
>
> Bug: chromium:1299211
> Change-Id: I260de93c3a3099e023e31acbe017803e824459ad
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3495879
> Reviewed-by: Charlie Lao <cclao@google.com>
> Reviewed-by: Jamie Madill <jmadill@chromium.org>
> Commit-Queue: Yuxin Hu <yuxinhu@google.com>
Bug: chromium:1299211
Change-Id: I214161d6a8aec834e1efc5fc9d2479e62e3bfae0
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3530505
Auto-Submit: Yuxin Hu <yuxinhu@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
5c29d795
|
2022-02-28T23:56:46
|
|
Flush the texture staged updates when destroying context share group
If we are using the extension EGL_ANGLE_display_texture_share_group,
flush the texture staged updates upon destroying the context. With the
extension enabled, the texture could still be alive when both context
and its' EGL::ShareGroup are destroyed. If we have staged updates not
yet flushed, the updates will keep the ShareGroupVk bufferpool occupied,
causing an error upon ShareGroupVk::onDestroy().
Bug: chromium:1299211
Change-Id: I260de93c3a3099e023e31acbe017803e824459ad
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3495879
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Yuxin Hu <yuxinhu@google.com>
|
|
d914e7fb
|
2022-03-09T16:28:06
|
|
Add device id as a part of the key in EGLDisplay cache
Otherwise eglGetPlatformDisplay would return displays created
with other devices.
Bug: angleproject:7087
Change-Id: I6ad3fa03f02892afe43de7e7691fbba17a89d616
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3513753
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Auto-Submit: Kimmo Kinnunen <kkinnunen@apple.com>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Kenneth Russell <kbr@chromium.org>
|
|
722ac971
|
2022-03-02T19:24:26
|
|
Fix glClearColor calls to use GLColor32F constants.
Bug: angleproject:5025
Change-Id: I8d8bc8ff0b93951e19697d57c07368e1196498ae
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3499564
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
4349904b
|
2022-02-04T14:22:53
|
|
Add keying on backend to ANGLE Display caching.
Webkit needs to use one ANGLE display with OpenGL and another with
Metal. Our display caching is interfering with this, so it should
be updated to also key on the selected backend.
Bug: angleproject:6978
Change-Id: I9ec47a28e16646f5fc75956e3bd78236990cc392
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3440780
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
|
|
1b9774f5
|
2022-01-26T13:37:03
|
|
Vulkan: Force submit updates to immutable textures
Submit immutable texture updates recorded in outside renderpass
commands when the following conditions are met -
1. "forceSubmitImmutableTextureUpdates" feature is enabled
2. The texture is immutable
This works around a problem that manifests in some applications
that do not perform appropriate synchronization of shared contexts.
Bug: angleproject:6929
Test: EGLContextSharingTestNoSyncTextureUploads.*
Change-Id: I2a237046e2cc53650eb8dc07e3697f7481df9b02
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3418138
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: mohan maiya <m.maiya@samsung.com>
|
|
2b00f4f5
|
2022-02-01T13:59:50
|
|
Fix bug in protected content validation
1. It is valid for a protected context to sample from an
unprotected texture
2. It is necessary to match protected state of framebuffer
attachment and the context
Bug: angleproject:6602
Change-Id: Ia3138c1a6dc46ff6b85fc5948c6a04ef48fba8a8
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3430241
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
d6dd0cb5
|
2021-09-21T15:26:13
|
|
EGL: EGL_KHR_lock_surface3 backend
Add vulkan implementation
Add test: EGLLockSurface3Test
Test: angle_end2end_test --gtest_filter=EGLLockSurface3Test
Bug: angleproject:6062
Change-Id: Id5bfe37895b550392d11e9e9cc1262c1f0288c42
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3174323
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
453cd955
|
2022-01-17T13:26:39
|
|
Add EGL_ANGLE_platform_angle_display_id to D3D11 backend.
Uses the same LUID parts as ANGLE_platform_angle_d3d_luid. This
new extension is available on D3D11 on Windows and Metal on Mac.
Bug: angleproject:6903
Change-Id: Ib695affe47e822c4dfd7f41d8a62a85e74b9b90a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3396416
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
|
|
9f3c306e
|
2022-01-13T13:34:36
|
|
Fix collection of systemDeviceId on Mac/M1
Use the AGXAccelerator registry Id to match to the MTLDevice registry
Id.
Bug: angleproject:6143
Change-Id: I6fc868cbc9d5f442e042b5afeade6f71dbb2915b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3387081
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
|
|
2f4f5f8a
|
2021-12-14T17:30:42
|
|
Add EGL_ANGLE_platform_angle_device_id for the Metal backend.
This extension takes in a 64-bit device ID in two parts as parameters
to eglGetPlatformDisplay and uses it to initialize a display backed
by a specific device. The deviceID should match the MTLDevice's
registryId.
Bug: angleproject:6143
Change-Id: I02188b8266f8d0ac657b04325d191ab89bbef751
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3337985
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
|
|
926b43e7
|
2022-01-06T13:31:54
|
|
Reland: Frontend: separate lock in swap prep
Swapchain-based backends like Vulkan might block a lot in
vkAcquireNextImageKHR, which is bad for overall fast progress if we also
hold the global EGL lock there.
This CL starts to split the global EGL lock. We release the EGL lock
when performing vkAcquireNextImageKHR, and only maintain a lock for
surfaces.
This is done via a new custom entry point, EGL_PrepareSwapBuffers, so
that we can control how the global lock is used throughout the entire
call.
Bug: angleproject:6851
Change-Id: I095cd8b3bdbb13c842cab0a46148e2122582cdfd
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3373426
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Lingfeng Yang <lfy@google.com>
|
|
9d668d6c
|
2022-01-07T18:18:23
|
|
Revert "Frontend: separate lock in swap prep"
This reverts commit 40c5cb255c0a07bdab574aa076ee603e7d791ab3.
Reason for revert: Regression in TSAN caused by this CL:
https://ci.chromium.org/ui/p/angle/builders/ci/linux-tsan-test/352/overview
Original change's description:
> Frontend: separate lock in swap prep
>
> Swapchain-based backends like Vulkan might block a lot in
> vkAcquireNextImageKHR, which is bad for overall fast progress if we also
> hold the global EGL lock there.
>
> This CL starts to split the global EGL lock. We release the EGL lock
> when performing vkAcquireNextImageKHR, and only maintain a lock for
> surfaces.
>
> Bug: angleproject:6851
> Change-Id: I329d5c4c579718a4980c4261590f77099ce1400e
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3361249
> Reviewed-by: Charlie Lao <cclao@google.com>
> Reviewed-by: Geoff Lang <geofflang@chromium.org>
> Commit-Queue: Lingfeng Yang <lfy@google.com>
Bug: angleproject:6851
Change-Id: Ie03b784021f7b8b5c1ef95a911ef7da4029abd46
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3373165
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
b2dac79d
|
2022-01-07T06:55:04
|
|
Fix typo in EGLPrintInfo end2end Test
Version query had incorrect enum in EGLPrintInfo test.
Replace EGL_VENDOR enum with EGL_VERSION enum.
Bug: angleproject:4039
Test: EGLPrintEGLinfoTest.PrintEGLInfo
Change-Id: Ie056f4547f03d5c777b04f2a9cf652496e72702b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3373128
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: mohan maiya <m.maiya@samsung.com>
|
|
40c5cb25
|
2022-01-06T13:31:54
|
|
Frontend: separate lock in swap prep
Swapchain-based backends like Vulkan might block a lot in
vkAcquireNextImageKHR, which is bad for overall fast progress if we also
hold the global EGL lock there.
This CL starts to split the global EGL lock. We release the EGL lock
when performing vkAcquireNextImageKHR, and only maintain a lock for
surfaces.
Bug: angleproject:6851
Change-Id: I329d5c4c579718a4980c4261590f77099ce1400e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3361249
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Lingfeng Yang <lfy@google.com>
|
|
ece46380
|
2021-12-15T14:34:07
|
|
tests/EGLProtectedContentTest: Add QueryContext test.
Add a test that calls eglQueryContext to query
EGL_PROTECTED_CONTENT_EXT.
This functionality was implemented by
1fc9b7c6e0e4be4e6ebdc1bd8ccca58fa0fdecfd.
Test: angle_end2end_tests --gtest_filter="EGLProtectedContentTest.QueryContext*"
Bug: angleproject:6693
Bug: angleproject:6870
Change-Id: I05e6dde96e120ea81e7d4374990e05def100e290
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3358206
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Lubosz Sarnecki <lubosz.sarnecki@collabora.com>
|
|
05a44dd2
|
2021-11-29T12:16:58
|
|
Vulkan: Set content undefined on eglSwapBuffers
* Invalidate the swap buffer content if the swap behavior is
EGL_BUFFER_DESTROYED.
* In that event, WindowSurfaceVk::getBufferAge() sets `age`
to 0 and returns with no errors.
* Unit tests in EGLBufferAgeTest.cpp updated to reflect this.
* Minor cleanup in the test file.
Bug: angleproject:6363
Change-Id: Ibab7ccb99c1be149588e6aad16bcc2d6dd989295
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3307776
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
|
|
feb599ad
|
2021-12-09T20:17:14
|
|
Invalidate EGL handles during eglTerminate
EGL 1.5 spec says -
Termination marks all EGL-specific resources, such as contexts
and surfaces, associated with the specified display for deletion.
Handles to all such resources are invalid as soon as eglTerminate
returns
Move EGL object handles to another set, tracking invalid objects,
during display terminate. Destroy these invalid objects during
eglReleaseThread
Bug: angleproject:6798
Test: EGLMultiContextTest.NegativeTestAfterEglTerminate*
Test: EGLMultiContextTest.RepeatedEglInitAndTerminate*
Test: Android CTS WrapperTest.testThreadCleanup
Change-Id: Ie160212c98367493e645d9d1c8260e7a30649386
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3329273
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
Commit-Queue: mohan maiya <m.maiya@samsung.com>
|
|
6c172e4b
|
2021-11-20T16:27:14
|
|
Add support for memory cleanup on process exit
This patch adds a callback to cleanup memory on process exit.
Bug: angleproject:6723
Test: Android CTS WrapperTest.testThreadCleanup
Change-Id: Ia517d4c6ae280ddc1f17a3b6f77d437aaaad0678
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3294581
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Mohan Maiya <m.maiya@samsung.com>
|
|
f422f21a
|
2021-11-09T18:42:15
|
|
Reland "Metal: Reintroduce GPU power preference selection code."
This reverts commit 67a8cf07a740c5ce3aafd2ad7fddd370451b3525.
Reason for revert: Landed Chromium-side dependency:
https://chromium-review.googlesource.com/c/chromium/src/+/3271170
Original change's description:
> Revert "Metal: Reintroduce GPU power preference selection code."
>
> This reverts commit 017161701b7dbf70a13f3c180a39e1fa45c27d9f.
>
> Reason for revert: Blocking roller, please re-land with the fix.
>
> Original change's description:
> > Metal: Reintroduce GPU power preference selection code.
> >
> > This CL re-introduces the GPU power preference code to
> > the metal backend. It also reworks EGLDisplay caching
> > in the frontend to cache based on the native display
> > as well as the power preference attribute.
> > A new extension, EGL_ANGLE_display_power_preference is
> > added based on EGL_ANGLE_power_preference. This extension
> > is a client extension that allows selection of GPU on
> > display creation, similar to how GPUs are selected on
> > context creation in EGL_ANGLE_power_preference.
> > This CL adds EGLDisplayPowerPreferenceTest and enables it on
> > the metal backend.
> >
> > Bug: angleproject:6143
> > Change-Id: I0a081dcd2e3f18ab365fdd3498ddcb6e2ba35212
> > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3231986
> > Reviewed-by: Kenneth Russell <kbr@chromium.org>
> > Reviewed-by: Jamie Madill <jmadill@chromium.org>
> > Reviewed-by: Gregg Tavares <gman@chromium.org>
> > Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
>
> TBR=kbr@chromium.org,gman@chromium.org,jonahr@google.com,jmadill@chromium.org,angle-scoped@luci-project-accounts.iam.gserviceaccount.com
>
> Change-Id: I4f775bf7139253a87b033a30e0da2100b3c1bb02
> No-Presubmit: true
> No-Tree-Checks: true
> No-Try: true
> Bug: angleproject:6143
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3270749
> Reviewed-by: Jamie Madill <jmadill@chromium.org>
> Commit-Queue: Jamie Madill <jmadill@chromium.org>
# Not skipping CQ checks because this is a reland.
Bug: angleproject:6143
Change-Id: Id9b0a5cbb76e4dea9e2f2da2b1c47a0587dfdaf5
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3270970
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
|
|
53def659
|
2021-11-09T14:58:18
|
|
Unskip RenderSolidColor test
Unskips EGLDirectCompositionTest.RenderSolidColor, as the driver bug
that caused it to be disabled should hopefully be fixed.
Bug: chromium:1063962
Change-Id: I8a01ca65fc7e2b4b820d61fced24cf53af9e9f3c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3270597
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
67a8cf07
|
2021-11-09T15:10:50
|
|
Revert "Metal: Reintroduce GPU power preference selection code."
This reverts commit 017161701b7dbf70a13f3c180a39e1fa45c27d9f.
Reason for revert: Blocking roller, please re-land with the fix.
Original change's description:
> Metal: Reintroduce GPU power preference selection code.
>
> This CL re-introduces the GPU power preference code to
> the metal backend. It also reworks EGLDisplay caching
> in the frontend to cache based on the native display
> as well as the power preference attribute.
> A new extension, EGL_ANGLE_display_power_preference is
> added based on EGL_ANGLE_power_preference. This extension
> is a client extension that allows selection of GPU on
> display creation, similar to how GPUs are selected on
> context creation in EGL_ANGLE_power_preference.
> This CL adds EGLDisplayPowerPreferenceTest and enables it on
> the metal backend.
>
> Bug: angleproject:6143
> Change-Id: I0a081dcd2e3f18ab365fdd3498ddcb6e2ba35212
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3231986
> Reviewed-by: Kenneth Russell <kbr@chromium.org>
> Reviewed-by: Jamie Madill <jmadill@chromium.org>
> Reviewed-by: Gregg Tavares <gman@chromium.org>
> Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
TBR=kbr@chromium.org,gman@chromium.org,jonahr@google.com,jmadill@chromium.org,angle-scoped@luci-project-accounts.iam.gserviceaccount.com
Change-Id: I4f775bf7139253a87b033a30e0da2100b3c1bb02
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: angleproject:6143
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3270749
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
01716170
|
2021-10-14T13:24:41
|
|
Metal: Reintroduce GPU power preference selection code.
This CL re-introduces the GPU power preference code to
the metal backend. It also reworks EGLDisplay caching
in the frontend to cache based on the native display
as well as the power preference attribute.
A new extension, EGL_ANGLE_display_power_preference is
added based on EGL_ANGLE_power_preference. This extension
is a client extension that allows selection of GPU on
display creation, similar to how GPUs are selected on
context creation in EGL_ANGLE_power_preference.
This CL adds EGLDisplayPowerPreferenceTest and enables it on
the metal backend.
Bug: angleproject:6143
Change-Id: I0a081dcd2e3f18ab365fdd3498ddcb6e2ba35212
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3231986
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Gregg Tavares <gman@chromium.org>
Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
|
|
5d8a89e4
|
2021-11-02T19:57:04
|
|
Vulkan: Always override surface format GL_RGB8 to GL_RGBA8
If an app requests to create a surface with GL_RGB8, override it to be
GL_RGBA8 for Android.
This is to workaround an issue with the Android Vulkan loader which
limits which formats can be used with swapchains.
This CL also adds GL_RGB8 back to DisplayVkAndroid::generateConfigs(),
effectively reverting the following CL:
https://chromium-review.googlesource.com/c/angle/angle/+/3235466
This is being done with this CL (rather than reverting) since these
changes are required to handle surfaces created with GL_RGB8.
Bug: angleproject:6277
Bug: angleproject:6651
Change-Id: Iad78ea0d7bdf12e1e309ed6a7181f08fac38b9de
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3258143
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Ian Elliott <ianelliott@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Tim Van Patten <timvp@google.com>
|
|
7bda9d73
|
2021-10-22T11:53:20
|
|
DisplayVkAndroid: Always expose EGL_RECORDABLE_ANDROID.
Expose EGL_RECORDABLE_ANDROID in the config for all Vulkan drivers
on Android to provide app compatiblity with "My Talking Tom 2" and
"My Talking Tom Friends".
Don't require config to be unavailable in EGLRecordableTest and request
a config with EGL_RECORDABLE_ANDROID enabled, but do not check for
results.
Bug: angleproject:6612
Change-Id: I25113b7c7f9a4a3b13dc625f01d96ba91cb3c6d7
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3237001
Commit-Queue: Lubosz Sarnecki <lubosz.sarnecki@collabora.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
|