Platform guards are incorrect in mtl_utils.mm. We need to
account for macOS post 10.15, which now supports the apple
GPU family query.
Bug: angleproject:6809
Change-Id: Iae219a11ffe0ef0715681009aa24cbbc6fd2c61e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3338624
Reviewed-by: Gregg Tavares <gman@chromium.org>
Reviewed-by: Alexey Knyazev <lexa.knyazev@gmail.com>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Kenneth Russell <kbr@chromium.org>
Now that SamplerDesc and ImageHelper have the fully qualified
description of a VkSamplerYcbcrConversion, we can lazy allocate
the conversion handle along with streamlining the interface to the
SamplerYcbcrConversionCache class.
Bug: angleproject:6732
Test: Texture2DTestES3.*Yuv*Vulkan
Change-Id: I7deaa0220031bc4c500d88021459017bf937218c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3333629
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: mohan maiya <m.maiya@samsung.com>
The new traces are significantly smaller due to unused Program
trimming. The new trace archive is at least 30% smaller after
compression, which should have a positive impact on Android
transfer time. We also reduced the source file count by about
4000 from replay function merging, which should benefit
developer compilation time.
Bug: angleproject:5133
Change-Id: If461875006c2b918197cab9323c3553966c46e88
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3335060
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Tim Van Patten <timvp@google.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Includes changes to the retracing script.
Also includes documentation on how the process works.
Bug: angleproject:5133
Change-Id: I1acfe338f3fe0282a0461c314274c761ed04bd2f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3193418
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Tim Van Patten <timvp@google.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
This reverts commit 8e43023684.
Reason for revert: experiment is on by default after crrev.com/c/3321235
Original change's description:
> Enable the chromium recipe RDB results experiment for all builds.
>
> This experiment has been enabled at 100% for all chromium builds
> for months now. And the more builders are on it, the more we're able to
> refactor the chromium recipe. This was attempted in crrev.com/c/3307244,
> but had to be reverted since angle builds re-use much of chromium's
> recipe code but don't have the experiment rolled out to them.
>
> So this rolls it out to angle builds to allow for further clean-up in
> chromium's recipe code. Since all angle tests are wrapped via
> result_adapter, they should already have RDB integration (meaning their
> results are already uploaded to RDB).
>
> A LED run of a build with this experiment applied:
> https://ci.chromium.org/swarming/task/578b98d07382dd10?server=chromium-swarm.appspot.com
>
> Another LED run with that experiment and the recipe CL relanded:
> https://ci.chromium.org/swarming/task/578b9939cfccdb10?server=chromium-swarm.appspot.com
>
> This matches its original build:
> https://ci.chromium.org/ui/p/angle/builders/try/win-test/1026/overview
>
> Bug: chromium:1135718
> Change-Id: Ief4993fa9c027f9c2c6c3c352eb4e65ce74b628c
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3309479
> Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
> Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Bug: chromium:1135718
Change-Id: Ief89cef04ee75a8379a815b213e73c8841c9abb3
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3336357
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Add UniformBufferMapped and VertexBufferMapped in BufferStorageTestES3.
Add a test that writes to a mapped coherent bufferstorage from multiple
threads.
Test: angle_end2end_tests --gtest_filter="BufferStorageTestES3.*"
Bug: angleproject:5857
Change-Id: I434c2462fb7217ab77667a6ec038f21835beb0b7
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3275764
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Lubosz Sarnecki <lubosz.sarnecki@collabora.com>
For tests where glMapBufferRange and glUnmapBuffer is used, which is
part of core GLES 3.
Keep it as requirement for tests where glMapBufferOES and
glUnmapBufferOES is used.
This enabled these tests in the capture/replay test suit, as they are
not skipped anymore. GL_EXT_map_buffer_range and GL_OES_mapbuffer are
disabled during capture.
Test: angle_end2end_tests --gtest_filter="BufferStorageTestES3.*"
Bug: angleproject:5857
Change-Id: I4acdb428479f5d0dbd64670107d4c59a0b10df7c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3275763
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Lubosz Sarnecki <lubosz.sarnecki@collabora.com>
Track buffers with the GL_MAP_COHERENT_BIT_EXT access flag in a
CoherentBufferTracker on a per page basis using the
PageFaultHandler and protection functions from system_utils.
Check for dirty memory and capture it on draw calls.
Bug: angleproject:5857
Change-Id: Ib098f96952db7583d3e6517570c179e7754f54b2
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3168629
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Lubosz Sarnecki <lubosz.sarnecki@collabora.com>
* In MultiDrawElementsIndirect, it resets the index buffer
offset (mCurrentIndexBufferOffset) to 0.
* Added a unit test for MultiDrawElementsIndirect to
make sure that the index buffer offset is reset properly.
* Updated the test program in MultiDrawIndirectTest to
include a multi-colored mode.
* D3D11 and Metal tests regarding the following functions
are disabled so more test coverage can be added:
* glMultiDrawElementsIndirectEXT
* glMultiDrawElementsInstancedBaseVertexBaseInstanceANGLE
Bug: angleproject:6751
Change-Id: I81bb7b3aa9b6ad8a9283dd50728ec6250c3668ad
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3330737
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
This Metal-specific EGL extension allows a given context
and the GPU resources it allocates to be associated with
a particular task ID on the system, for system-level
bookkeeping purposes.
Bug: angleproject:6795
Change-Id: I19ee0993564169b01c4a450e63dcfacd339b98b5
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3335172
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Kenneth Russell <kbr@chromium.org>
This should fix the WEBGL_debug_shader_info CTS test
Bug: angleproject:6788
Change-Id: I89e18f94ea3199149c252355372648b5e328e1ed
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3329204
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Gregg Tavares <gman@chromium.org>
By buffering up the replay functions before writing them out into
sources, we can reduce the number of replay files by a large
margin.
Bug: angleproject:5133
Change-Id: I0a556fd1a3a5f2dcc8a26b761e885c9b7e464cf5
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3316200
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Tim Van Patten <timvp@google.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
The "100" value is too high and causes "S21 Adreno" block in
"vkQueueSubmit()". This is a temp solution.
Patch authored by Igor Nazarov <i.nazarov@samsung.com>
Bug: angleproject:6401
Change-Id: Ie7f9c8ef5311b17325640cae0f613ece768c0fa3
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3165666
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Previously, we cast the originally-32-bit mask to 8 bits, and then
crashed ourselves in the assert.
Also optimize away the stencil based on 8 bit explicitly in the
frontend.
Bug: chromium:1275858
Change-Id: I0b03a17e72f5a4540b5c4605353eb1fde898057d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3315158
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Lingfeng Yang <lfy@google.com>
These buffers are deleted and recreated, so unmapping them gives
a "resource not mapped" error during replay.
Found when working on the "world_war_doh" trace.
Bug: angleproject:5133
Change-Id: Id1e6318c44a2a09fa643ef0a72f1d03d8396e5fb
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3327862
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
This should allow us to properly reset buffer state when capturing
vertex attribute pointer state in the per-context (not shared)
setup function.
Also adds a missing replay state buffer binding update.
Fixes a state serialization difference in "badland".
Bug: angleproject:5133
Change-Id: I8509dbf7211726ff47f4e7e5ff86a0eb8726d75c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3327861
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Suppresses a failure in
PointSpritesTest.PointSizeAboveMaxIsClamped on Metal with Mac 12.
Bug: angleproject:6800
Change-Id: Ib6646b31e7d0231e2cd1284301792216bd5c70d6
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3331200
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
ReadPixels does not implicitly flush context before reading
on iOS and macOS hardware due to shared memory. look for any pending
GPU Work, and flush the command buffer if needed.
Bug: angleproject:6803
Change-Id: I5688b031ecffcd7427263041d4e33ae256f68af6
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3318592
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
Commit-Queue: Kyle Piddington <kpiddington@apple.com>
This is a reland of b1c703e5f5
that was reverted in 663831aa67.
Skip PageFaultHandlerProtect and PageFaultHandlerDefaultHandler on macOS
and Fuchsia.
Original change's description:
> Reland "system_utils: Add memory protection functionality."
>
> This is a reland of ab75a90ff4
> that was reverted in b007e667a8.
>
> Implement PageFaultHandler and memory protection functions.
> Uses mprotect and sigaction on POSIX and equivalent Win API functions on
> win32.
>
> Add tests to system_utils_unittests.
>
> Add stubs for winuwp.
>
> Replace ASSERT with ASSERT_TRUE in the PageFaultHandlerDefaultHandler
> test to make it succeed on release builds, as the code was optimized
> out. Furthermore the test did not correctly remove protection from the
> whole area it protected, which caused a hang after deinitialization on
> some build configurations, since the custom page fault handler was also
> still in place. The test now correclty removes protection from the whole
> area and sets back the original page fault handler.
>
> Test: angle_unittests --gtest_filter="SystemUtils.PageFaultHandler*"
> Bug: angleproject:5857
> Change-Id: Ibb0acfefd9a09c3360c04c812a2a8346b951e1da
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3322992
> Reviewed-by: Jamie Madill <jmadill@chromium.org>
> Commit-Queue: Lubosz Sarnecki <lubosz.sarnecki@collabora.com>
Test: angle_unittests --gtest_filter="SystemUtils.PageFaultHandler*"
Bug: angleproject:5857
Change-Id: Ifaa966a7c569aa9ff0112897a02fa8f873cd52dd
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3329610
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Lubosz Sarnecki <lubosz.sarnecki@collabora.com>
This trace was being skipped based on incorrect GPU detection.
Bug: angleproject:5133
Change-Id: I15e36e099aa2443153184f95b360a8afec278019
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3330575
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
* Updated the auto-generated types for arguments "mode"
and "type" for glMultiDraw*Indirect and glMultiDrawIndirectEXT
functions to PrimitiveMode and DrawElementsType, similar to
the other glMultiDraw* functions.
Bug: angleproject:6770
Change-Id: If02a66b6fb2f81848ab6e43a6cd406d5956bf331
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3321792
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
Mac11 bots are often failing with the:
"Error loading EGL entry points"
error for an unknown reason.
This CL adds the library path to the error message
to see if it's trying to open the correct file.
Bug: chromium:1277690
Change-Id: Ieb73a3097702933a89794d92c19ee44a6301c169
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3330576
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Commit-Queue: Alexis Hétu <sugoi@chromium.org>
This extension doesn't change ANGLE behavior with Vulkan backend,
since it is just a hint for ANGLE to optimize texture allocation.
Bug: angleproject:6771,chromium:1264439
Change-Id: Ie2411894a02bbcb0a5304c635f1f5648520ad22a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3329694
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Peng Huang <penghuang@chromium.org>
There is a crash related to VMA containers, so switch to STL
containers to see if it can workaround the issue.
Bug: chromium:1266412
Change-Id: I8416e4b4a27588ac2d710a4ef7600cd91b080535
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3327744
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Peng Huang <penghuang@chromium.org>
This reverts commit b1c703e5f5.
Reason for revert: Fails on fuchsia bots:
https://ci.chromium.org/ui/p/chromium/builders/try/fuchsia_arm64/1020498/overview
mprotect failed: Not supported
Original change's description:
> Reland "system_utils: Add memory protection functionality."
>
> This is a reland of ab75a90ff4
> that was reverted in b007e667a8.
>
> Implement PageFaultHandler and memory protection functions.
> Uses mprotect and sigaction on POSIX and equivalent Win API functions on
> win32.
>
> Add tests to system_utils_unittests.
>
> Add stubs for winuwp.
>
> Replace ASSERT with ASSERT_TRUE in the PageFaultHandlerDefaultHandler
> test to make it succeed on release builds, as the code was optimized
> out. Furthermore the test did not correctly remove protection from the
> whole area it protected, which caused a hang after deinitialization on
> some build configurations, since the custom page fault handler was also
> still in place. The test now correclty removes protection from the whole
> area and sets back the original page fault handler.
>
> Test: angle_unittests --gtest_filter="SystemUtils.PageFaultHandler*"
> Bug: angleproject:5857
> Change-Id: Ibb0acfefd9a09c3360c04c812a2a8346b951e1da
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3322992
> Reviewed-by: Jamie Madill <jmadill@chromium.org>
> Commit-Queue: Lubosz Sarnecki <lubosz.sarnecki@collabora.com>
Bug: angleproject:5857
Change-Id: Iaab4067a7ec9240bb6c64b810ac6d3ea7bd86fe1
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3327743
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Copied test from the WebGL conformance suite.
A 1x<MAX_TEXTURE_SIZE> texture fails on Intel in the Metal
backend.
This was fixed in WebKit so just applying that fix.
Bug: angleproject:6754
Change-Id: Id1cafb3b560f14630684d55b0e61cea4c7f33a6d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3311941
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Commit-Queue: Gregg Tavares <gman@chromium.org>