Log

Author Commit Date CI Message
Kimmo Kinnunen f507fe05 2023-04-06T12:27:00 Rename PLATFORM_IOS to PLATFORM_IOS_FAMILY The current define ANGLE_PLATFORM_IOS actually means "iOS or tvOS or WatchOS or MacCatalyst". The current define ANGLE_PLATFORM_WATCHOS means nothing. The current define ANGLE_PLATFORM_APPLETV means nothing. Replace PLATFORM_IOS and its uses with PLATFORM_IOS_FAMILY, so that then PLATFORM_IOS can be reintroduced and others can be fixed. Replace PLATFORM_IOS_SIMULATOR and its uses with PLATFORM_IOS_FAMILY_SIMULATOR for consistency. Use consistent `#if X` notation instead of `#if defined(X)`. Bug: angleproject:8121 Change-Id: Ibe668c2ae9bb801d15e036fcf1dfd53f22c30787 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4404161 Reviewed-by: Dan Glastonbury <djg@apple.com> Reviewed-by: Kenneth Russell <kbr@chromium.org> Commit-Queue: Kimmo Kinnunen <kkinnunen@apple.com>
Kimmo Kinnunen c19b66f6 2023-04-06T11:30:03 EAGL: Define ANGLE_ENABLE_EAGL in build system ANGLE_ENABLE_EAGL is a "build system" decision. Set this and new variable ANGLE_ENABLE_CGL in BUILD.gn file. This is consistent with the other backends. Remove ANGLE_CPU_ARM64. This was used to do ANGLE_ENABLE_EAGL=TRUE when on Catalyst. Instead, let the build system set this. For ANGLE/Chrome buildsystem, this is not set, as Catalyst is not implemented. For WebKit, this should be set at WebKit build settings. Replace `defined(ANGLE_PLATFORM_MACCATALYST) && defined(ANGLE_CPU_ARM64)` with simpler expression: `defined(ANGLE_ENABLE_EAGL)`. Replace `defined(ANGLE_PLATFORM_MACOS) || defined(ANGLE_PLATFORM_IOS)` with simpler expression: `defined(ANGLE_PLATFORM_APPLE)`. Bug: angleproject:8121 Change-Id: I3a0bbabb4347ad11f693e3f7c336ff12f66203d7 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4404160 Commit-Queue: Kimmo Kinnunen <kkinnunen@apple.com> Reviewed-by: Dan Glastonbury <djg@apple.com> Reviewed-by: Kenneth Russell <kbr@chromium.org>
angle-autoroll 45d82155 2023-04-12T07:00:55 Roll Chromium from d579bce09fab to 86be736f34ce (558 revisions) https://chromium.googlesource.com/chromium/src.git/+log/d579bce09fab..86be736f34ce If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/chromium-angle-autoroll Please CC angle-team@google.com,ynovikov@google.com on the revert to ensure that a human is aware of the problem. To file a bug in Chromium: https://bugs.chromium.org/p/chromium/issues/entry To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry To report a problem with the AutoRoller itself, please file a bug: https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug Documentation for the AutoRoller is here: https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md Changed dependencies * build: https://chromium.googlesource.com/chromium/src/build.git/+log/6cd5122674..5a74261ac4 * buildtools: https://chromium.googlesource.com/chromium/src/buildtools.git/+log/43aa99b75a..544591b9da * buildtools/third_party/libc++/trunk: https://chromium.googlesource.com/external/github.com/llvm/llvm-project/libcxx.git/+log/ff2fcdb345..4156a29aab * buildtools/third_party/libc++abi/trunk: https://chromium.googlesource.com/external/github.com/llvm/llvm-project/libcxxabi.git/+log/1f7578b29e..695316e1aa * buildtools/third_party/libunwind/trunk: https://chromium.googlesource.com/external/github.com/llvm/llvm-project/libunwind.git/+log/270ace3476..54cb62e9f8 * testing: https://chromium.googlesource.com/chromium/src/testing/+log/ee672b98bb..1a0760c1b1 * third_party/android_sdk: https://chromium.googlesource.com/chromium/src/third_party/android_sdk/+log/cac1c86a35..2f8d9cdc42 * third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/{catapult_..f3dcf7aaad * third_party/depot_tools: https://chromium.googlesource.com/chromium/tools/depot_tools.git/+log/a73a249737..a896d5a92c * third_party/fuchsia-sdk/sdk: version:12.20230411.0.1..version:12.20230412.0.1 * third_party/zlib: https://chromium.googlesource.com/chromium/src/third_party/zlib/+log/610cec5744..14dd4c4455 * tools/clang: https://chromium.googlesource.com/chromium/src/tools/clang.git/+log/b41889a33f..3d2605555b * tools/perf: https://chromium.googlesource.com/chromium/src/tools/perf/+log/66b61ae669..0d91892c61 No update to Clang. Bug: None Tbr: ynovikov@google.com Change-Id: Ifa4bc12f24fa2a990cb6231ab9706dac9112a1d2 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4417316 Bot-Commit: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com> Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
Charlie Lao 459f0fad 2023-04-06T13:42:49 Vulkan: Force submit when switch to system framebuffer draw Given recent finding on unnecessary wait for acquire image semaphore, since the semaphore wait is per submission, any GPU will have this same performance problem if we only do command submit per frame. This CL forces submission when we switch draw framebuffer to system default framebuffer, so that the semaphore wait will not block user's fbo rendering. Bug: b/275624771 Change-Id: Id6b941870ef296393c13d0daaf81a41b6c042b9a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4406882 Reviewed-by: Yuxin Hu <yuxinhu@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Charlie Lao <cclao@google.com>
Charlie Lao d58fbf04 2023-04-05T12:32:09 Vulkan: Wait for surface ANI semaphore only if image is used Right now there is a bug that surface's ANI semaphore is added to context when WindowSurfaceVk::getAttachmentRenderTarget get called, which gets called from FramebufferVk::syncState, which is before we end the previous render pass, due to the endRenderpass usually is deferred until next renderPass starts. This caused ANI semaphore gets added to the previous render pass's submission, which does not use surface, and thus a bubble in GPU execution pipeline where the user FBO rendering gets unnecessarily blocked until ANI semaphore is signaled. This lowers GPU utilization and thus GPU frequency gets dropped and frame time increased. This CL stores ANI semaphore to ImageHelper object and when barrier is generated, the ANI semaphore is moved to CommandBuffer. When CommandBuffer gets flushed and submitted, it gets added to the waitSemaphores vector and submitted to vulkan. Since all use of swap chain image must go through barrier code first (you need at least change layout), this ensures ANI semaphore gets waited in exact and robust way. Only the submission that references the swap chain image will be waited. With this CL, professional_baseball_spirits reduces frame time from 3.8 ms to 2.7 ms, achieving parity with native GLES on pixel 7 pro. Bug: b/275624771 Change-Id: Ifa6cacf9e3bc147bfde54eb7def2fca48c50aca0 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4400011 Reviewed-by: Yuxin Hu <yuxinhu@google.com> Commit-Queue: Charlie Lao <cclao@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Jamie Madill f093a9b3 2023-04-11T18:09:00 Trace Interpreter: Support gClientArrays Needed to run cut_the_rope, fishdom, other traces. Add cut_the_rope and fishdom to interpreter CI. CL cloned from https://crrev.com/c/4178021 Bug: b/276742336 Change-Id: If7da78ba3fd7c19262692d1386c5eaa47df2ca6c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4415246 Reviewed-by: Cody Northrop <cnorthrop@google.com> Auto-Submit: Roman Lavrov <romanl@google.com> Commit-Queue: Roman Lavrov <romanl@google.com>
Cody Northrop 3dd79798 2023-04-07T12:57:05 GLES1: Convert ints to uints for mediump values Mobile drivers are limiting mediump values to 16 bits, which follows the GLSL spec. Our shader was using signed mediump ints for enum values. That limits their value range to [-2^15, 2^15-1], which is [-32768, 32767]. We started failing tests that use TexEnv mode GL_COMBINE (0x8570) which converts to 34160 in decimal, exceeding the range. This translated to a failure to switch on envMode in textureFunction. To fix, convert all the mediump ints in the shader to mediump uints. Test: GLES1ConformanceTest.TexCombine/ES1_Vulkan Test: angle_trace_tests --gtest_filter="*wayward_souls*" Bug: b/277220840 Change-Id: I5219fe1e725c80929906aee3eebd0729a2a29a9b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4409684 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Roman Lavrov cef7dcbf 2023-04-11T16:12:12 Trace Interpreter: support harry_potter_hogwarts_mystery Handling of calls like: glGetBooleanv(GL_DEPTH_WRITEMASK, (GLboolean *)gReadBuffer); glGetFloatv(GL_DEPTH_CLEAR_VALUE, (GLfloat *)gReadBuffer); Add interpreted test to CI. Bug: b/276742336 Change-Id: Iae3ff9035044461ca1a208980c170d5d48d1a424 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4416166 Commit-Queue: Roman Lavrov <romanl@google.com> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Charlie Lao 65ed3050 2023-04-04T11:57:38 Vulkan: Let recordWriteBarrier use CommandBufferHelper This is preparation for next CL. It changes OutsideRenderPassCommandBuffer argument to OutsideRenderPassCommandBufferHelper for recordWriteBarrier() and recordReadBarrier() calls, so that it has access to the helper object (will be used in next CL). It passes CommandsState to executeBarriers() instead of PrimaryCommandBuffer. No actual functionality change is expected. Bug: b/275624771 Change-Id: Ia06a0398a127539b0b642005803a498cb2a9d7f1 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4400407 Commit-Queue: Charlie Lao <cclao@google.com> Reviewed-by: Yuxin Hu <yuxinhu@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Roman Lavrov 006fb7b6 2023-04-11T14:29:15 Avoid "KeyError: 'exit_code'" error in failed shard detection Apparently there are cases where a shard is broken but exit_code is not present in json. Example build: https://ci.chromium.org/ui/p/angle/builders/ci/android-pixel4-perf/4038/overview Bug: chromium:1346781 Change-Id: I7ee5b8cac5da3123e5b57b3bca393db12ce8921a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4414233 Commit-Queue: Roman Lavrov <romanl@google.com> Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Charlie Lao 20f875f8 2023-04-05T09:47:46 Vulkan: Add commandQueueWaitSemaphoresTotal perf counter This counts total number of wait semaphores we submitted. This will be used to write test to ensure that we insert wait semaphores properly in future CLs. Bug: b/275624771 Change-Id: I5b8e209500ff553617f6b30c2f8b4626d29c0e6a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4400823 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Yuxin Hu <yuxinhu@google.com> Commit-Queue: Charlie Lao <cclao@google.com>
Yuly Novikov ceaa0763 2023-04-11T17:26:36 Fix UWP build Reset 'build' to before crrev.com/c/4394309 Bug: None Change-Id: I32fec1741d37ccdf09707786055fc4154feed002 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4414482 Reviewed-by: Roman Lavrov <romanl@google.com> Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Roman Lavrov 080d4adf 2023-04-11T13:59:05 Set target_sdk_version to 33 instead of system_current Follow up on https://crrev.com/c/4414227 which fails to roll into Android: https://r.android.com/2530860 (invalid version in sdk_version "system_current") Bug: b/275459680 Change-Id: I1603fdee4dfffaf80591b0ec2d3700a5e639cfc4 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4414232 Reviewed-by: Kaiyi Li <kaiyili@google.com> Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Roman Lavrov <romanl@google.com>
Kimmo Kinnunen a4341e04 2023-04-06T11:05:07 CGL: Remove the impl preprocessor guards Adhere to the project formatting: - Remove #if preprocessor guards from the CGL implementation. - Order the includes as in style guide - Use include / import consistently - Move GLES_SILENCE_DEPRECIATION into .gn, similar to CGL - Remove or add platform.h include based on whether the file itself actually the platform.h defined macros Simplifies the nested preprocessor macros. Makes it simpler to further fix the preprocessor use. WebKit should instead have a non-ANGLE .mm file #importing the implementations with the proper include guards. Moves macOS specific APIs from SystemInfo.h to SystemInfo_internal.h, since common/platform.h is not available for Chrome clients of SystemInfo.h Bug: angleproject:8121 Change-Id: Iaef0d6948fbcef6d1c2e7877477d25ccc259cc2c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4404159 Reviewed-by: Dan Glastonbury <djg@apple.com> Reviewed-by: Kenneth Russell <kbr@chromium.org> Commit-Queue: Kenneth Russell <kbr@chromium.org>
Yiwei Zhang 854264e3 2023-04-11T06:18:44 Vulkan: enable precisionSafeDivision for venus ..otherwise the legacy org.skia.skqp.SkQPRunner#gles_xfermodes2 SkQP cts will fail across our host Vulkan implementations: mali, anv, radv, tu. Btw, radv has been lucky due to the existing isAMD condition satisfied. Bug: b/274528004 Change-Id: I39debe4e58d8afff0671809ac19cf9be8637f73e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4413212 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Auto-Submit: Yiwei Zhang <zzyiwei@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Roman Lavrov f0848fc5 2023-04-11T10:17:48 Move targetSdkVersion to Android.bp and set to system_current Also adds android:exported="true" which is required for newer SDKs. Bug: b/275459680 Change-Id: I8ae5b67c1d3ccca867139fc1d9043308e03ffb6c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4414227 Reviewed-by: Cody Northrop <cnorthrop@google.com> Auto-Submit: Roman Lavrov <romanl@google.com>
angle-autoroll bf11a801 2023-04-11T09:39:14 Roll Chromium from 837a7f0f9df1 to d579bce09fab (439 revisions) https://chromium.googlesource.com/chromium/src.git/+log/837a7f0f9df1..d579bce09fab If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/chromium-angle-autoroll Please CC angle-team@google.com,ynovikov@google.com on the revert to ensure that a human is aware of the problem. To file a bug in Chromium: https://bugs.chromium.org/p/chromium/issues/entry To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry To report a problem with the AutoRoller itself, please file a bug: https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug Documentation for the AutoRoller is here: https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md Changed dependencies * build: https://chromium.googlesource.com/chromium/src/build.git/+log/00bbfdfba0..ea62e8acd6 * buildtools: https://chromium.googlesource.com/chromium/src/buildtools.git/+log/64174283d0..43aa99b75a * buildtools/third_party/libc++/trunk: https://chromium.googlesource.com/external/github.com/llvm/llvm-project/libcxx.git/+log/049d48aa99..ff2fcdb345 * buildtools/third_party/libc++abi/trunk: https://chromium.googlesource.com/external/github.com/llvm/llvm-project/libcxxabi.git/+log/b076ad359c..1f7578b29e * buildtools/third_party/libunwind/trunk: https://chromium.googlesource.com/external/github.com/llvm/llvm-project/libunwind.git/+log/2868dcda2b..270ace3476 * testing: https://chromium.googlesource.com/chromium/src/testing/+log/e7cf8e76e3..ee672b98bb * third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/{catapult_..2325df226e * third_party/depot_tools: https://chromium.googlesource.com/chromium/tools/depot_tools.git/+log/019e73a13b..a73a249737 * third_party/fuchsia-sdk/sdk: version:12.20230409.3.1..version:12.20230411.0.1 * third_party/turbine: epnqx7Yf9QxgyDaU87KJ1fLQvdZ_Mho_JjfpjmIBYWYC..j0GanRK31QhKNs04PYT0D3ls32n6IrjrAL8bR4dv9jMC * third_party/zlib: https://chromium.googlesource.com/chromium/src/third_party/zlib/+log/b890619bc2..610cec5744 * tools/clang: https://chromium.googlesource.com/chromium/src/tools/clang.git/+log/93fb1d6ad4..b41889a33f No update to Clang. Bug: None Tbr: ynovikov@google.com Change-Id: I6209e2cef753bbe0e1fba4abdf2b0843d61eff07 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4413653 Bot-Commit: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com> Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
angle-autoroll 0059667f 2023-04-10T10:01:17 Roll SwiftShader from e621934caf42 to 8ef6045b0a23 (3 revisions) https://swiftshader.googlesource.com/SwiftShader.git/+log/e621934caf42..8ef6045b0a23 2023-04-07 natsu@google.com Undef i386 builtin to avoid collision with LLVM namespace 2023-04-07 natsu@google.com Remove HAVE_MALLINFO2 from Android LLVM16 config 2023-04-07 jif@google.com Reduce the number of files built in LLVM 16 If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/swiftshader-angle-autoroll Please CC angle-team@google.com,syoussefi@google.com on the revert to ensure that a human is aware of the problem. To file a bug in SwiftShader: https://bugs.chromium.org/p/swiftshader/issues/entry To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry To report a problem with the AutoRoller itself, please file a bug: https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug Documentation for the AutoRoller is here: https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md Bug: None Tbr: syoussefi@google.com Use-Permissive-Angle-Pixel-Comparison: True Change-Id: Ieff24411d188b1c8ada1d94a233721bcfa85a267 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4409799 Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com> Bot-Commit: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
angle-autoroll c8b32849 2023-04-10T08:52:14 Roll Chromium from 8701b5ed1d64 to 837a7f0f9df1 (574 revisions) https://chromium.googlesource.com/chromium/src.git/+log/8701b5ed1d64..837a7f0f9df1 If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/chromium-angle-autoroll Please CC angle-team@google.com,syoussefi@google.com on the revert to ensure that a human is aware of the problem. To file a bug in Chromium: https://bugs.chromium.org/p/chromium/issues/entry To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry To report a problem with the AutoRoller itself, please file a bug: https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug Documentation for the AutoRoller is here: https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md Changed dependencies * build: https://chromium.googlesource.com/chromium/src/build.git/+log/c43c0192b6..00bbfdfba0 * buildtools: https://chromium.googlesource.com/chromium/src/buildtools.git/+log/64c9f314b8..64174283d0 * buildtools/third_party/libc++/trunk: https://chromium.googlesource.com/external/github.com/llvm/llvm-project/libcxx.git/+log/ab37483b42..049d48aa99 * buildtools/third_party/libunwind/trunk: https://chromium.googlesource.com/external/github.com/llvm/llvm-project/libunwind.git/+log/041196414a..2868dcda2b * testing: https://chromium.googlesource.com/chromium/src/testing/+log/be2d6d3f7a..e7cf8e76e3 * third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/{catapult_..fdeb9d47a8 * third_party/depot_tools: https://chromium.googlesource.com/chromium/tools/depot_tools.git/+log/bf6e21d9d7..019e73a13b * third_party/fuchsia-sdk/sdk: version:12.20230406.3.1..version:12.20230409.3.1 * tools/mb: https://chromium.googlesource.com/chromium/src/tools/mb/+log/89a6caa12c..26ed975357 * tools/perf: https://chromium.googlesource.com/chromium/src/tools/perf/+log/3d8a315223..66b61ae669 No update to Clang. Bug: None Tbr: syoussefi@google.com Change-Id: Ie1513ea1fe724f66e4e9b2695c82baa536b178ae Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4410571 Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com> Bot-Commit: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
Amirali Abdolrashidi 23ec0620 2023-03-23T09:51:53 Vulkan: Add more data to blob cache header This is to potentially increase blob cache robustness against collisions and partially modified data. This CL adds 7 bytes per chunk (8 bytes in total). During decompression, the data will be checked in order to determine if the cache data can be used. * Added chunk index to the header. (1 byte) * Added CRC16 of the compressed data to the header. (2 bytes) * Added the original (uncompressed) data size to the header. (4 bytes) * Moved kBlobHeaderSize to the anonymous namespace. * Added the following GN flag to enable CRC calculation for the cache. * angle_enable_crc_for_pipeline_cache (only available in debug mode) * Corresponds to kEnableCRCForPipelineCache. * When it is false, the CRC is set to 0. Bug: b/246683126 Change-Id: I9aaf9cda52e0af07a2e1c2d0c39aca407e515701 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4378717 Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com> Reviewed-by: Charlie Lao <cclao@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
angle-autoroll ed4851c1 2023-04-07T10:01:58 Roll SwiftShader from 3ecab9c1aa60 to e621934caf42 (1 revision) https://swiftshader.googlesource.com/SwiftShader.git/+log/3ecab9c1aa60..e621934caf42 2023-04-06 jif@google.com Add configs/darwin for LLVM 16 If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/swiftshader-angle-autoroll Please CC angle-team@google.com,syoussefi@google.com on the revert to ensure that a human is aware of the problem. To file a bug in SwiftShader: https://bugs.chromium.org/p/swiftshader/issues/entry To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry To report a problem with the AutoRoller itself, please file a bug: https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug Documentation for the AutoRoller is here: https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md Bug: None Tbr: syoussefi@google.com Use-Permissive-Angle-Pixel-Comparison: True Change-Id: I2b0ce4830d93e746cc239ecff3336f22cff552b9 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4408114 Bot-Commit: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com> Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
angle-autoroll 9896bd25 2023-04-07T07:01:42 Roll Chromium from 7c7c08cd1e65 to 8701b5ed1d64 (1013 revisions) https://chromium.googlesource.com/chromium/src.git/+log/7c7c08cd1e65..8701b5ed1d64 If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/chromium-angle-autoroll Please CC angle-team@google.com,syoussefi@google.com on the revert to ensure that a human is aware of the problem. To file a bug in Chromium: https://bugs.chromium.org/p/chromium/issues/entry To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry To report a problem with the AutoRoller itself, please file a bug: https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug Documentation for the AutoRoller is here: https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md Changed dependencies * build: https://chromium.googlesource.com/chromium/src/build.git/+log/6cd5122674..c43c0192b6 * buildtools: https://chromium.googlesource.com/chromium/src/buildtools.git/+log/3ee69a5c6b..64c9f314b8 * buildtools/linux64: git_revision:41fef642de70ecdcaaa26be96d56a0398f95abd4..git_revision:ffeea1b1fd070cb6a8d47154a03f8523486b50a7 * buildtools/mac: git_revision:41fef642de70ecdcaaa26be96d56a0398f95abd4..git_revision:ffeea1b1fd070cb6a8d47154a03f8523486b50a7 * buildtools/third_party/libc++abi/trunk: https://chromium.googlesource.com/external/github.com/llvm/llvm-project/libcxxabi.git/+log/4a9d0560b4..b076ad359c * buildtools/third_party/libunwind/trunk: https://chromium.googlesource.com/external/github.com/llvm/llvm-project/libunwind.git/+log/f3464caa6a..041196414a * buildtools/win: git_revision:41fef642de70ecdcaaa26be96d56a0398f95abd4..git_revision:ffeea1b1fd070cb6a8d47154a03f8523486b50a7 * testing: https://chromium.googlesource.com/chromium/src/testing/+log/fc82a81efd..be2d6d3f7a * third_party/abseil-cpp: https://chromium.googlesource.com/chromium/src/third_party/abseil-cpp/+log/20c8ae002d..6d2ed7db89 * third_party/android_deps: https://chromium.googlesource.com/chromium/src/third_party/android_deps/+log/c17c192772..4c3b803ac6 * third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/{catapult_..d52492be20 * third_party/depot_tools: https://chromium.googlesource.com/chromium/tools/depot_tools.git/+log/61ebd177ab..bf6e21d9d7 * third_party/fuchsia-sdk/sdk: version:12.20230330.3.1..version:12.20230406.3.1 * third_party/r8: GcQ-oelMmVQMKFpvjCNroGxPCOnapQAHbIqjjSymmCAC..ItqtrDm-XZNQVaHFUexhSZ_ziQ5Ukb_9gGMJKggWKnEC * tools/clang: https://chromium.googlesource.com/chromium/src/tools/clang.git/+log/bfdd61e670..93fb1d6ad4 * tools/luci-go: git_revision:3569ebf36f17a991aa4d26fd6e228cdf6e664d13..git_revision:8ed1f3ebaa59594f4b1abbd328296a963980e954 * tools/luci-go: git_revision:3569ebf36f17a991aa4d26fd6e228cdf6e664d13..git_revision:8ed1f3ebaa59594f4b1abbd328296a963980e954 * tools/mb: https://chromium.googlesource.com/chromium/src/tools/mb/+log/1dd674253d..89a6caa12c * tools/perf: https://chromium.googlesource.com/chromium/src/tools/perf/+log/ce36cf1401..3d8a315223 * tools/skia_goldctl/linux: CHIKK9YvBNPOM_lAlqkfs4dTTbM6I-AKggA94sfc5PoC..y04vBcUng4cuZXM_5xxEsZ8_KOmj9oYhYDZxq-2JSAQC * tools/skia_goldctl/mac_amd64: Gwb7laBBhkBhwP1nIoAb1EwklQ5sEon7g7r76v7jAasC..rd2HyD3fto681CN-haug5Kv82Ep2Ah-HXO1nYSyYyb8C * tools/skia_goldctl/mac_arm64: 432GgeQWQIAz1NADw1ssxRVYDIKzNs1i3tKIITtxDdcC..vEYFIuZPZzXBkufwaCf_-MK5HpKVoyyZtRik7WLygoAC * tools/skia_goldctl/win: aW-NZ8C8eVMaPmBAILqVE-mOxYdoUXfiDHShsTeZMwkC..5HtHEYI8MUjySHqpU8-ewiaPfNEVcY0SamdPah6R0CYC No update to Clang. Bug: None Tbr: syoussefi@google.com Change-Id: Icda8068dbb905f3e738fb203f3a7e66d29d81e5a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4408366 Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com> Bot-Commit: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
Kimmo Kinnunen cfc21f23 2023-04-06T18:39:26 Fix GetCurrentThreadUniqueId on Release APPLE Fix GetCurrentThreadUniqueId on Release builds of ANGLE_PLATFORM_APPLE. Code inside ASSERT() is discarded when compiling on Release. Instead, create the pthread per-thread keys outside ASSERTs and just assert the results. Bug: angleproject:8122 Change-Id: I89b7bd66f4346a94ec5c67eedda637f012ba7ff6 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4406215 Reviewed-by: Kenneth Russell <kbr@chromium.org> Auto-Submit: Kimmo Kinnunen <kkinnunen@apple.com> Reviewed-by: Dan Glastonbury <djg@apple.com> Commit-Queue: Kenneth Russell <kbr@chromium.org>
Kimmo Kinnunen 79a2f7e4 2023-04-06T10:42:19 EAGL: Remove the impl preprocessor guards Adhere to the project formatting: - Remove #if preprocessor guards from the EAGL implementation. - Order the includes as in style guide - Use include / import consistently - Move GLES_SILENCE_DEPRECIATION into .gn, similar to CGL - Remove or add platform.h include based on whether the file itself actually the platform.h defined macros Simplifies the nested preprocessor macros. Makes it simpler to further fix the preprocessor use. WebKit should instead have a non-ANGLE .mm file #importing the implementations with the proper include guards. Bug: angleproject:8121 Change-Id: I775bedd048fe3382f873abffb693f130f6104c5c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4404158 Auto-Submit: Kimmo Kinnunen <kkinnunen@apple.com> Commit-Queue: Kenneth Russell <kbr@chromium.org> Reviewed-by: Dan Glastonbury <djg@apple.com> Reviewed-by: Kenneth Russell <kbr@chromium.org>
Geoff Lang 36296928 2023-03-31T16:44:35 Mark RGBX and BGRX formats as having 8 unused bits. This makes sure that pixelBytes ends up being 4 and fixes potential buffer size validation. Fix EGL configs using pixelBytes to compute EGL_BUFFER_SIZE which is not supposed to include unused bits. This is covered by dEQP-EGL.functional.query_config.constraints.color_buffer_size Bug: chromium:1404790 Change-Id: I47a6e825f3b47501fd0984c21554c394fef32eb6 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4390022 Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Yuxin Hu <yuxinhu@google.com> Commit-Queue: Geoff Lang <geofflang@chromium.org>
Igor Nazarov be3d7e6b 2023-03-30T14:35:18 Remove redundant g_SurfaceMutex. This mutex become redundant after recent CL: https://chromium.googlesource.com/angle/angle/+/23ad4fa2be35aed303cbb8c2d632a04714354ef0 Don't hold global surface lock during AcquireNextImage Every place in the code where `ANGLE_SCOPED_GLOBAL_SURFACE_LOCK()` is used also uses `ANGLE_SCOPED_GLOBAL_LOCK()`. Bug: angleproject:6851 Change-Id: I464b6ca74743c9ee9fa23caad216f0e26c480655 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4385293 Commit-Queue: Igor Nazarov <i.nazarov@samsung.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Charlie Lao <cclao@google.com>
Geoff Lang 1e9182a5 2023-04-05T12:54:30 Disable staged uploads to packed texture formats on AMD. The same formats are having upload failures on AMD drivers. Bug: chromium:1430857 Change-Id: I8364d5646ff6811db09710ac27d2ac0f6dfdc116 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4401891 Reviewed-by: Austin Eng <enga@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org>
Alexey Knyazev f33c16e3 2023-03-27T00:00:00 Add SampleVariablesTest * Increased required OpenGL context version to 4.2 to disable the extension on older platforms that do not pass the tests. Bug: angleproject:8097 Change-Id: I9158d895f0b0ec80db2516cc126e89ff5da753e1 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4401931 Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com> Reviewed-by: Kenneth Russell <kbr@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
angle-autoroll 9f430130 2023-04-05T13:53:20 Manual roll Chromium from 198e6d1c360e to 7c7c08cd1e65 (1326 revisions) Manual roll requested by syoussefi@google.com https://chromium.googlesource.com/chromium/src.git/+log/198e6d1c360e..7c7c08cd1e65 If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/chromium-angle-autoroll Please CC angle-team@google.com,syoussefi@google.com on the revert to ensure that a human is aware of the problem. To file a bug in Chromium: https://bugs.chromium.org/p/chromium/issues/entry To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry To report a problem with the AutoRoller itself, please file a bug: https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug Documentation for the AutoRoller is here: https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md Changed dependencies * build: https://chromium.googlesource.com/chromium/src/build.git/+log/b3fc6af816..6cd5122674 * buildtools: https://chromium.googlesource.com/chromium/src/buildtools.git/+log/cb5d17004e..3ee69a5c6b * testing: https://chromium.googlesource.com/chromium/src/testing/+log/124d121ec0..fc82a81efd * third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/{catapult_..561451ff1d * third_party/depot_tools: https://chromium.googlesource.com/chromium/tools/depot_tools.git/+log/401f0f6e43..61ebd177ab * third_party/fuchsia-sdk/sdk: version:12.20230402.3.1..version:12.20230330.3.1 * third_party/zlib: https://chromium.googlesource.com/chromium/src/third_party/zlib/+log/5edb52d430..b890619bc2 * tools/clang: https://chromium.googlesource.com/chromium/src/tools/clang.git/+log/f686247260..bfdd61e670 * tools/mb: https://chromium.googlesource.com/chromium/src/tools/mb/+log/45fb5a967f..1dd674253d * tools/perf: https://chromium.googlesource.com/chromium/src/tools/perf/+log/18e0d7aac4..ce36cf1401 No update to Clang. Bug: None Tbr: syoussefi@google.com Change-Id: Ie126f96a0866764f889e734b8b92c3f4236805bf Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4403131 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Bot-Commit: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
Igor Nazarov 9a2ef389 2023-04-04T14:57:09 Vulkan: Minor protected submitCommands() optimization. Bug: angleproject:3965 Change-Id: I52a7597f1dd3bdaf4a221c6b6338caa1577c08f9 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4392876 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Charlie Lao <cclao@google.com> Commit-Queue: Igor Nazarov <i.nazarov@samsung.com>
Ian Vollick 9199e77d 2023-03-30T17:25:33 [ios] simulator fixes for angle_unittests Disables some tests that do not currently work in the iOS simulator. Bug: angleproject:8116 Change-Id: I66bb9a6e2a5d10a567824e9fac163e7fd6b6a474 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4393495 Reviewed-by: Kenneth Russell <kbr@chromium.org> Commit-Queue: Kenneth Russell <kbr@chromium.org>
Shahbaz Youssefi 8b79410b 2023-04-02T22:25:12 Vulkan: Treat readonly SSBOs as readonly! Instead of assuming SSBOs are always written to, this change adds plumbing for the backend to know when an SSBO is declared readonly and marks the buffer readonly accordingly. With this change, BufferVk can optimize uploads and copies to and from the buffer with the knowledge that it can be safely mapped on the CPU for read while it's being used by the GPU. Bug: b/276002151 Change-Id: I75342148c07949a83436054a738395bbd88caec5 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4392720 Reviewed-by: Charlie Lao <cclao@google.com> Reviewed-by: Yuxin Hu <yuxinhu@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Shahbaz Youssefi 25e60197 2023-03-31T14:17:26 Vulkan: Unify buffer alloc strategy for uploads and GPU copies With this change, glCopyBufferSubData uses the same buffer allocation strategy as glBufferSubData. Only exception is with buffer self-copies which never allocate a new buffer for simplicity. Additionally, this change allows glCopyBufferSubData to be done on the CPU if possible, i.e. if the source buffer is not being written to by the GPU and whenever the equivalent glBufferSubData would have used a CPU upload. Bug: b/276002151 Change-Id: Ice8df5891c5516b148245d5d6fa9b19b787df4ce Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4390023 Reviewed-by: Charlie Lao <cclao@google.com> Reviewed-by: Yuxin Hu <yuxinhu@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Maksim Sisov 746798b2 2023-03-31T11:35:33 Allocate buffer via malloc for demangle. abi::__cxa_demangle requires that the output buffer passed for demangling is malloced according to the documentation as (quote) - "If output_buffer is not long enough, it is expanded using realloc". Not doing that results in raising exceptions and calling the angle's exception handler recursively many times. That results in a huge stacktrace as a result, which is printed until the program is terminated. Bug: angleproject:8111 Change-Id: I7ddd1a623b55fef2c8b15f40136312dd0ff4ccaf Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4386396 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Roman Lavrov b49f9520 2023-04-03T18:11:04 Trace Interpreter: Improve ReadFileToString performance. Shaves off ~1s (~15%) from ~7.5s parse time on Panther for minecraft_bedrock trace. Switches the stream to std::ios::binary so on Windows the caller will need to handle \r\n Bug: b/276742336 Change-Id: I0c14e76168763875da60a0fdefb879859b0b3d0c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4392894 Commit-Queue: Roman Lavrov <romanl@google.com> Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Roman Lavrov b30c05de 2023-04-04T09:36:28 Trace Interpreter: Add #include <algorithm> ANGLE-Dawn roll failed with: error: no member named 'lower_bound' in namespace 'std' Bug: b/276742336 Change-Id: Ife3d83aaa2b9f29f3750e880a12dfccf3f8fe915 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4391765 Auto-Submit: Roman Lavrov <romanl@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Charlie Lao 41f0a321 2023-04-03T21:58:43 Revert "Vulkan: Reactivate already started render pass when possible" This reverts commit ad9537af7f2bb5e22bc73f4e833fd3789adaa217. Reason for revert: Suspected cause for flakiness. anglebug.com/8118 Original change's description: > Vulkan: Reactivate already started render pass when possible > > In some usage case (such as lineage_mobile), we are seeing in the middle > of render pass, app switch to another fbo just to issue a glClear() > call, which the clear call itself gets deferred. Application then switch > back to the original frame buffer. Before this CL, the render pass gets > recreated due to frame buffer binding change, even though the clear gets > deferred and new render pass and the previous render pass are > essentially the same. This CL detects this situation and reactivate the > current render pass instead of creating a new one. With this CL, > lineage_m app trace reduces frame time from 3.86ms to 3.7ms, and only > one render pass is used instead of two. > > This CL also allows the render pass started by BlitFramebuffer reused by > subsequent draw calls. Asphalt_9 is hitting this use pattern and this CL > reduces frame time by 0.1245 ms (from 5.6203 ms to 5.4958 on pixel 7 > pro) > > Bug: b/273808966 > Change-Id: I48c2671cbef3ff9d6cf59caae88c37c77828ee07 > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4348713 > Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com> > Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> > Commit-Queue: Charlie Lao <cclao@google.com> Bug: b/273808966 Change-Id: I81cc2dcacb52466808b2ccf5819feda466c39fc5 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4396502 Reviewed-by: Charlie Lao <cclao@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Auto-Submit: Charlie Lao <cclao@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
angle-autoroll 6a94ed77 2023-04-04T10:01:35 Roll vulkan-deps from e671d7c87d3b to ec231c69caa6 (6 revisions) https://chromium.googlesource.com/vulkan-deps.git/+log/e671d7c87d3b..ec231c69caa6 Changed dependencies: * glslang: https://chromium.googlesource.com/external/github.com/KhronosGroup/glslang.git/+log/f8a2442a16..77f7cdfb1e * spirv-tools: https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools.git/+log/6b72fe20c5..ac335c7634 * vulkan-validation-layers: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-ValidationLayers.git/+log/67e4c7f87b..21078b582d If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/vulkan-deps-angle-autoroll Please CC angle-team@google.com,syoussefi@google.com on the revert to ensure that a human is aware of the problem. To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry To report a problem with the AutoRoller itself, please file a bug: https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug Documentation for the AutoRoller is here: https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md Bug: None Tbr: syoussefi@google.com Change-Id: I241a56c924f374c6330c744c8aa431a93532a33d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4397636 Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com> Bot-Commit: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
Shahbaz Youssefi 3aea3cfd 2023-04-03T16:38:29 Vulkan: Workaround depth bias constant factor on ANV Bug: b/249380591 Change-Id: Iaeda7faf5eb40e0e2086674d3e63bf5bc9911ab4 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4392893 Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com> Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org> Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Roman Lavrov c723d71f 2023-04-03T16:17:01 Trace Interpreter: Improve StringToGLenum performance. Binary search instead of linear. This gets called a lot when parsing traces to be run by the trace interpreter. I saw ~37 seconds parse time on Panther for minecraft_bedrock trace, this CL makes that ~5 times faster. Bug: b/276742336 Change-Id: Ide32c247b327f36c00f26951a90e4412d71db2b6 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4392892 Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Roman Lavrov <romanl@google.com>
Charlie Lao 96cda1ac 2023-03-31T15:08:11 Vulkan: Switch to modified framebuffer should trigger submit The feature flag preferSubmitAtFBOBoundary intended to trigger submitCommands call when FBO is switched. Right now there is a bug that when FBO is switched, submitCommands did not get called even if feature is enabled. The reason is that when framebuffer changed, we first get FramebufferVk::syncState call, and if the FBO that we switched to is drity, we will end up calling ContextVk::flushCommandsAndEndRenderPass to immediate end the render pass. The problem with that is that later on when we get to ContextVk::syncState and saw DIRTY_BIT_DRAW_FRAMEBUFFER_BINDING dirty bit and try to issue a submit, we notice render pass already ended, so mHasDeferredFlush never gets set, which means we never call submitCommands. All apps render to system framebuffer in the last render pass, and system framebuffer is always dirty due to swap chain image rotation, we hit this almost with every app. This CL avoid flushCommandsAndEndRenderPass() call from FramebufferVk::syncState. We now relies on ContextVk::onFramebufferChanged (which calls onRenderPassFinished() which will set DIRTY_RENDER_PASS bit to trigger deferred endRenderPass) to end the current render pass. This CL also add a regression test to ensure the submit indeed occur. Bug: b/275624771 Change-Id: I92b95a7a6c435f242d6684cb7852172cf41896c3 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4390642 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Charlie Lao <cclao@google.com> Reviewed-by: Roman Lavrov <romanl@google.com>
Shahbaz Youssefi c5e9de23 2023-04-03T15:14:03 Revert "Vulkan: Use midRenderPass clear if RP has started but inactive" This reverts commit 98151770adfd990c533991da27615b4879494307. Reason for revert: Suspected cause for flakiness. anglebug.com/8118 Original change's description: > Vulkan: Use midRenderPass clear if RP has started but inactive > > This CL extends prior CL's optimization so that if clear is issued right > after blitFramebuffer call (this could make sense if blit and clear are > on different buffer), we can keep the started render pass and do the > midRenderPass clear instead of endRenderPass and start another > renderPass. > > Bug: b/273808966 > Change-Id: Ia2504e8e260867a6f797d42cd4c8a72f187280ef > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4374145 > Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Bug: b/273808966 Change-Id: I7a11635a6eceafb6f4fb3a0d95f6627ee98321c0 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4393497 Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Geoff Lang f1f80e1e 2023-03-22T12:54:08 Metal: Always prefer staged GPU uploads for textures. Uploading Metal texture data via MTLTexture::replaceRegion is a source of lots of CPU hangs and jank. There may be better heuristics to determine if we should do a CPU vs GPU upload but for now preferring GPU uploads has better overall performance. This also improves the MotionMark images test: - 40 -> 100 when using Metal. - 217 -> 235 when using Metal + https://chromium-review.googlesource.com/c/chromium/src/+/4091749 Bug: angleproject:8024, angleproject:8092, angleproject:8109 Change-Id: I36b5f585884391b4cc416365ae65f8542745beee Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4264963 Reviewed-by: Kenneth Russell <kbr@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org> Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Igor Nazarov ec307af4 2023-03-30T14:17:52 Fix bug in DeallocateGlobalMutex(). Bug: angleproject:6851 Change-Id: Ie5dd32220a38a9b7a9a18ff830a4ee7b7c02b9c3 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4381863 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Igor Nazarov <i.nazarov@samsung.com> Reviewed-by: Charlie Lao <cclao@google.com>
Igor Nazarov a1319e7f 2023-03-29T20:09:48 Tests: Fix EGLContextSharingTestNoFixture.SwapBuffersShared. Sometimes `swapThread` may finish until `renderThread` wait for `Step::TextureInitialized` step. In this situation `swapThread` will change `currentStep` to `Abort` in the `ThreadSynchronization<>` destructor, causing wait for `Step::TextureInitialized` to fail. Bug: angleproject:6851 Change-Id: Ib08b6de11873e9959eaa810bcf8cb404c95c80d4 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4381626 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Charlie Lao <cclao@google.com> Commit-Queue: Igor Nazarov <i.nazarov@samsung.com>
angle-autoroll d57a322e 2023-04-03T10:01:24 Roll vulkan-deps from bb601a935e1d to e671d7c87d3b (14 revisions) https://chromium.googlesource.com/vulkan-deps.git/+log/bb601a935e1d..e671d7c87d3b Changed dependencies: * glslang: https://chromium.googlesource.com/external/github.com/KhronosGroup/glslang.git/+log/45405e1d94..f8a2442a16 * vulkan-headers: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Headers.git/+log/0c34d02861..63af1cf1ee * vulkan-loader: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Loader.git/+log/5bc74b04c8..c3eb97de22 * vulkan-tools: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Tools.git/+log/e60c43a479..4ad4313da0 * vulkan-validation-layers: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-ValidationLayers.git/+log/75fce29052..67e4c7f87b If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/vulkan-deps-angle-autoroll Please CC angle-team@google.com,geofflang@google.com on the revert to ensure that a human is aware of the problem. To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry To report a problem with the AutoRoller itself, please file a bug: https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug Documentation for the AutoRoller is here: https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md Bug: None Tbr: geofflang@google.com Change-Id: I9f741cedfa6a31df7c481f01068e2afcc726a74a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4394263 Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com> Bot-Commit: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
angle-autoroll 52286481 2023-04-03T10:01:20 Roll SwiftShader from c85d70d97009 to 3ecab9c1aa60 (1 revision) https://swiftshader.googlesource.com/SwiftShader.git/+log/c85d70d97009..3ecab9c1aa60 2023-04-03 stha09@googlemail.com IWYU: add cstdint for uint64_t in sw::LRUCache If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/swiftshader-angle-autoroll Please CC angle-team@google.com,geofflang@google.com on the revert to ensure that a human is aware of the problem. To file a bug in SwiftShader: https://bugs.chromium.org/p/swiftshader/issues/entry To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry To report a problem with the AutoRoller itself, please file a bug: https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug Documentation for the AutoRoller is here: https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md Bug: None Tbr: geofflang@google.com Use-Permissive-Angle-Pixel-Comparison: True Change-Id: Idb9a1c7ab2782456dde98a0ffb58d8e40fdf73b3 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4391555 Bot-Commit: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com> Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
angle-autoroll f4af659f 2023-04-03T07:00:19 Roll Chromium from 1393a98c62ae to 198e6d1c360e (603 revisions) https://chromium.googlesource.com/chromium/src.git/+log/1393a98c62ae..198e6d1c360e If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/chromium-angle-autoroll Please CC angle-team@google.com,geofflang@google.com on the revert to ensure that a human is aware of the problem. To file a bug in Chromium: https://bugs.chromium.org/p/chromium/issues/entry To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry To report a problem with the AutoRoller itself, please file a bug: https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug Documentation for the AutoRoller is here: https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md Changed dependencies * build: https://chromium.googlesource.com/chromium/src/build.git/+log/0cdf15da5b..b3fc6af816 * buildtools: https://chromium.googlesource.com/chromium/src/buildtools.git/+log/76bdd92e1c..cb5d17004e * buildtools/third_party/libc++/trunk: https://chromium.googlesource.com/external/github.com/llvm/llvm-project/libcxx.git/+log/6f868b2003..ab37483b42 * testing: https://chromium.googlesource.com/chromium/src/testing/+log/5e393c2f70..124d121ec0 * third_party/android_platform: https://chromium.googlesource.com/chromium/src/third_party/android_platform/+log/1bf9b93243..ed245f0bcb * third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/{catapult_..fdcbdb2b3e * third_party/depot_tools: https://chromium.googlesource.com/chromium/tools/depot_tools.git/+log/0c99af9051..401f0f6e43 * third_party/fuchsia-sdk/sdk: version:12.20230330.3.1..version:12.20230402.3.1 * third_party/r8: pt0cSjlfhgFLaZ3goeJsF_ejKlOjod7amOkEGzTWIkwC..GcQ-oelMmVQMKFpvjCNroGxPCOnapQAHbIqjjSymmCAC * tools/mb: https://chromium.googlesource.com/chromium/src/tools/mb/+log/eeb51e8ca2..45fb5a967f No update to Clang. Bug: None Tbr: geofflang@google.com Change-Id: I047cda30304f308ace21b0dec43fbf93efcb40b2 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4394183 Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com> Bot-Commit: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
Alexey Knyazev b24b5568 2023-03-27T00:00:00 Vulkan: Skip sample coverage for single sample rendering A new test sets sample coverage to zero and checks that it is applied only to multisampled rendering. Bug: angleproject:8102 Change-Id: I1a5649869e9b7ecf0543108fb99095bfaf6fd858 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4379839 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Kenneth Russell <kbr@chromium.org> Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
Cody Northrop 55fbc2c5 2023-03-31T13:15:19 Revert "Tests: Add Gacha Life trace" This reverts commit 98deaef0ebf2709f45e75e5571bb52aa4c8d6246. Reason for revert: angle_trace_test_apk is too large to sign Before this trace, if you compiled the APK with all traces enabled, we were right on the edge of MAX_INT (2147483647). ApkSigner doesn't support 64-bit offsets. Original change's description: > Tests: Add Gacha Life trace > > Test: angle_trace_tests --gtest_filter="*gacha_life*" > Bug: b/267382443 > Change-Id: I6bbfb28015bf0317ccdba699e08ce6bce51b4ce3 > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4211589 > Reviewed-by: Roman Lavrov <romanl@google.com> Test: autoninja -C out/AndroidPerformance angle_trace_tests Bug: b/276474703 Change-Id: I1a3fd6386f20dc498e4f8c8b147d4431277ecc50 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4387371 Commit-Queue: Cody Northrop <cnorthrop@google.com> Reviewed-by: Roman Lavrov <romanl@google.com>
Maksim Sisov 61cd24d4 2023-03-31T14:54:17 MTLPixelFormatRGB9E5Float is not renderable on simulator. See https://developer.apple.com/documentation/metal/ developing_metal_apps_that_run_in_simulator?language=objc Bug: angleproject:7994 Change-Id: I07e50c19aaf6d033c7c25d0dbd4b21a8c255c1d9 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4386403 Reviewed-by: Kenneth Russell <kbr@chromium.org> Commit-Queue: Kenneth Russell <kbr@chromium.org>
Kimmo Kinnunen f176027f 2023-03-31T13:37:03 CGL: implement EGL_ANGLE_wait_until_work_scheduled It is as important to wait until scheduled in CGL, as it is in Metal. CGL waits until scheduled when glFlush() is called. Fixed: angleproject:8112 Change-Id: Id4a9e87804c6df1828b35cfd30c8427314820e52 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4386400 Commit-Queue: Kenneth Russell <kbr@chromium.org> Auto-Submit: Kimmo Kinnunen <kkinnunen@apple.com> Reviewed-by: Kenneth Russell <kbr@chromium.org>
Shahbaz Youssefi 552d4271 2023-03-31T10:59:30 Vulkan: Refactor buffer init logic Bug: b/276002151 Change-Id: I28d3fa34ab11340cc8b38743e87664a514870068 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4388547 Reviewed-by: Charlie Lao <cclao@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Cody Northrop 98deaef0 2023-03-30T19:15:24 Tests: Add Gacha Life trace Test: angle_trace_tests --gtest_filter="*gacha_life*" Bug: b/267382443 Change-Id: I6bbfb28015bf0317ccdba699e08ce6bce51b4ce3 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4211589 Reviewed-by: Roman Lavrov <romanl@google.com>
Constantine Shablya e975f9dc 2022-11-09T06:44:06 Capture/Replay: handle paletted textures Add a method for recompressing paletted textures on capture. Bug: angleproject:7710 Change-Id: I11af0c1cd7c3b63850c5daf96eafcd3efce65f16 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4178311 Commit-Queue: Cody Northrop <cnorthrop@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Shahbaz Youssefi 336bfd60 2023-03-30T00:16:40 GL: Fix the RewriteRepeatedAssignToSwizzled workaround This transformation splits chained assignments where the LHS is assigning to a swizzle. However, instead of retaining the assignment operator (like *=, += etc), it was accidentally unconditionally using `=`. Bug: chromium:1394345 Change-Id: Icaef159e1fb57e720e08d4b4f6603f08d9cd2bfe Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4381648 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Yuxin Hu <yuxinhu@google.com>
angle-autoroll e9f57b07 2023-03-31T13:46:22 Roll VK-GL-CTS from e873c6862868 to a3d054bf72ab (4 revisions) https://chromium.googlesource.com/external/github.com/KhronosGroup/VK-GL-CTS.git/+log/e873c6862868..a3d054bf72ab 2023-03-31 rgarcia@igalia.com Add dynamic state test with NULL color blend pAttachments 2023-03-31 rgarcia@igalia.com Avoid killing program when --help is used 2023-03-31 piotr.byszewski@mobica.com Merge vk-gl-cts/vulkan-cts-1.3.5 into vk-gl-cts/main 2023-03-30 ziga@lunarg.com Add tests for vkCmdBindVertexBuffers2 If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/vk-gl-cts-angle-autoroll Please CC angle-team@google.com,geofflang@google.com on the revert to ensure that a human is aware of the problem. To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry To report a problem with the AutoRoller itself, please file a bug: https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug Documentation for the AutoRoller is here: https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md Bug: None Tbr: geofflang@google.com Change-Id: Id7d2f3951eec9a96fd2bb2560b8264129484220a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4385569 Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com> Bot-Commit: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
Cody Northrop f066ae7d 2023-03-30T19:01:17 Tests: Add Teslagrad trace Test: angle_trace_tests --gtest_filter="*teslagrad*" Bug: b/276316424 Change-Id: If4056451ba3b948ade8466f93560694f76ab53c5 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4385779 Reviewed-by: Roman Lavrov <romanl@google.com>
Colin Blundell 6458cd95 2023-03-30T14:27:07 [GL backend] Remove over-zealous ASSERT in StateManagerGL.cpp StateManagerGL::bindVertexArray asserts that the passed-in |vaoState| pointer is non-null; however, we actually pass in null directly in [1]. This assert goes off when running a WebView test with ANGLE. [1] https://source.chromium.org/chromium/chromium/src/+/main:third_party/angle/src/libANGLE/renderer/gl/StateManagerGL.cpp;l=3385;drc=48340c1e35efad5fb0253025dcc36b3a9573e258;bpv=1;bpt=1 Bug: chromium:1168587 Change-Id: I14d5f9f317f3cbe2a828ab7637edc5f1911bf81c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4381861 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
angle-autoroll 090c6fad 2023-03-31T10:01:39 Roll vulkan-deps from e13e8828cf66 to bb601a935e1d (9 revisions) https://chromium.googlesource.com/vulkan-deps.git/+log/e13e8828cf66..bb601a935e1d Changed dependencies: * spirv-cross: https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Cross.git/+log/8e64f8ee40..3327924add * vulkan-validation-layers: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-ValidationLayers.git/+log/f96cf9a2b6..75fce29052 If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/vulkan-deps-angle-autoroll Please CC angle-team@google.com,geofflang@google.com on the revert to ensure that a human is aware of the problem. To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry To report a problem with the AutoRoller itself, please file a bug: https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug Documentation for the AutoRoller is here: https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md Bug: None Tbr: geofflang@google.com Change-Id: I01c8a234728c1c8e3d5afc64202dccbb6fc57f58 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4385568 Bot-Commit: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com> Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
Yuly Novikov a3a649b0 2023-03-31T09:16:48 Skip BlitFramebufferTest.scissorDrawBlitAndDrawAgain on Mac AMD GL Fails since added in https://ci.chromium.org/ui/p/angle/builders/ci/mac-exp-test/258/overview Bug: b/273808966 Change-Id: I62f8876e4d177983082b3e21e50803c9c7fab0d4 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4386397 Auto-Submit: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
angle-autoroll c3c41889 2023-03-31T07:07:00 Roll Chromium from f7c2a70f23b1 to 1393a98c62ae (1678 revisions) https://chromium.googlesource.com/chromium/src.git/+log/f7c2a70f23b1..1393a98c62ae If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/chromium-angle-autoroll Please CC angle-team@google.com,geofflang@google.com on the revert to ensure that a human is aware of the problem. To file a bug in Chromium: https://bugs.chromium.org/p/chromium/issues/entry To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry To report a problem with the AutoRoller itself, please file a bug: https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug Documentation for the AutoRoller is here: https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md Changed dependencies * build: https://chromium.googlesource.com/chromium/src/build.git/+log/052437a6e1..0cdf15da5b * buildtools: https://chromium.googlesource.com/chromium/src/buildtools.git/+log/c97a3b8902..76bdd92e1c * buildtools/third_party/libc++/trunk: https://chromium.googlesource.com/external/github.com/llvm/llvm-project/libcxx.git/+log/26ace673c4..6f868b2003 * buildtools/third_party/libc++abi/trunk: https://chromium.googlesource.com/external/github.com/llvm/llvm-project/libcxxabi.git/+log/9643f2cf13..4a9d0560b4 * buildtools/third_party/libunwind/trunk: https://chromium.googlesource.com/external/github.com/llvm/llvm-project/libunwind.git/+log/29a6dda8c6..f3464caa6a * testing: https://chromium.googlesource.com/chromium/src/testing/+log/df3b0c9f14..5e393c2f70 * third_party/abseil-cpp: https://chromium.googlesource.com/chromium/src/third_party/abseil-cpp/+log/b5b8912f72..20c8ae002d * third_party/android_build_tools/aapt2: 36NqCian2RIwuM6SFfizdUgKoXyZhy3q6pFfsws0szYC..fFfHyo80O9opPFsbOisSHF4d3tV4GGxLgxXWzGRuY2IC * third_party/android_build_tools/lint: E86vFKi4re9HwIfUW9yq_Ig_hc7Vr0lcl-bO3BtPQLYC..-QeaXYm6b9vGTpMVBhnqlwODS7YvC3vNdvA0KVEz0TwC * third_party/android_build_tools/manifest_merger: _aoHU11YhUwqKZXVXsn5otnhI-ZVGFT7h1Z9eCcAZM0C..zrC8AzHP0aIX3PNRmyIUO6hidQryUwSv65YE8KQEZa0C * third_party/android_deps: https://chromium.googlesource.com/chromium/src/third_party/android_deps/+log/115fe1141d..c17c192772 * third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/{catapult_..fdcbdb2b3e * third_party/depot_tools: https://chromium.googlesource.com/chromium/tools/depot_tools.git/+log/df528a9d7a..0c99af9051 * third_party/fuchsia-sdk/sdk: version:12.20230327.3.1..version:12.20230330.3.1 * third_party/kotlin_stdlib: XON2v801ZWS7FjApXO8Ev7Me7cOsIAnmqzyCXJuMwJ0C..gizyEP29NQpAimwviO2pgSrqvx0YgAvSUNc5V6hvfroC * third_party/r8: BTs9W6pUBDK8YTePjjF3Q0-ZQo1snO7GBCT6frWMIj8C..pt0cSjlfhgFLaZ3goeJsF_ejKlOjod7amOkEGzTWIkwC * tools/android/errorprone_plugin: https://chromium.googlesource.com/chromium/src/tools/android/errorprone_plugin/+log/71a32a2f82..a848535fa4 * tools/clang: https://chromium.googlesource.com/chromium/src/tools/clang.git/+log/04d87bfe25..f686247260 * tools/mb: https://chromium.googlesource.com/chromium/src/tools/mb/+log/993b50afde..eeb51e8ca2 * tools/perf: https://chromium.googlesource.com/chromium/src/tools/perf/+log/892ad5cc94..18e0d7aac4 * tools/skia_goldctl/mac_arm64: Jh19SHnigVXYxpk7Fp4ZDMF_ZvLpQUie2NMaK5aEISMC..432GgeQWQIAz1NADw1ssxRVYDIKzNs1i3tKIITtxDdcC * tools/skia_goldctl/win: pUOVquC14y84RkNMzEAPw_7tztey-kvH7KBwGsFViuIC..aW-NZ8C8eVMaPmBAILqVE-mOxYdoUXfiDHShsTeZMwkC No update to Clang. Bug: None Tbr: geofflang@google.com Change-Id: I336b2c934561c9824eab0b97bcdd5278a8831363 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4385566 Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com> Bot-Commit: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
Dean Jackson 5fcd027e 2023-03-29T08:54:34 Fix the watchOS build for the mirror clamp to edge extension The mirror clamp to edge extension relies on MTLSamplerAddressModeMirrorClampToEdge, which is not available on watchOS. Disable the extension there for the moment. Bug: angleproject:8103 Change-Id: I52b9d5217b39080cde6663e0d0fa839e53dacecf Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4379037 Reviewed-by: Kenneth Russell <kbr@chromium.org>
Charlie Lao 20f3df07 2023-03-30T11:36:29 Vulkan: ImageHelper::initExternal missing some variable init When ImageHelper::releaseImage is called and then re-initialized (due to mipmap change or usage change etc), right now we have a bug that mCurrentShaderReadStageMask and mLastNonShaderReadOnlyLayout are still left as is. And they do not get reset when image is initialized. This means if the image was reinitialized again, it may end up think the new image was previously used by fragment shader and insert an unnecessary barrier when new VkImage is used. This was discovered when I do the experimental work try to ghost VkImage for glTexSubImage call and realized that new VkImage was having a strong fragment->vertex dependency which it should not (since this is a new VkImage). This CL initialize mCurrentShaderReadStageMask and mLastNonShaderReadOnlyLayout and mCurrentQueueFamilyIndex from initExternal call since it is a new vkImage. Bug: b/273808966 Change-Id: I5bbeae5f1012f10c24620cfae8fa20365a7b5ab7 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4386136 Reviewed-by: Yuxin Hu <yuxinhu@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Charlie Lao 98151770 2023-03-27T09:49:33 Vulkan: Use midRenderPass clear if RP has started but inactive This CL extends prior CL's optimization so that if clear is issued right after blitFramebuffer call (this could make sense if blit and clear are on different buffer), we can keep the started render pass and do the midRenderPass clear instead of endRenderPass and start another renderPass. Bug: b/273808966 Change-Id: Ia2504e8e260867a6f797d42cd4c8a72f187280ef Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4374145 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Charlie Lao ad9537af 2023-03-16T16:03:29 Vulkan: Reactivate already started render pass when possible In some usage case (such as lineage_mobile), we are seeing in the middle of render pass, app switch to another fbo just to issue a glClear() call, which the clear call itself gets deferred. Application then switch back to the original frame buffer. Before this CL, the render pass gets recreated due to frame buffer binding change, even though the clear gets deferred and new render pass and the previous render pass are essentially the same. This CL detects this situation and reactivate the current render pass instead of creating a new one. With this CL, lineage_m app trace reduces frame time from 3.86ms to 3.7ms, and only one render pass is used instead of two. This CL also allows the render pass started by BlitFramebuffer reused by subsequent draw calls. Asphalt_9 is hitting this use pattern and this CL reduces frame time by 0.1245 ms (from 5.6203 ms to 5.4958 on pixel 7 pro) Bug: b/273808966 Change-Id: I48c2671cbef3ff9d6cf59caae88c37c77828ee07 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4348713 Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Charlie Lao <cclao@google.com>
angle-autoroll 18b675ea 2023-03-30T12:11:06 Roll vulkan-deps from d56f491466de to e13e8828cf66 (29 revisions) https://chromium.googlesource.com/vulkan-deps.git/+log/d56f491466de..e13e8828cf66 Changed dependencies: * spirv-cross: https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Cross.git/+log/09e60d74f6..8e64f8ee40 * spirv-headers: https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Headers.git/+log/90547c54e2..29ba249312 * spirv-tools: https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools.git/+log/f9f31fa5a9..6b72fe20c5 * vulkan-headers: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Headers.git/+log/9b9fd871b0..0c34d02861 * vulkan-loader: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Loader.git/+log/d72476300b..5bc74b04c8 * vulkan-tools: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Tools.git/+log/211fec7e9a..e60c43a479 * vulkan-validation-layers: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-ValidationLayers.git/+log/9124f788b7..f96cf9a2b6 If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/vulkan-deps-angle-autoroll Please CC angle-team@google.com,geofflang@google.com on the revert to ensure that a human is aware of the problem. To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry To report a problem with the AutoRoller itself, please file a bug: https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug Documentation for the AutoRoller is here: https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md Bug: None Tbr: geofflang@google.com Change-Id: I67e1a6a1227d29895df6df2515def961dd1c9efe Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4384660 Bot-Commit: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
Geoff Lang 3c8aee63 2023-03-27T13:24:47 D3D11: Fix streamed instanced attribute size calculation. D3D11 passes around a 0 instance count to signify "not an instanced draw call". This had an incorrect interaction with ComputeVertexBindingElementCount which checks for an instance count of 0 and skips instancing calculations. Force instance count to be at least 1 when computing buffer size needed. Bug: chromium:1425606 Change-Id: Ia10fa1c11abebce28c57ce4527e2b748e51516ce Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4375138 Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Shahbaz Youssefi 48b431ca 2023-03-21T16:39:33 Vulkan: Fix stage component reservations w.r.t xfb Input components limit don't need to reserve any components. This change also fixes a bug where the tessellation evaluation output components didn't reserve a slot for gl_Position. Additionally, the input component count of stages are clamped by the output component count of the previous stages. Bug: b/274289482 Change-Id: Ib5b4243d7a4cb713ccea505a5f0064bf3377caa8 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4356115 Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Yuxin Hu <yuxinhu@google.com> Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org>
Cody Northrop 31321cb3 2023-03-28T09:57:48 Tests: Add Minecraft Bedrock trace This CL adds a new Minecraft trace. The app has changed engines since our first trace, updating to the Bedrock engine. Also, our first trace was recorded on Qualcomm, and the trace does not behave correctly on ARM. This also bumps the original minecraft version, but the content is unchanged. Test: angle_trace_tests --gtest_filter="*minecraft_bedrock*" Bug: b/183647942 Bug: b/197965659 Change-Id: Id65889c65df8a6a3a1560ccbe4fce239982d98de Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4376790 Reviewed-by: Roman Lavrov <romanl@google.com>
Yuxin Hu 29abd5a2 2023-03-06T11:35:45 Explicitly Add Aliased Memory Decoration in SpirV In GLSL, aliased memory qualifier is implicitly available, unless we explicitly specify the memory is restrict: https://www.khronos.org/opengl/wiki/Type_Qualifier_(GLSL)#Memory_qualifiers. However, in SpirV, aliased memory qualifier has to be explicitly specified: https://registry.khronos.org/SPIR-V/specs/unified1/SPIRV.html#AliasingSection This change adds the aliased memory decorations to SSBO if the GLSL does not specify the restrict memory qualifier. This is a temporary workaround to fix the deqp test failures on some android devices. Eventually we would like to waive this test for ANGLE due to alised memory in Vulkan does not suppose to affect SSBOs that have different set/binding, please refer to this Khronos ticket for more details: https://gitlab.khronos.org/Tracker/vk-gl-cts/-/issues/4321 Bug: b/266235549 Change-Id: Ic7afc417a5d421664b60e0413a011314787e14e7 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4312130 Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
angle-autoroll 219776e2 2023-03-28T09:56:25 Roll Chromium from c83e966b4c7e to f7c2a70f23b1 (1902 revisions) Disable Rust toolchain support in standalone ANGLE, to avoid unnecessary dependencies. https://chromium.googlesource.com/chromium/src.git/+log/c83e966b4c7e..f7c2a70f23b1 If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/chromium-angle-autoroll Please CC angle-team@google.com,geofflang@google.com on the revert to ensure that a human is aware of the problem. To file a bug in Chromium: https://bugs.chromium.org/p/chromium/issues/entry To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry To report a problem with the AutoRoller itself, please file a bug: https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug Documentation for the AutoRoller is here: https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md Changed dependencies * build: https://chromium.googlesource.com/chromium/src/build.git/+log/32e94e55de..052437a6e1 * buildtools: https://chromium.googlesource.com/chromium/src/buildtools.git/+log/0a6c69640f..c97a3b8902 * buildtools/third_party/libc++/trunk: https://chromium.googlesource.com/external/github.com/llvm/llvm-project/libcxx.git/+log/e44019bfac..26ace673c4 * testing: https://chromium.googlesource.com/chromium/src/testing/+log/f132d63e88..df3b0c9f14 * third_party/android_deps: https://chromium.googlesource.com/chromium/src/third_party/android_deps/+log/4189179faf..115fe1141d * third_party/android_sdk/public: 3Yn5Sn7BMObm8gsoZCF0loJMKg9_PpgU07G9DObCLdQC..EWnL2r7oV5GtE9Ef7GyohyFam42wtMtEKYU4dCb3U1YC * third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/{catapult_..e838386fa0 * third_party/depot_tools: https://chromium.googlesource.com/chromium/tools/depot_tools.git/+log/479e1e9055..df528a9d7a * third_party/fuchsia-sdk/sdk: version:12.20230322.3.1..version:12.20230327.3.1 * third_party/kotlin_stdlib: zeFlVAEGvnpaj3JJujWHzRlUiBEm4XeeaMQzVsdW6D4C..XON2v801ZWS7FjApXO8Ev7Me7cOsIAnmqzyCXJuMwJ0C * third_party/r8: EGf7RQo3stt-vPTw69TaMGuNtnOx0Dbk1O-MBquwswYC..BTs9W6pUBDK8YTePjjF3Q0-ZQo1snO7GBCT6frWMIj8C * tools/clang: https://chromium.googlesource.com/chromium/src/tools/clang.git/+log/7a7207a7f2..04d87bfe25 * tools/luci-go: git_revision:320bf3ed60cd4d24549d0ea9ee3a94394f2665ce..git_revision:3569ebf36f17a991aa4d26fd6e228cdf6e664d13 * tools/luci-go: git_revision:320bf3ed60cd4d24549d0ea9ee3a94394f2665ce..git_revision:3569ebf36f17a991aa4d26fd6e228cdf6e664d13 * tools/mb: https://chromium.googlesource.com/chromium/src/tools/mb/+log/db6ffdf0ba..993b50afde * tools/memory: https://chromium.googlesource.com/chromium/src/tools/memory/+log/b55593f4dc..13f0b81ce5 * tools/perf: https://chromium.googlesource.com/chromium/src/tools/perf/+log/b87bb2fac8..892ad5cc94 * tools/skia_goldctl/linux: iQ7zKud-gha6r9hEdwqYWRdOpeAs6gFfDxnviDUt4FQC..CHIKK9YvBNPOM_lAlqkfs4dTTbM6I-AKggA94sfc5PoC * tools/skia_goldctl/mac_amd64: 9Wfje1bt82IO9pJokAt9lboy59X_Pe-s0b4EpmH7RT4C..Gwb7laBBhkBhwP1nIoAb1EwklQ5sEon7g7r76v7jAasC * tools/skia_goldctl/mac_arm64: zihT2Lk2afg0XzIZozuGcZXWv7RJujaDEi_6q7QL4DgC..Jh19SHnigVXYxpk7Fp4ZDMF_ZvLpQUie2NMaK5aEISMC * tools/skia_goldctl/win: we56UJIWxJJ2GkQ_ne0o3oGAr7FBJa5T5Jr1xguLn-gC..pUOVquC14y84RkNMzEAPw_7tztey-kvH7KBwGsFViuIC No update to Clang. Bug: chromium:1292038 Change-Id: Ie7f8204e241101673768257be9c003343bc47256 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4376783 Reviewed-by: Geoff Lang <geofflang@chromium.org>
Geoff Lang bb15ceef 2023-03-27T11:32:30 Remove syncing of extended dirty bits for TexImage calls. All extended dirty bits were synced for glTexImage calls but many of them required valid GL state or a complete framebuffer. This caused errors in the Vulkan backend when we would read and write out of bounds of the framebuffer due to an incorrect render area. Bug: chromium:1410191 Change-Id: I17f156f71ded72761b631ef9842b048a9173c9b7 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4374102 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Mark Lobodzinski 14ddf569 2023-03-29T10:00:47 Tests: Add fishdom trace Test: angle_trace_tests --gtest_filter="*fishdom*" Bug: b/275532615 Change-Id: I2c5668db7f9ae9f1cdf87887640fc2faf0758d6d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4374161 Reviewed-by: Cody Northrop <cnorthrop@google.com>
Mike Schuchardt 4afbbe85 2023-03-28T09:08:31 Tests: Add Vainglory trace Test: angle_trace_tests --gtest_filter=TraceTest.vainglory Bug: b/275526619 Change-Id: Ie06afa408d61935c7ab8d4f4f15f38e10b38821a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4376791 Reviewed-by: Cody Northrop <cnorthrop@google.com>
Shahbaz Youssefi fe45418c 2023-03-28T11:43:23 Translator: Limit the size of private variables in WebGL shaders As a follow up to https://chromium-review.googlesource.com/c/angle/angle/+/3023033, the limit to shader-private variables (locals and globals) is further reduced to 1MB. A variable that large will not fit in GPU registers and will spill to memory, killing performance. Bug: chromium:1427865 Change-Id: I77314d4b891c591cd9a83ad2aebb77d7256f3ada Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4377639 Reviewed-by: Kenneth Russell <kbr@chromium.org>
Shahbaz Youssefi 97897d92 2023-03-27T16:02:57 Vulkan: Work around driver bug with dynamic primitive restart This CL forces the state to be static on buggy drivers. Bug: b/275210062 Change-Id: Ia3391ecb19c3c9d19c05a83e11da8c718513a4e2 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4374104 Reviewed-by: Yuxin Hu <yuxinhu@google.com> Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@google.com>
Shahbaz Youssefi 8b81a3d2 2023-03-27T10:03:34 GLES1: Use ASCII minus in comment Bug: angleproject:7933 Change-Id: I05fb4512594447ff02078f1845c1ceb74c1b27ce Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4374097 Reviewed-by: Yuxin Hu <yuxinhu@google.com> Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org>
Alexey Knyazev 6d12a280 2023-03-24T00:00:00 D3D11: Support NV_shader_noperspective_interpolation Fixed: angleproject:8096 Change-Id: Ic7c27c735661b2ef8095c81201b2ce0a82ad3ae7 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4368472 Reviewed-by: Geoff Lang <geofflang@chromium.org>
Geoff Lang da7dd31f 2023-03-27T11:29:10 GL: Disable extended dirty bit states for internal blits. New GL states have been added to the GL backend and not updated in ScopedGLState which is used to reset internal state for blits. This caused test failures when tests were run in specific orders. Ex: ClipDistanceTest.ThreeClipDistancesRedeclared/ES2_OpenGL:CopyTextureVariationsTest.CopySubTexture/ES2_OpenGL__AToBGRAFlipYUnmultiplyAlpha Bug: angleproject:5160 Bug: chromium:1410191 Change-Id: I805e39bc8c4c7d7d843b43fdc7813dd668919e8a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4374101 Reviewed-by: Peng Huang <penghuang@chromium.org>
Alexey Knyazev 21ffb23a 2023-03-27T00:00:00 Add sample coverage regression tests * SimpleOperationTest.DrawSingleSampleWithCoverage * SimpleOperationTest.DrawSingleMultiSampleWithCoverage Bug: angleproject:8102 Change-Id: Iedc520a2c7d21912c3969ceaf3a8f1ef2ed7eae0 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4379837 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Shahbaz Youssefi 57dd0e5f 2023-03-27T13:05:36 Translator: Initialize out arguments too for WebGL Local variables were initialized for WebGL, but not `out` arguments. However, `out` arguments completely overwrite the passed-in variable at call site, so they should also be zeroed out. Bug: chromium:1425685 Change-Id: Ib2f61a962eea74c4933aafa4d5ad377189cec578 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4375137 Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Kenneth Russell <kbr@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Charlie Lao fcf0ddeb 2023-03-27T15:27:29 Vulkan: Add more blitFramebuffer test UtilsVk::blitResolveImpl() implementation will set up customized program and scissor rect to implement blit. In other CL we may reuse the render pass that started by blit. This CL adds more test to ensure that continiued draw without any state change will continue work properly (i.e, the state destroyed by blit gets restored properly for the follow up draw calls issued by application). Bug: b/273808966 Change-Id: I164803512b334ca467ca08ea3b008b153fac334d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4375099 Reviewed-by: Yuxin Hu <yuxinhu@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Charlie Lao <cclao@google.com>
angle-autoroll db3b2875 2023-03-28T15:06:07 Manual roll VK-GL-CTS from 9e822059a32e to e873c6862868 (18 revisions) Manual roll requested by geofflang@google.com https://chromium.googlesource.com/external/github.com/KhronosGroup/VK-GL-CTS.git/+log/9e822059a32e..e873c6862868 2023-03-27 piotr.byszewski@mobica.com Merge vk-gl-cts/opengl-es-cts-3.2.9 into vk-gl-cts/main 2023-03-24 ziga@lunarg.com Add coverage for non-sequential dynamic vertex attributes 2023-03-24 piotr.byszewski@mobica.com Merge vk-gl-cts/opengl-cts-4.6.3 into vk-gl-cts/main 2023-03-24 anholt@google.com Detect fallback texture failures in GL linear border_color tests 2023-03-24 jasuarez@igalia.com Check geometry shaders are supported 2023-03-24 ziga@lunarg.com Add tests for copying disjoint image planes to and from buffers 2023-03-24 michal.jakubek@mobica.com Memory requirements for multiplanar formats, resolve null VkImage 2023-03-24 cturner@igalia.com Fix VUID-vkCmdDecodeVideoKHR-pDecodeInfo-07149 validation error. 2023-03-24 cturner@igalia.com Fix VUID-vkCmdDecodeVideoKHR-pDecodeInfo-07267 validation error. 2023-03-24 gaopan24@hisilicon.com Fix mantissa shift converting float64 to float16 2023-03-24 scerveau@igalia.com vulkan-video: use ESExtractor 2023-03-24 ewerness@nvidia.com Add total runtime instrumentation 2023-03-24 alexander.galazin@imgtec.com Update glslang, SPIR-V tools and headers 2023-03-24 eric@igalia.com Hide warnings about Wayland module defining packages that don't match the module name 2023-03-24 eric@igalia.com Show dEQP version even if building from git 2023-03-24 piotr.byszewski@mobica.com Merge vk-gl-cts/vulkan-cts-1.3.5 into vk-gl-cts/main 2023-03-22 piotr.byszewski@mobica.com Merge vk-gl-cts/dev/VK_EXT_image_sliced_view_of_3d into vk-gl-cts/main 2023-03-22 piotr.byszewski@mobica.com Remove verify_kc_cts_rev.py script If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/vk-gl-cts-angle-autoroll Please CC angle-team@google.com,geofflang@google.com on the revert to ensure that a human is aware of the problem. To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry To report a problem with the AutoRoller itself, please file a bug: https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug Documentation for the AutoRoller is here: https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md Bug: None Tbr: geofflang@google.com Change-Id: I73ecd7e48a27f22cd1d57bd2e26a43761b6993e0 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4376788 Bot-Commit: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
Geoff Lang c6ec59dc 2023-03-27T11:15:48 Explicitly pass the extended dirty bits to syncState. Add a the extended dirty bits and bit mask to syncState instead of calling gl::State::getAndResetExtendedDirtyBits when encountering DIRTY_BIT_EXTENDED. It disallowed us from masking the extended dirty bits and feels like an anti-pattern to modify the extended dirty bits in gl::State from the backend. This is a refactor only. Bug: chromium:1410191 Change-Id: I66fdec3eb57e3426cf0fda9ccb759700eafdda14 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4374100 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Alexey Knyazev fc7cb00e 2023-03-24T00:00:00 Metal: Support NV_shader_noperspective_interpolation Fixed: angleproject:8095 Change-Id: Ieded1f704f82963984f1aee5072f152de0de374c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4368473 Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Alexey Knyazev 1ee27fcd 2023-03-24T00:00:00 Fix translation of noperspective interpolation qualifier Auxiliary storage qualifiers used with 'noperspective' interpolation must be retained during ESSL translation * Added new qualifiers: * EvqNoPerspectiveCentroid * EvqNoPerspectiveCentroidIn * EvqNoPerspectiveCentroidOut * EvqNoPerspectiveSample * EvqNoPerspectiveSampleIn * EvqNoPerspectiveSampleOut * Adjusted GLSL and SPIR-V output * Adjusted 'sample' rank to be the same as 'centroid' Fixed: angleproject:4388 Change-Id: Iffc80a7a3b057beffd3bcbbc9446eeed77183c99 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4368471 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
Kramer Ge fbb16d64 2023-03-24T02:23:19 Mali: Disable disjointTimerQueries on ChromeOS with MaliT8xxOrOlder ChromeOS boards using MT8183 are encountering GL_OUT_OF_MEMORY errors when using disjointTimerQueries, which leads to meets visual effects freezing after a couple of seconds. Extend the workaround treatment to ChromeOS. Bug: chromium:1356053,b/269068358 Change-Id: I212f2b4a2fed1ddd8e8344bde4f4ca9069ea3393 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4369684 Commit-Queue: Kramer Ge <fangzhoug@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Auto-Submit: Kramer Ge <fangzhoug@chromium.org>
Colin Blundell abbbe970 2023-03-24T08:10:40 [GL backend] Get texture bindings size from frontend caps EGLContext currently sets the texture bindings size to be GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS. StateManagerGL later copies these bindings into its own textures array [1]. However, the latter texture array is clamped to a size of max 96 [2], and thus this copy can overflow (see crash in crbug.com/1418842). This CL changes the texture bindings size to be set from the frontend caps rather than the native caps. The former have the same clamping as for StateManagerGL's textures. [1] https://source.chromium.org/chromium/chromium/src/+/main:third_party/angle/src/libANGLE/renderer/gl/StateManagerGL.cpp;drc=c85c710dec58dfdcf2f35af647a0a5155639edd5;l=3274 [2] https://source.chromium.org/chromium/chromium/src/+/main:third_party/angle/src/libANGLE/angletypes.h;drc=4a77b0f5237515960673b9bd1bc5a229f0eeaa95;l=952 [3] https://source.chromium.org/chromium/chromium/src/+/main:third_party/angle/src/libANGLE/Context.cpp;l=4050-4059;drc=b4bc946c63b2b95e1f05dec4e84adcadd10499c6 Bug: chromium:1418842 Change-Id: I66c10b640f70d9dc6c7d41925f12ffb7a3ba78e0 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4369699 Commit-Queue: Geoff Lang <geofflang@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Alexey Knyazev d8c9ba9a 2023-03-27T00:00:00 Avoid defaulted comparison operator Not available until C++20. Bug: angleproject:8046 Change-Id: I6f4093b0bdccca55818109836e2e0d68f66897b9 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4373861 Reviewed-by: Brian Osman <brianosman@google.com> Auto-Submit: Alexey Knyazev <lexa.knyazev@gmail.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Alexey Knyazev afc1e5dc 2023-03-27T00:00:00 GL: Support OES_sample_variables Bug: angleproject:8097 Change-Id: I983d6e83fe9ca942c91cbdf7274b46306e38f11f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4368476 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
angle-autoroll 98cfb969 2023-03-27T10:01:52 Roll vulkan-deps from 672a6d1840c9 to d56f491466de (13 revisions) https://chromium.googlesource.com/vulkan-deps.git/+log/672a6d1840c9..d56f491466de Changed dependencies: * glslang: https://chromium.googlesource.com/external/github.com/KhronosGroup/glslang.git/+log/c43008e829..45405e1d94 * spirv-tools: https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools.git/+log/9fbe1738ba..f9f31fa5a9 * vulkan-headers: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Headers.git/+log/ee15ae402b..9b9fd871b0 * vulkan-loader: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Loader.git/+log/23c3a6047f..d72476300b * vulkan-tools: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Tools.git/+log/fb440ea67d..211fec7e9a * vulkan-validation-layers: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-ValidationLayers.git/+log/b3baf74e40..9124f788b7 If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/vulkan-deps-angle-autoroll Please CC angle-team@google.com,solti@google.com on the revert to ensure that a human is aware of the problem. To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry To report a problem with the AutoRoller itself, please file a bug: https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug Documentation for the AutoRoller is here: https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md Bug: None Tbr: solti@google.com Change-Id: Ib4fab95a31afc686c8555db2fdcdd3b510530146 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4372490 Bot-Commit: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com> Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
Hailin Zhang 1301402c 2023-03-23T21:56:45 Vulkan: improve etc to bc grident texture precison. ETC has gradient modes. Two endpoints in BC are RGB565; the color depth is lower than ETC. Two endpoints in RGB888 space may be quite different, but after conversion to RGB565 they may be projected to the same point. This conversion loses quite a lot of details. This change tries to change one endpoint to an adjacent one (not optimal) in RGB565, so that all the colors are interpolated from these two endpoints. With this change, the arknight image in b/259327729 improved PSNR from 39 to 49. This change includes some of work by @gregschlom 1) Use look up table instead of bit operation. 2) Use more vector operations. This may not improve the performance but makes the code short and neat. bug: b/259327729 Change-Id: Ic0720aff17af5d466e5598dc38ba953dc084a3cc Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4368021 Reviewed-by: Charlie Lao <cclao@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Hailin Zhang <hailinzhang@google.com>
Cody Northrop 249b03ac 2023-03-24T15:11:10 restricted_trace_perf: Delete settings when using default Follow up to the addition of `--renderer default`, actively delete the settings if default is chosen. Otherwise the script will just use whatever settings you already have. Test: restricted_trace_perf.py Bug: b/269645211 Change-Id: I83be7e3f7fa2f2a2bc9f9d243820b49a3cdbed82 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4368874 Commit-Queue: Cody Northrop <cnorthrop@google.com> Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Igor Nazarov 435e557c 2023-03-22T21:35:09 Vulkan: Do not enforce custom ANGLEs secondary command buffers. This change become possible after the commit: Vulkan: Fix Secondary Command Buffers with asyncCommandQueue. After the above change, `attach/detachAllocatorImpl<>()` will be skipped when using Vulkan secondary command buffers. Other places that use `mCommandAllocator` already no-op regardless of the allocator type. Therefore enforcing: ANGLE_USE_CUSTOM_VULKAN_OUTSIDE_RENDER_PASS_CMD_BUFFERS ANGLE_USE_CUSTOM_VULKAN_RENDER_PASS_CMD_BUFFERS when enabling `angle_enable_vulkan_shared_ring_buffer_cmd_alloc` is no longer required. This will remove possible confusion when configuring ANGLE build and allow mixing Vulkan secondary command buffers and ANGLEs custom secondary buffers that use `shared_ring_buffer_cmd_alloc`. Bug: angleproject:6401 Bug: b/256666069 Change-Id: I52a64065e6ce9e4aabbf76031c3f5443e0e26a3a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4360071 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Igor Nazarov <i.nazarov@samsung.com> Reviewed-by: Charlie Lao <cclao@google.com>
Igor Nazarov aa8f2e4b 2023-03-22T19:53:04 Vulkan: Minor SecondaryCommandPool::destroy() optimization. Follow up for the commit: 9b6368ccfceddf1784ef41e95e57696453cca71d Vulkan: Fix freeing Secondary Command Buffers from wrong thread. Bug: angleproject:6100 Change-Id: I8ef34898941c0c5684d3ea4378332cdf6b87c0c8 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4359703 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Igor Nazarov <i.nazarov@samsung.com> Reviewed-by: Charlie Lao <cclao@google.com>
Igor Nazarov 85735eb4 2023-03-17T19:56:23 Vulkan: Enable async features for Secondary Command Buffers. Since, all known problems with Secondary Command Buffers and async features are fixed, it should be safe to allow enabling these features for testing. Locally, this CL passes custom build dEQP tests (EGL/GLES2/3/3.1) with asyncCommandQueue and Vulkan Secondary Command buffers enabled. Tests were executed on S906B that uses ANGLE as the system GLES driver. Bug: angleproject:6811 Bug: angleproject:6100 Change-Id: Id3ef6df56f0a3bd1986f2e6047f01e6eac165fc6 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4350270 Reviewed-by: Charlie Lao <cclao@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Igor Nazarov <i.nazarov@samsung.com>
Cody Northrop 2bd8acfe 2023-03-23T18:24:43 Tests: Add Geometry Dash trace Test: angle_trace_tests --gtest_filter="*geometry_dash*" Bug: b/271876646 Change-Id: I18ab2f22230f0c63d3aaf7c825c9cc55d896d4d0 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4368019 Commit-Queue: Cody Northrop <cnorthrop@google.com> Reviewed-by: Roman Lavrov <romanl@google.com>
Igor Nazarov e27e7c6a 2023-03-17T19:43:54 Vulkan: Retire Command Buffers before destroying the Pools. "VulkanSecondaryCommandBuffer"s may be still in "CommandQueue" when "ContextVk" destroys the Command Pools (asyncCommandBufferReset = true). Fixed by calling "retireFinishedCommandsLocked()" when appropriate. Normally, it is only required to retire Vulkan Secondary Buffers. However, some drivers may have bug and also require to reset Primary Buffers, that have Secondaries recorded, before destroying the Secondaries Pools. Bug: angleproject:6811 Bug: angleproject:6100 Change-Id: I891547c95cfbdfab44398980f939596af56ab57b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4350269 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Igor Nazarov <i.nazarov@samsung.com> Reviewed-by: Charlie Lao <cclao@google.com>
Igor Nazarov 9524c639 2023-01-17T18:47:47 Vulkan: Fix Secondary Command Buffers with asyncCommandQueue. This change fixes following errors (asyncCommandQueue = true): 1. "vkEndCommandBuffer()" called from "asyncCommandQueue" thread. Call stack: vkEndCommandBuffer() VulkanSecondaryCommandBuffer::end() OutsideRenderPassCommandBufferHelper::flushToPrimary() CommandQueue::flushOutsideRPCommands() CommandProcessor::processTask() Fixed by calling "vkEndCommandBuffer()" from the Context thread in the new "OutsideRenderPassCommandBufferHelper::detachCommandPool()" method. 2. "vkAllocateCommandBuffers()/vkBeginCommandBuffer()" called from "asyncCommandQueue" thread. Call stack: vkAllocateCommandBuffers()/vkBeginCommandBuffer() VulkanSecondaryCommandBuffer::initialize() <*>CommandBufferHelper::initializeCommandBuffer() <*>CommandBufferHelper::reset() <*>CommandBufferHelper::flushToPrimary() CommandQueue::flush<*>Commands() CommandProcessor::processTask() Fixed by calling "vkAllocateCommandBuffers()/vkBeginCommandBuffer()" from the Context thread in the new "<*>CommandBufferHelper::attachCommandPool()" method. 3. "SecondaryCommandPool::collect()" called from "asyncCommandQueue" thread without synchronization. Call stack: SecondaryCommandPool::collect() rx::vk::RecycleCommandBufferHelper() CommandBufferRecycler<>::recycleCommandBufferHelper) RendererVk::recycle<*>CommandBufferHelper() CommandProcessor::processTask() No need for this call, because "SecondaryCommandPool" is already detached. Notes: This CL not only fixes errors, but also optimizes CommandBufferHelper recycling. Before, there was no recycling plus unnecessary "VulkanSecondaryCommandBuffer" allocation/freeing. Further optimization may add multiple "VkCommandPool"s to the "SecondaryCommandPool" to allow resetting buffers in the async thread. Bug: angleproject:6811 Bug: angleproject:6100 Change-Id: I7004c27a112e916c5c973b43b137193017d6aa3d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4342189 Reviewed-by: Charlie Lao <cclao@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Igor Nazarov <i.nazarov@samsung.com>