src/common


Log

Author Commit Date CI Message
Shahbaz Youssefi 20820bb4 2022-05-13T10:50:47 Make BitSetArray constexpr Bug: angleproject:5906 Change-Id: If1ccacfc81e3e01b4bdbd10d47cf4ec860e3fe0b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3645494 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Antonio Caggiano 36f5e6ce 2022-05-03T12:08:35 Vulkan: Fix DRM to GL format conversion Do not ignore unused alpha channel for a proper conversion from DRM to GL to Vulkan format. Bug: angleproject:7217 Change-Id: I598ae030005e7375b36c6456864150aa8aaf50c1 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3624139 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Shahbaz Youssefi 4e5da2d2 2022-05-11T13:58:07 Vulkan: Dynamic state for cull mode Bug: angleproject:5906 Change-Id: I3d7b888e7999d4892ff71d636ea16a2edcf7a27f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3642800 Reviewed-by: Yuxin Hu <yuxinhu@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Roman Lavrov 03ccd9cc 2022-05-13T16:12:11 Revert "Vulkan: Flush texture updates more often" This reverts commit 8bb7c35c2159de2fa9e9a008679c692edd4402a6. Reason for revert: crashes tests in linux-rel Example: https://ci.chromium.org/ui/p/chromium/builders/try/linux-rel/1012030/overview Also possible flakiness https://anglebug.com/7308 Repro: out/Debug/bin/run_blink_web_tests fast/canvas/OffscreenCanvas-2d-drawImage.html Original change's description: > Vulkan: Flush texture updates more often > > * Added a pointer to the previous texture in ShareGroupVk so we can > flush the texture updates once we switch to a new texture. > > * We check if mip levels 0 and 1 are conformant in terms of > size, format and number of samples. > > * As a part of size check, we also check depths if the texture > target is either 3D, 2D array, or cube map array. For the former > two, they have to conform to mip scaling similar to width and > height. For the latter, the depth represents layer-faces and does > not change for mipmaps. > > * Added a test to ensure the pointer to the previous texture is > deleted when the corresponding texture is deleted, so the old value > is not accessed by a future mutable texture. > > * Added tests to make sure the mutable texture is uploaded with > the appropriate mip level attributes, and not uploaded in cases of > size/format inconsistencies, incompleteness, and no base level. > > Bug: b/202744914 > Change-Id: I9c2c1af87a8a49e75d3ad25523436b0cd51a7e81 > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3606329 > Reviewed-by: Charlie Lao <cclao@google.com> > Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> > Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com> Bug: b/202744914 Change-Id: Id51fd4c76d058aa5100ec58ba618098c8f614253 No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3645493 Auto-Submit: Roman Lavrov <romanl@google.com> Commit-Queue: Lingfeng Yang <lfy@google.com> Reviewed-by: Lingfeng Yang <lfy@google.com>
Amirali Abdolrashidi 8bb7c35c 2022-03-23T19:14:54 Vulkan: Flush texture updates more often * Added a pointer to the previous texture in ShareGroupVk so we can flush the texture updates once we switch to a new texture. * We check if mip levels 0 and 1 are conformant in terms of size, format and number of samples. * As a part of size check, we also check depths if the texture target is either 3D, 2D array, or cube map array. For the former two, they have to conform to mip scaling similar to width and height. For the latter, the depth represents layer-faces and does not change for mipmaps. * Added a test to ensure the pointer to the previous texture is deleted when the corresponding texture is deleted, so the old value is not accessed by a future mutable texture. * Added tests to make sure the mutable texture is uploaded with the appropriate mip level attributes, and not uploaded in cases of size/format inconsistencies, incompleteness, and no base level. Bug: b/202744914 Change-Id: I9c2c1af87a8a49e75d3ad25523436b0cd51a7e81 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3606329 Reviewed-by: Charlie Lao <cclao@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
Antonio Caggiano 2fb58a95 2022-02-15T15:40:23 Re-land: "Vulkan: GBM platform" Add support for GBM platform by implementing a Display with no WSI extension. Re-land fixes build script, including GBM Vulkan backend whenever ozone platform GBM is enabled. Bug: angleproject:7217 Change-Id: Icbf2d034b700e22ab4c351e479f472d65d832ebe Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3637562 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Yuly Novikov 0db4c39b 2022-05-09T20:02:58 Revert "Vulkan: GBM platform" This reverts commit 825d5b2c59b463253c82262a0c50f75d28860db4. Reason for revert: Fails link rolling into Chrome crrev.com/c/3635013 https://ci.chromium.org/ui/p/chromium/builders/try/chromeos-amd64-generic-rel/1149608/overview https://ci.chromium.org/ui/p/chromium/builders/try/linux-chromeos-compile-dbg/1013047/overview https://ci.chromium.org/ui/p/chromium/builders/try/linux-chromeos-rel/1189185/overview Original change's description: > Vulkan: GBM platform > > Add support for GBM platform by implementing a Display with no WSI > extension. > > Bug: angleproject:7217 > Change-Id: Ia9089131c5984dfdd926d2f85f1c218df1e84d9a > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3596042 > Commit-Queue: Jamie Madill <jmadill@chromium.org> > Reviewed-by: Jamie Madill <jmadill@chromium.org> > Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Bug: angleproject:7217 Change-Id: Ia8a4ca753a8f18d6a2c607010b5afabf6a78fe9a No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3636059 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>
Antonio Caggiano 825d5b2c 2022-02-15T15:40:23 Vulkan: GBM platform Add support for GBM platform by implementing a Display with no WSI extension. Bug: angleproject:7217 Change-Id: Ia9089131c5984dfdd926d2f85f1c218df1e84d9a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3596042 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Peter Kasting 2ce60b52 2022-05-05T08:23:07 Fixes for C++20 support. * The compiler grew smart enough to warn about value changes due to casting to float inside floatToNormalized(). Make it smart enough to realize this isn't a problem by using constexpr if. * Types on both sides of a comparison operator should be the same. * Structs with user-declared constructors are no longer aggregates. Provide a constructor and call it. * std::result_of<F(x)> is gone, use std::invoke_result<F, x> instead. Bug: chromium:1284275 Change-Id: I6487bb18c65837a6d7d2661f65e097dc6a7605b6 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3630478 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org> Auto-Submit: Peter Kasting <pkasting@chromium.org>
Doug Horn e6662832 2022-04-28T17:30:41 Re-land fixing of commit ID for Android builds. Android infra does not store the .git directory alongside the checked out code, instead using a gitdir directive to point elsewhere. This caused the commit_id script to fail, which could cause issues with disk-backed program caches on updates when the serialization format changes. Tested: 1) Verified that cached binaries do not load when the ANGLE hash is "unknown hash". This fixes a bug where the serialization format could change but we are unaware of a change because the hash is technically the same. 2) Verified that Android infra correctly generates the git hash. Bug: b/206109660 Test: Run script on Android infra, verify hash is gathered properly. Change-Id: I114fc8edb9459592cab45c6726f9d946cf6d17d6 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3615014 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Doug Horn <doughorn@google.com>
Jamie Madill f9729598 2022-04-28T16:36:50 Revert "Fix commit ID gathering on Android builds." This reverts commit 1835e5d895f7f75435c2eddf3f87a88ef534c237. Reason for revert: Breaks Skia integration in linkImpl. Original change's description: > Fix commit ID gathering on Android builds. > > Android infra does not store the .git directory alongside the > checked out code, instead using a gitdir directive to point > elsewhere. This caused the commit_id script to fail, which > could cause issues with disk-backed program caches on updates > when the serialization format changes. > > This CL also makes it a build failure to fail to get the commit id, > and removes the ANGLE_DISABLE_PROGRAM_BINARY_LOAD fallback (which > was broken anyway due to not being used anywhere). > > Bug: b/206109660 > Test: Run script on Android infra, verify hash is gathered properly. > Change-Id: Ie28dc9278b6fbd3dd4f09232c0a88d602fca6980 > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3604710 > Commit-Queue: Doug Horn <doughorn@google.com> > Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> > Reviewed-by: Jamie Madill <jmadill@chromium.org> Bug: b/206109660 Change-Id: I64ac0831a46b9e1ff2e2738624650d67d0609f3c No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3615009 Commit-Queue: Jamie Madill <jmadill@chromium.org> Auto-Submit: Jamie Madill <jmadill@chromium.org> Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Reviewed-by: Doug Horn <doughorn@google.com>
Doug Horn 1835e5d8 2022-04-25T14:42:31 Fix commit ID gathering on Android builds. Android infra does not store the .git directory alongside the checked out code, instead using a gitdir directive to point elsewhere. This caused the commit_id script to fail, which could cause issues with disk-backed program caches on updates when the serialization format changes. This CL also makes it a build failure to fail to get the commit id, and removes the ANGLE_DISABLE_PROGRAM_BINARY_LOAD fallback (which was broken anyway due to not being used anywhere). Bug: b/206109660 Test: Run script on Android infra, verify hash is gathered properly. Change-Id: Ie28dc9278b6fbd3dd4f09232c0a88d602fca6980 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3604710 Commit-Queue: Doug Horn <doughorn@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Shahbaz Youssefi 4aae5815 2022-04-22T13:21:03 Vulkan: Overlay widgets for submission statistics Bug: angleproject:7084 Change-Id: I68e69bda43862f9f2711c25a28dbe4745c19a45c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3602832 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Mohan Maiya 02b96848 2022-04-21T16:32:31 Vulkan: Add support for GL_QCOM_shading_rate Layer GL_QCOM_shading_rate over VK_KHR_fragment_shading_rate Test: ShadingRateQcomTest* Bug: angleproject:7172 Change-Id: I3f040dbfad3906facd4349937fed2ce9a464b824 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3599874 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: mohan maiya <m.maiya@samsung.com>
Mohan Maiya ea76cb0f 2022-04-21T15:52:39 Vulkan: Add entry points for GL_QCOM_shading_rate Bug: angleproject:7172 Change-Id: I837d2697d95c44f47a2fab7411cfd87a4ec65e90 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3599873 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: mohan maiya <m.maiya@samsung.com>
Shahbaz Youssefi 2db718ed 2022-04-21T23:13:02 Vulkan: Skip empty submissions A number of places in ANGLE perform an implicit flush; eglSwapBuffers(), glFenceSync() etc. Sometimes these flushes are unnecessary because there is nothing to submit. Additionally, an application may unnecessarily issue glFlush() with nothing recorded. In this change, empty command buffers are automatically not submitted, optimizing these unnecessary flushes away. Bug: angleproject:7084 Change-Id: Iecb865b6b9ef8045dfecda7b5221874f7031b42e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3600837 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Alexis Hetu dc1b7029 2022-04-20T15:41:40 Disable MSAN in the Vulkan loader When trying to reproduce MSAN errors locally, a number of MSAN errors pop up inside the Vulkan loader. This CL disables MSAN checks around function calls which end up inside the Vulkan loader, which similarly had been done for LSAN before, and allows local MSAN builds to reach actual MSAN errors inside SwANGLE. Bug: chromium:1313907 Change-Id: I8c0b841f03ce57cecb01e34b4f6edab398d2924e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3598011 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Alexis Hétu <sugoi@chromium.org>
Jamie Madill ff8a9f6a 2022-04-14T15:15:16 Vulkan: Renaming "ShaderBuffers" to "ShaderResources". This will match the functionality as we expand the descriptor set cache to non-buffer resources. Bug: angleproject:6776 Change-Id: I5597d074beea7d3b464802a2db9bcc2fcf84ca6b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3583359 Reviewed-by: Yuxin Hu <yuxinhu@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Shahbaz Youssefi fcec6904 2022-04-13T14:18:06 Generate feature variable names from display names The json file now only contains the feature display name. The variable name is automaticaly derived. For consistence with Chromium and other Chromium-based projects, the display name is now always snake_case, and that's what's specified in the json files. This also makes camelCase variable name generation trivial (as opposed to the other way around). Feature overrides now accept both snake_case and camelCase names to ensure compatibility with existing scripts. This is done by removing _ and comparing override names with feature names in lower case. Bug: angleproject:6435 Change-Id: I0b6ed2bbf5c312bc4f4be7b3c7d55dbaca2a9886 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3584630 Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Jamie Madill c82513af 2022-04-14T05:04:11 Add FastMap class. We can use this class in a few cases where we can know that the integer key index won't exceed a fixed small boundary. Bug: angleproject:4524 Bug: angleproject:6776 Change-Id: Ic380e1ce8f4dc591504603ade376d9b1e8a3c1c4 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3579865 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Yuxin Hu <yuxinhu@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jamie Madill 1b94c585 2022-04-10T15:09:38 Revert "Vulkan: Switch loader to new driver files env var." This reverts commit 1f6123d55467c2af7c67405c0101a6f327b76225. Reason for revert: Seems to break ANGLE on fuchsia loader: https://ci.chromium.org/ui/p/chromium/builders/try/fuchsia_arm64/1123629/overview Original change's description: > Vulkan: Switch loader to new driver files env var. > > VK_DRIVER_FILES replaces VK_ICD_FILENAMES. > > Bug: angleproject:7095 > Change-Id: I949ac9a8f375240b6c6068825eccc645f81b0185 > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3522821 > Reviewed-by: Ian Elliott <ianelliott@google.com> > Reviewed-by: Yuxin Hu <yuxinhu@google.com> > Commit-Queue: Jamie Madill <jmadill@chromium.org> Bug: angleproject:7095 Change-Id: I5b7e094b08d76b9c14adb4acb3b59e4cfb7a28fa Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3580980 Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Amirali Abdolrashidi 3cea7fcc 2022-03-16T16:33:43 Split Context ResourceUseList to RP Commandbuffers * Added mResourceUseList to each command buffer helper in an effort to move mResourceUseList away from ContextVk. * submitFrameImpl() renamed to submitCommands() * Moved the functions acquireResourceUseList() and onRenderPassFinished() in submitCommands() to the submitFrame functions calling it. Bug: angleproject:7103 Change-Id: I2487d5b86ea0a4d504f283aa7128501651317fe0 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3531368 Reviewed-by: Charlie Lao <cclao@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
Jamie Madill 1f6123d5 2022-03-14T11:40:05 Vulkan: Switch loader to new driver files env var. VK_DRIVER_FILES replaces VK_ICD_FILENAMES. Bug: angleproject:7095 Change-Id: I949ac9a8f375240b6c6068825eccc645f81b0185 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3522821 Reviewed-by: Ian Elliott <ianelliott@google.com> Reviewed-by: Yuxin Hu <yuxinhu@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Amirali Abdolrashidi 607d398e 2022-03-14T16:32:21 Vulkan: Optimize resolve of multisample swapchains * Resolves the multisampled image if the last render pass draws into the default framebuffer. * Added test to check the number of resolves in the optimization subpass (credit: Xinyi He) * Added test to check the number of resolves outside the subpass. * Added disabled test to see if the subpass resolve works. Bug: angleproject:6762 Change-Id: I86a8db3387851ab97d5f7a3d8a0ff26961254c14 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3523062 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
Antonio Caggiano 7b0f6318 2022-03-30T14:16:02 Vulkan: Wayland include directories Add wayland include directories from vulkan headers build overrides to those vulkan dependent targets. Bug: angleproject:6902 Change-Id: I8699fdf18e9b44b04a580b6ea31493d740756cf0 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3568377 Auto-Submit: Antonio Caggiano <antonio.caggiano@collabora.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Mohan Maiya 3bdbfbf8 2022-03-25T16:34:51 Vulkan: Adjust border color Some border color tests used to fail due to either unclamped color values or not accounting for depth, stencil or luma formats. We now adjust the border color value according to the sampler's format. Test: dEQP-GLES31.functional.texture.border_clamp.* Bug: angleproject:3577 Bug: angleproject:6213 Change-Id: Ib38ce2374622bfafde69fe3fa2d7227d60043954 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3551895 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Shahbaz Youssefi 36a051d8 2022-03-28T22:53:38 Vulkan: Move mid-RP color clear to loadOp if content undefined Instead of using vkCmdClearAttachments, if the color attachment has not been written to, modify the loadOp of the currently open renderpass to CLEAR. This is an adaptation of commit cfe5a1735a934cc83133bb6c69d19aa27278a270 The difference with that commit is that, with the prior changes that added tracking of color attachment access in the render pass, this change is greatly simplified by being able to immediately know if clear can be moved to the beginning of the render pass. Bug: angleproject:5048 Change-Id: I72b3613ad08ff869b71aced7e1f4e9be916d7b49 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3557815 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Charlie Lao <cclao@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Shahbaz Youssefi 53e432fe 2022-03-28T15:18:51 Vulkan: Track LOAD/STORE_OP_NONE in perf counters Bug: angleproject:5048 Change-Id: I52ed67e7a5c173dd1a7202fd6d4a1c484e79ea75 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3556367 Reviewed-by: Charlie Lao <cclao@google.com> Reviewed-by: Yuxin Hu <yuxinhu@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Shahbaz Youssefi 7a85d114 2022-03-25T15:01:17 Use [[nodiscard]] on RAII classes Scoped* classes provide an RAII way of adding cleanup/restore state/etc in a robust way. Unfortunatley, it's very easy to mistakenly leave the variable name, leading to the destructor being called immediately instead of at the end of the scope: { ScopedX(parameters); // instead of ScopedX x(parameters); // Code here is run after destructor } The [[nodiscard]] attribute, if specified on the ScopedX class would lead to a warning (turned to error with -Werror). This change does that for classes named *Scoped* in ANGLE. Bug: chromium:1103817 Change-Id: I65c9922c9b4eba1f9c033e093fe8fe534648ab62 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3552092 Reviewed-by: Lingfeng Yang <lfy@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Cody Northrop e3c44919 2022-03-24T11:32:10 Debug: Add angle_enable_trace_events Include the following GN arg to print all GLES and EGL commands: angle_enable_trace_events = true Bug: angleproject:7126 Change-Id: I78eb061c10ed519d6a0b0357eea11567d1cfb518 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3551656 Reviewed-by: Ian Elliott <ianelliott@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Cody Northrop 04680183 2022-03-24T11:09:39 Capture/Replay: Fixes for Car Chase This CL contains two fixes: * Add GL_PATCHES to list of PrimitiveMode names * Use FramebufferTextureLayer for 3D and Cube textures Bug: angleproject:3662 Bug: angleproject:7125 Bug: b/218314686 Change-Id: Ia97d8221cb78ef6e895156b5a474483d570d6ab5 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3551096 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Shahbaz Youssefi c8f86c21 2022-03-22T17:40:43 A handful of clear-related tests Credit Tim Van Patten <timvp@google.com> Bug: angleproject:5048 Bug: angleproject:5194 Change-Id: I00eccf1049118c3fba3c2c560c781cf09cf23362 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3543732 Reviewed-by: Ian Elliott <ianelliott@google.com> Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Amirali Abdolrashidi 730c1271 2022-01-07T13:41:08 Vulkan: Submit queue more often for texture data Outside command buffers should be flushed more often in order to prevent the texture data accumulation just before the first render pass when they are referenced. * Added a tracker next to copyBufferToImage() for texture size (in ContextVk). When its value passes kMaxBufferToImageCopySize, the outside command buffer operations should be submitted and the tracker would be reset. Currently, the threshold value is set to 1 << 28 = 256M. * Added a variation of submitFrame() to be used in outside command buffer submission. The main difference is that it copies mResourceUseList into GetShareGroupVk() rather than move it. * Refactored the two functions into submitFrameImpl(). * Added a helper function to submit the outside command buffer. * Added explicit copy functions for ResourceUseList and SharedResourceUse. The counter in the copied object is incremented by 1. * Added a test to make sure submitting the outside command buffer does not break the render pass. Bug: angleproject:6354 Change-Id: Ia1d4f857fcbd06934609c94622ccbf675b3b1c72 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3379231 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Charlie Lao <cclao@google.com> Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
Yuly Novikov 01be7a83 2022-03-21T21:20:54 Fix Skia build Missing include in crrev.com/c/3191194 Bug: angleproject:6440 Change-Id: I77c08a60fb42026104b75044187f681a30c0d42a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3537513 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Jamie Madill b2c01ac4 2021-09-28T12:57:45 Report process memory in perf tests. Bug: angleproject:6440 Change-Id: Ifdd4389266e3ac55963a3069d437c631bf73f72a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3191194 Reviewed-by: Charlie Lao <cclao@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Yuxin Hu <yuxinhu@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Kimmo Kinnunen 9637185c 2022-03-10T15:38:13 Add ForceGPUSwitch to EGL_ANGLE_power_preference eglHandleGPUSwitch() does not work with WebKit sandbox profile. The root cause is that we do not know the primary display, and as such we do not know which GPU drives this. Add eglForceGPUSwitchANGLE(display, gpuIDHigh, gpuIDLow). This lets the caller figure out the GPU in another process. Then the caller can just set the GPU in the sandboxed process. Add tests that are disabled by default until the runner and the infrastructure supports running the tests with automatic switching enabled. Bug: angleproject:7092 Change-Id: I316ee431156596effbdb89659a5e24291719a204 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3516274 Reviewed-by: Jonah Ryan-Davis <jonahr@google.com> Reviewed-by: Kenneth Russell <kbr@chromium.org> Commit-Queue: Kenneth Russell <kbr@chromium.org>
Jamie Madill e8ee847d 2022-02-23T12:25:39 Vulkan: Add UpdateDescriptorSetsBuilder. This helper class encapsulates the vkUpdateDescriptorSets caching. As part of the refactor, we switch passing a ContextVk to passing a vk::Context with some mutable variables. This helps encapsulate ContextVk. Since we use the perf counters in many places, this CL moves the perf counters to vk::Context, so we can access them everywhere. Refactoring change only. Bug: angleproject:6776 Change-Id: Id529962b2f425bece6f9b3bd0cd1698c692e58cb Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3484980 Reviewed-by: Charlie Lao <cclao@google.com> Reviewed-by: Yuxin Hu <yuxinhu@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Antonio Caggiano 8fb0a633 2022-03-15T18:11:27 Vulkan: VkFormat/DrmFourCC Define macro and header dependency in BUILD.gn when Vulkan is enabled. Bug: angleproject:7065 Change-Id: Ifbd9091425212689d4284b2bc46d3fe59267509c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3526654 Auto-Submit: Antonio Caggiano <antonio.caggiano@collabora.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Antonio Caggiano 0c272c67 2022-03-15T15:42:39 Vulkan: VkFormat/DrmFourCC Add functions to perform a lossy conversion from VkFormat to DrmFourCC and to convert a VkFormat to one or more DrmFourCC formats. Compilation only happens when Vulkan is actually enabled. Bug: angleproject:7065 Change-Id: I97c4585b9032e1ff4f773c3c427541bf7f6117fe Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3525754 Auto-Submit: Antonio Caggiano <antonio.caggiano@collabora.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jamie Madill 0f2482ff 2022-03-15T14:09:11 Revert "Vulkan: VkFormat/DrmFourCC" This reverts commit daef95775f7b6dc3bdb0a40662fcb36b68ebf501. Reason for revert: Breaking roll into Skia due to missing Vk headers. Original change's description: > Vulkan: VkFormat/DrmFourCC > > Add functions to perform a lossy conversion from VkFormat to DrmFourCC > and to convert a VkFormat to one or more DrmFourCC formats. > > Bug: angleproject:7065 > Change-Id: Iecccea6a89fbf8adeb50c3cb0c737ad3aedf7c62 > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3495123 > Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> > Auto-Submit: Antonio Caggiano <antonio.caggiano@collabora.com> > Reviewed-by: Jamie Madill <jmadill@chromium.org> > Commit-Queue: Jamie Madill <jmadill@chromium.org> Bug: angleproject:7065 Change-Id: I7cbad4277929717c211f70435cd6e462f11e4bda No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3525813 Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Antonio Caggiano daef9577 2022-01-05T19:55:50 Vulkan: VkFormat/DrmFourCC Add functions to perform a lossy conversion from VkFormat to DrmFourCC and to convert a VkFormat to one or more DrmFourCC formats. Bug: angleproject:7065 Change-Id: Iecccea6a89fbf8adeb50c3cb0c737ad3aedf7c62 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3495123 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Auto-Submit: Antonio Caggiano <antonio.caggiano@collabora.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jamie Madill 3739a195 2022-03-09T13:56:36 perf tests: Record perf counter metrics. This adds a new command line argument that will allow the user to specify perf counters to record into the test output. Bug: angleproject:4918 Change-Id: Ia7432ff96eadf13ef681f67d2d503d00fd83e06e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3516970 Reviewed-by: Lingfeng Yang <lfy@google.com> Reviewed-by: Charlie Lao <cclao@google.com> Reviewed-by: Yuxin Hu <yuxinhu@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jamie Madill a956162c 2022-03-01T13:05:29 Vulkan: Expose performance counters via extension. This CL rewrites the Vulkan perf counters test to work in the angle_end2end_test suite using the newly exposed AMD extension. Note that we implement only a subset of the extension. Instead of generating monitors and starting/stopping them we simply read back all performance counter data at once using the special montior value "0". The CL also enables these tests on SwiftShader. Bug: angleproject:4918 Change-Id: I5d8f6eecb1ccff448657cbdb65b51a225dfb90c0 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3497538 Reviewed-by: Charlie Lao <cclao@google.com> Reviewed-by: Yuxin Hu <yuxinhu@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jamie Madill 24c641dc 2022-03-01T11:12:38 Add stubs for AMD_performance_monitor. We can piggy-back on this extension to report internal ANGLE performance counters to the ANGLE tests. Includes a minor variable de-duplication in the EP generator. Bug: angleproject:4918 Change-Id: I4a76aea957b423a36a90349643bd50a4e1905849 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3497537 Reviewed-by: Charlie Lao <cclao@google.com> Reviewed-by: Yuxin Hu <yuxinhu@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Tomasz Śniatowski 4a4bb07b 2022-03-03T21:56:05 Don't create a string out of a nullptr The code path is already behind an UNREACHABLE(), but having the code return nullptr in a function returning std::string is still UB, and won't compile in C++23. Return an empty string instead. Bug: chromium:1302724 Change-Id: I151d488c4e7e951dcae9f55c142ca49526e3b102 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3502448 Auto-Submit: Tomasz Śniatowski <tsniatowski@vewd.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Antonio Caggiano b92ebdb7 2022-02-24T12:23:09 EGL: Add code-gen for dmabuf extensions Add code-gen for EGL_EXT_image_dma_buf_import and EGL_EXT_image_dma_buf_import_modifiers. Bug: angleproject:7065 Change-Id: Ib1bd2a881f11e96b1e7e5128975bdba3bdc41e0f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3495122 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jamie Madill c874943b 2022-02-18T15:29:14 Rename FastUnordered types to FlatUnordered. These names are consistent with the common parlance. Flat indicates the values are packed in memory, while fast indicates that lookup is as fast as possible. Bug: angleproject:6776 Change-Id: I7b56af26d7fdbf5956872be5033c3aa3f6b1b8c7 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3484978 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org> Auto-Submit: Jamie Madill <jmadill@chromium.org>
Antonio Caggiano e2d5eb72 2022-02-24T10:21:06 Vulkan: Wayland dependency Add wayland as a third-party dependency and add it to the include directories of vulkan-dependent targets. Bug: angleproject:6902 Change-Id: I1c6305ac3e214ecda532988e28acaa6b8e997fd2 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3487449 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Shahbaz Youssefi 1e773db9 2022-02-22T10:51:15 Vulkan: Shader support for KHR_blend_equation_advanced Translator can accept the layout qualifiers for the advanced blend equation. No emulation code is currently generated, and ANGLE will initially rely on the corresponding Vulkan extension. Based on change by Brandon Schade <b.schade@samsung.com> Bug: angleproject:3586 Test: angle_unittests --gtest_filter=*KHRBlendEquationAdvanced* Change-Id: I3b728c5f144386d7030bbbb301ddb07daa1492b9 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3481309 Reviewed-by: Brandon Schade <b.schade@samsung.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Amirali Abdolrashidi e47a67e4 2022-02-22T11:40:23 Update Python scripts to run with Python 3 * Updated the scripts used in run_code_generation.py so they could be run with Python 3 with no errors. Bug: angleproject:5707 Change-Id: Iad7ff61a34ce53b6d54821cdd53ee846dc4afc3c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3482156 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Cody Northrop 904a4797 2022-02-15T10:58:07 Python3 upgrades Required to run run_code_generation.py on gLinux. Bug: angleproject:5707 Change-Id: Ifb416be6f89eb67faf43e7de66c6f9a92a5eb5e1 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3465514 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Andrew Naumov d36df8d7 2022-02-10T15:12:01 Unicode support for system_utils on Windows Failed to load ANGLE_GLESV2_LIBRARY_NAME via ansi WinAPI if path contains unicode, use wide version instead. Bug: chromium:1296105 Change-Id: Ifae18b2aba83f3ae84954cc4dd9afc0e2c58834c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3452103 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org>
Constantine Shablya 3f0a28ba 2022-02-11T16:18:37 Add entry points for EGL_KHR_partial_update Bug: angleproject:6960 Change-Id: If248b7ef5ebacd7dfb8c612e5a9106ba0060282e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3455787 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Brandon Schade 38fada35 2022-01-27T18:16:18 Vulkan: Add support for OES_primitive_bounding_box Add OES version of the primitive bound box extension Bug: angleproject:3576 Test: dEQP-GLES31.functional.primitive_bounding_box.* Change-Id: Ie44d952992a68dfffd5c124dda8dd11069f0c1e1 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3425086 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Brandon Schade <b.schade@samsung.com>
Wez d6fb76a6 2022-01-31T16:14:17 [fuchsia] Don't try to use calling executable path to load .so's Bug: angleproject:6964 Change-Id: I856bdbcb83826c6af88ffa79c2a97b97ca827c85 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3427639 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Jamie Madill 2d3ce72d 2022-01-20T10:13:06 Refactor shared library load to avoid allocations. Fixes a leak of an angle::Library detected in the EGL loader. Bug: angleproject:6937 Change-Id: I623aa6172b98a35465e1d2641b92f67bdc5d24e7 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3403060 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Patrick To b3ed4780 2021-12-21T17:20:19 Change Windows display initialization from ANSI to wide version Bug: angleproject:6846 Change-Id: I2aee8f4b5b7546fc707705e435251fa9861e27d0 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3352866 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Rafael Cintron <rafael.cintron@microsoft.com> Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org>
Lingfeng Yang 926b43e7 2022-01-06T13:31:54 Reland: Frontend: separate lock in swap prep Swapchain-based backends like Vulkan might block a lot in vkAcquireNextImageKHR, which is bad for overall fast progress if we also hold the global EGL lock there. This CL starts to split the global EGL lock. We release the EGL lock when performing vkAcquireNextImageKHR, and only maintain a lock for surfaces. This is done via a new custom entry point, EGL_PrepareSwapBuffers, so that we can control how the global lock is used throughout the entire call. Bug: angleproject:6851 Change-Id: I095cd8b3bdbb13c842cab0a46148e2122582cdfd Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3373426 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Lingfeng Yang <lfy@google.com>
Shahbaz Youssefi 9d11a341 2021-12-16T13:47:04 Vulkan: Fix Vulkan SCB vs multiple subpasses vkCmdNextSubpass must be called on the primary command buffer, so the render pass command buffers need to be split on subpass boundaries. This is only done when using Vulkan secondary command buffers. Bug: angleproject:6811 Change-Id: I087fff305c757c78e87bfde4410e7de6bd1a6ba6 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3344774 Reviewed-by: Tim Van Patten <timvp@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Alexis Hetu 02f6226b 2022-01-06T09:07:29 Avoid using GetCWD() on MacOS when possible GetCWD is unreliable on MacOS and often fails or returns an undesirable directory. This CL makes the number of GetCWD() calls go from 2 to 0 when running content_shell locally on MacOS, which makes it start successfully with SwANGLE enabled. The 2 changes are: 1) Don't attempt to change the current working directory on MacOS for Validation Layers. This doesn't work as intended anyway and, on a GetCWD failure, ends up changing the ICD from SwiftShader to Default when using SwANGLE, which can make test runs fail. 2) Don't always call GetCWD() when calling GetModuleDirectory(). It is only required when the module path is not a full path, at which point some error info was added to help understand what's happening if we get into this case. Bug: chromium:1246171 Change-Id: Ib96142661dee3e06980eac4ffc3743aae8b97950 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3370036 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Alexis Hétu <sugoi@chromium.org>
Tim Van Patten fd014271 2021-12-16T20:44:42 Vulkan: Match chromaFilter to min/mag for YUV AHBs From the VVL: VUID-VkSamplerCreateInfo-minFilter VkCreateSampler: VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT specifies that the format can have different chroma, min, and mag filters. However, VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT is not supported for VkSamplerYcbcrConversionCreateInfo.format = VK_FORMAT_UNDEFINED so chromaFilter needs to be equal to minFilter/magFilter. We don't know what the min/mag filters are when the AHB is imported, so we need to update the YcbcrConversionDesc with the current min/mag filter value before creating the VkSamplerYcbcrConversion when the ImageView is created. Additionally, if the min/mag filters are updated later, TextureVk::syncState() needs to recreate the ImageViews to ensure the chromaFilter matches the new min/magFilters. Test: atest android.media.cts.DecodeAccuracyTest#testGLViewDecodeAccuracy[0] Test: ImageTestES3.SourceYUVAHBTargetExternalYUVSampleLinearFiltering Bug: b/210526871 Change-Id: I95dbd9738f6e3fd0870e484518eee105e995f93a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3346394 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Tim Van Patten <timvp@google.com>
Kyle Piddington f13f440e 2021-12-15T15:11:05 Reland: Metal: Fix Webkit warnings in ANGLE build Fix nullable warnings, unused functions Add in additional function specification to FormatStringIntoVector to correctly fix warning Bug: angleproject:6781 Change-Id: I26af2d698f14d353832802aa7b5ce34c5a1f4b95 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3366796 Reviewed-by: Kenneth Russell <kbr@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Kyle Piddington <kpiddington@apple.com>
Cody Northrop 2ebd583e 2021-12-22T11:24:43 Android: Remove setenv from common path In Android production stress testing, the setenv call was causing a race condition. To fix, only use setenv in the paths that need it as a performance optimization. Specifically, FrameCapture makes use of it every frame. Bug: angleproject:6822 Change-Id: I452f1ef8607ca9baf15d69246932c47454a3ce46 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3353893 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Ian Elliott <ianelliott@google.com> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Jamie Madill 1da7e3af 2021-12-21T15:55:38 Revert "Metal: Fix Webkit warnings in ANGLE build" This reverts commit 6706799186683dd3733c4610de09d84721aa08c8. Reason for revert: Includes pragma that disables a warning. Original change's description: > Metal: Fix Webkit warnings in ANGLE build > > Fix nullable warnings, unused functions > > Bug: angleproject:6781 > Change-Id: I063331e60d31a55b3cc9df0b41ace014d7d13659 > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3343174 > Reviewed-by: Kenneth Russell <kbr@chromium.org> > Commit-Queue: Kenneth Russell <kbr@chromium.org> Bug: angleproject:6781 Change-Id: Id5fce2afd0381030a974871b99e8adf075677bd1 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3352086 Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Shahbaz Youssefi 171bc07e 2021-12-20T13:10:33 Don't silently drop out-of-range bits in BitSetT Notes: - std::bitset's constructor accepts out-of-range bits (and drops them) - std::bitset with initializer list doesn't exist and is a BitSetT feature - |=, &= and ^= with non-bitset is a BitSetT feature - std::bitset's set(pos), reset(pos) and flip(pos) throw an exception if pos is out of the range of the bitset. This change adds an ASSERT in the functions that std::bitset would throw an exception, as well as functions that are only in BitSetT. Bug: angleproject:6840 Change-Id: Iab5bac40b05d4f7f29e0242ea0baa093721e3339 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3349980 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Charlie Lao eca427b2 2021-12-20T10:55:41 Vulkan: Add mutex to protect mVirtualBlock mVirtualBlock could be accessed from multiple thread when asyncCommandQueue is enabled, where the free call could come from the submission thread. This CL adds a mVirtualBlockMutex in BufferBlock and always take the lock when mVirtualBlock is been accessed. This CL also adds ConditionalMutex class for the general usage that a mutex is only used based on a boolean. Bug: angleproject:6840 Change-Id: Ib647b4ff12ebfc08f2a70192d39f16e15a1fc5f5 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3350798 Reviewed-by: Ian Elliott <ianelliott@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com> Commit-Queue: Charlie Lao <cclao@google.com>
Peng Huang 4a03668d 2021-12-20T20:58:17 Address comment in CL 3347143 Bug: chromium:1278515 Change-Id: I7d82d39ad94c6357b0df292fc716749cf610290f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3349938 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Peng Huang <penghuang@chromium.org>
Peng Huang c07df6fe 2021-12-17T20:11:52 Disable vulkan device select layer for msan build The vulkan device select layer is not built with chrome, so this layer is not built with msan. So loading this layer will cause MemorySanitizer errors. Those errors are false positive. So disable it for msan build. Bug: chromium:1259170 Change-Id: I513d6dd3d4fbc16c62aaa3aa1e7cf299e3e4144a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3347143 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Peng Huang <penghuang@chromium.org>
Maksim Sisov c7446ac4 2021-12-16T16:00:08 Add support for GL_MESA_framebuffer_flip_y 1/* LaCrOS, which is same as ChromeOS, relies on this extension and uses that with WebGL content. However, when LaCrOS uses ANGLE, the extension is not exposed and the WebGL content is y-inverted as direct scanout is always used. There are two bugs - 1) ANGLE should expose the extension so that direct scanout is possible (this CL fixes the issue. 2) LaCrOS shouldn't rely on the extension if it's not available (a bug to be fixed in Chromium). This particular CL consists of autogen files with framebufferParameteriMESA && getFramebufferParameterivMESA in Context marked as UNIMPLEMENTED. And also unimplemented validation. Bug: chromium:1231934 Change-Id: Id617846b0412f579df5b4ace6cb33c1ec6d403df Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3343492 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Maksim Sisov <msisov@igalia.com>
Lubosz Sarnecki e7413adf 2021-12-15T18:35:29 system_utils_posix: Check for SEGV_MAPERR si_code. Android 12 emits a SEGV_MAPERR for mprotect page faults on the handler. Treat these callbacks as in range. This fixes the memory protection implementation on Android 12. Test: angle_unittests --gtest_filter="SystemUtils.PageFaultHandler*" Bug: angleproject:5857 Change-Id: I346b04230e1389de9f0a80b7f704dd65acfa9d82 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3340950 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Lubosz Sarnecki <lubosz.sarnecki@collabora.com>
Kyle Piddington 67067991 2021-12-15T15:11:05 Metal: Fix Webkit warnings in ANGLE build Fix nullable warnings, unused functions Bug: angleproject:6781 Change-Id: I063331e60d31a55b3cc9df0b41ace014d7d13659 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3343174 Reviewed-by: Kenneth Russell <kbr@chromium.org> Commit-Queue: Kenneth Russell <kbr@chromium.org>
Alexis Hetu cac81f07 2021-12-14T22:56:15 Return full error info when opening a library with dlopen This CL adds a parameter to OpenSharedLibrary and OpenSharedLibraryWithExtension which is used to return the full path of the library which was opened. If dlopen failed, the string also contains the result of dlerror which explains what the error was. Bug: chromium:1246171 Change-Id: I374c7e2dfa18853c8137b4cbea06af8db3fdb501 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3340020 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Alexis Hétu <sugoi@chromium.org>
Peng Huang 32f572b7 2021-12-03T17:58:51 Support creating EGLImage from VkImage Bug: chromium:1264439 Change-Id: I520182143e748f25b44d0725f3f171b7b33a85d8 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3311131 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Peng Huang <penghuang@chromium.org>
Jamie Madill 7fc6c07c 2021-09-29T14:02:29 Capture/Replay: Update process for trace upgrading. Includes changes to the retracing script. Also includes documentation on how the process works. Bug: angleproject:5133 Change-Id: I1acfe338f3fe0282a0461c314274c761ed04bd2f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3193418 Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Tim Van Patten <timvp@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
John Cunningham 42bd4fc2 2021-12-10T14:58:17 Metal: add ANGLE_metal_create_context_ownership_identity. This Metal-specific EGL extension allows a given context and the GPU resources it allocates to be associated with a particular task ID on the system, for system-level bookkeeping purposes. Bug: angleproject:6795 Change-Id: I19ee0993564169b01c4a450e63dcfacd339b98b5 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3335172 Reviewed-by: Jonah Ryan-Davis <jonahr@google.com> Reviewed-by: Kenneth Russell <kbr@chromium.org> Commit-Queue: Kenneth Russell <kbr@chromium.org>
Lubosz Sarnecki 56aee5d6 2021-12-10T12:32:58 Reland "system_utils: Add memory protection functionality." This is a reland of b1c703e5f5e44514e8db958a5fb39ff16e514fd8 that was reverted in 663831aa676c59829cc3d822340812f016bf77f6. Skip PageFaultHandlerProtect and PageFaultHandlerDefaultHandler on macOS and Fuchsia. Original change's description: > Reland "system_utils: Add memory protection functionality." > > This is a reland of ab75a90ff4ecb9d99b5c72bde92222b07c285401 > that was reverted in b007e667a8f94b47788a5ba0b2e61c9ac2d1285f. > > Implement PageFaultHandler and memory protection functions. > Uses mprotect and sigaction on POSIX and equivalent Win API functions on > win32. > > Add tests to system_utils_unittests. > > Add stubs for winuwp. > > Replace ASSERT with ASSERT_TRUE in the PageFaultHandlerDefaultHandler > test to make it succeed on release builds, as the code was optimized > out. Furthermore the test did not correctly remove protection from the > whole area it protected, which caused a hang after deinitialization on > some build configurations, since the custom page fault handler was also > still in place. The test now correclty removes protection from the whole > area and sets back the original page fault handler. > > Test: angle_unittests --gtest_filter="SystemUtils.PageFaultHandler*" > Bug: angleproject:5857 > Change-Id: Ibb0acfefd9a09c3360c04c812a2a8346b951e1da > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3322992 > Reviewed-by: Jamie Madill <jmadill@chromium.org> > Commit-Queue: Lubosz Sarnecki <lubosz.sarnecki@collabora.com> Test: angle_unittests --gtest_filter="SystemUtils.PageFaultHandler*" Bug: angleproject:5857 Change-Id: Ifaa966a7c569aa9ff0112897a02fa8f873cd52dd Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3329610 Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Lubosz Sarnecki <lubosz.sarnecki@collabora.com>
Alexis Hetu f7d92a32 2021-12-10T10:23:32 Add debug info when loading EGL entry points fails Mac11 bots are often failing with the: "Error loading EGL entry points" error for an unknown reason. This CL adds the library path to the error message to see if it's trying to open the correct file. Bug: chromium:1277690 Change-Id: Ieb73a3097702933a89794d92c19ee44a6301c169 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3330576 Reviewed-by: Jonah Ryan-Davis <jonahr@google.com> Commit-Queue: Alexis Hétu <sugoi@chromium.org>
Jamie Madill 663831aa 2021-12-09T18:08:28 Revert "Reland "system_utils: Add memory protection functionality."" This reverts commit b1c703e5f5e44514e8db958a5fb39ff16e514fd8. Reason for revert: Fails on fuchsia bots: https://ci.chromium.org/ui/p/chromium/builders/try/fuchsia_arm64/1020498/overview mprotect failed: Not supported Original change's description: > Reland "system_utils: Add memory protection functionality." > > This is a reland of ab75a90ff4ecb9d99b5c72bde92222b07c285401 > that was reverted in b007e667a8f94b47788a5ba0b2e61c9ac2d1285f. > > Implement PageFaultHandler and memory protection functions. > Uses mprotect and sigaction on POSIX and equivalent Win API functions on > win32. > > Add tests to system_utils_unittests. > > Add stubs for winuwp. > > Replace ASSERT with ASSERT_TRUE in the PageFaultHandlerDefaultHandler > test to make it succeed on release builds, as the code was optimized > out. Furthermore the test did not correctly remove protection from the > whole area it protected, which caused a hang after deinitialization on > some build configurations, since the custom page fault handler was also > still in place. The test now correclty removes protection from the whole > area and sets back the original page fault handler. > > Test: angle_unittests --gtest_filter="SystemUtils.PageFaultHandler*" > Bug: angleproject:5857 > Change-Id: Ibb0acfefd9a09c3360c04c812a2a8346b951e1da > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3322992 > Reviewed-by: Jamie Madill <jmadill@chromium.org> > Commit-Queue: Lubosz Sarnecki <lubosz.sarnecki@collabora.com> Bug: angleproject:5857 Change-Id: Iaab4067a7ec9240bb6c64b810ac6d3ea7bd86fe1 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3327743 Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Lubosz Sarnecki b1c703e5 2021-12-08T14:53:46 Reland "system_utils: Add memory protection functionality." This is a reland of ab75a90ff4ecb9d99b5c72bde92222b07c285401 that was reverted in b007e667a8f94b47788a5ba0b2e61c9ac2d1285f. Implement PageFaultHandler and memory protection functions. Uses mprotect and sigaction on POSIX and equivalent Win API functions on win32. Add tests to system_utils_unittests. Add stubs for winuwp. Replace ASSERT with ASSERT_TRUE in the PageFaultHandlerDefaultHandler test to make it succeed on release builds, as the code was optimized out. Furthermore the test did not correctly remove protection from the whole area it protected, which caused a hang after deinitialization on some build configurations, since the custom page fault handler was also still in place. The test now correclty removes protection from the whole area and sets back the original page fault handler. Test: angle_unittests --gtest_filter="SystemUtils.PageFaultHandler*" Bug: angleproject:5857 Change-Id: Ibb0acfefd9a09c3360c04c812a2a8346b951e1da Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3322992 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Lubosz Sarnecki <lubosz.sarnecki@collabora.com>
Kai Ninomiya b007e667 2021-12-08T01:00:54 Revert "system_utils: Add memory protection functionality." This reverts commit ab75a90ff4ecb9d99b5c72bde92222b07c285401. Reason for revert: Causes angle_unittests to hang on many Linux FYI bots and likely Android. First known failures on Linux: https://ci.chromium.org/ui/p/chromium/builders/ci/Linux%20FYI%20Release%20(AMD%20RX%205500%20XT)/7318/overview https://ci.chromium.org/ui/p/chromium/builders/ci/Linux%20FYI%20Release%20(Intel%20HD%20630)/30297/overview https://ci.chromium.org/ui/p/chromium/builders/ci/Linux%20FYI%20Experimental%20Release%20(Intel%20HD%20630)/43446/overview https://ci.chromium.org/ui/p/chromium/builders/ci/Linux%20FYI%20Release%20(Intel%20UHD%20630)/4720/overview https://ci.chromium.org/ui/p/chromium/builders/ci/Linux%20FYI%20Release%20(NVIDIA)/29040/overview https://ci.chromium.org/ui/p/chromium/builders/ci/Linux%20FYI%20Experimental%20Release%20(NVIDIA)/45374/overview And Android: https://ci.chromium.org/ui/p/chromium/builders/ci/Android%20FYI%20Release%20(Nexus%209)/35989/overview https://ci.chromium.org/ui/p/chromium/builders/ci/Android%20FYI%20Release%20(NVIDIA%20Shield%20TV)/33490/overview Original change's description: > system_utils: Add memory protection functionality. > > Implement PageFaultHandler and memory protection functions. > Uses mprotect and sigaction on POSIX and equivalent Win API functions on > win32. > > Add tests to system_utils_unittests. > > Add stubs for winuwp. > > Test: angle_unittests --gtest_filter="SystemUtils.PageFaultHandler*" > Bug: angleproject:5857 > Change-Id: Ia6d2e87c409e6139ccaebc8c7186cd4cd844fd28 > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3236998 > Reviewed-by: Jamie Madill <jmadill@chromium.org> > Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> > Reviewed-by: Cody Northrop <cnorthrop@google.com> > Commit-Queue: Lubosz Sarnecki <lubosz.sarnecki@collabora.com> Bug: angleproject:5857 Change-Id: I7df73a3ee3f5fa87f002045dfa87d8ca2747f60f No-Tree-Checks: true Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3322104 Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Commit-Queue: Kai Ninomiya <kainino@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com> Commit-Queue: Tim Van Patten <timvp@google.com>
Lubosz Sarnecki ab75a90f 2021-10-21T20:20:07 system_utils: Add memory protection functionality. Implement PageFaultHandler and memory protection functions. Uses mprotect and sigaction on POSIX and equivalent Win API functions on win32. Add tests to system_utils_unittests. Add stubs for winuwp. Test: angle_unittests --gtest_filter="SystemUtils.PageFaultHandler*" Bug: angleproject:5857 Change-Id: Ia6d2e87c409e6139ccaebc8c7186cd4cd844fd28 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3236998 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Lubosz Sarnecki <lubosz.sarnecki@collabora.com>
Ian Elliott 24241724 2021-11-22T13:26:53 Reland: Vulkan: Use vkResetQueryPoolEXT when available This is a reland of 97aa5187ed164f1e9a22b64c966f2a747f651bfb Original change's description: > ANGLE currently uses vkCmdResetQueryPool to reset a query pool. As > reported by Arm, this can cause GPU bubbles. It is better to use > vkResetQueryPoolEXT() when available (either by Vulkan 1.2 or by the > VK_EXT_host_query_reset extension). > > Bug: angleproject:6692 > Change-Id: I650d7d0f55bdf6587b75be43cc7bed2dc3eb935a > Reviewed-on: > https://chromium-review.googlesource.com/c/angle/angle/+/3294061 > Commit-Queue: Ian Elliott <ianelliott@google.com> > Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> > Reviewed-by: Charlie Lao <cclao@google.com> Bug: angleproject:6692 Change-Id: Idff87977bd39ccd1d05684e48929f4cd3fa733c7 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3313382 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Charlie Lao <cclao@google.com> Commit-Queue: Ian Elliott <ianelliott@google.com>
Lingfeng Yang c88a73c8 2021-12-02T12:49:00 Fix flakiness in CpuTimeSleepy Looks like we can't really rely on the direct wall comparison---probably different resolutions are tripping us up here. Bug: chromium:1272977 Change-Id: Ie3691c59eb5b3765b79f1861200436d9c5acd609 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3313481 Commit-Queue: Lingfeng Yang <lfy@google.com> Reviewed-by: Charlie Lao <cclao@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Tim Van Patten ef65edf2 2021-11-22T14:23:35 Add extension: ANGLE_rgbx_internal_format Add the extension ANGLE_rgbx_internal_format, which exposes the ANGLE internal format GL_RGBX8_ANGLE. The format GL_RGBX8_ANGLE enables emulating RGB8 formats with RGBA8 within ANGLE. This also renames the format GL_RGBX8_ANGLEX to GL_RGBX8_ANGLE, since it's being exposed. Bug: angleproject:6690 Test: Texture2DTestES3.TextureRGBXImplicitAlpha1 Change-Id: I5548a3578a14e2f2a4006bbf59983b01f694b7f3 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3296625 Commit-Queue: Tim Van Patten <timvp@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Peng Huang a5e391d7 2021-11-19T17:35:06 Add GL_ANGLE_vulkan_image extension glAcquireTextures & glReleaseTextures are added for sharing texture ownership with an external API. Bug: chromium:1264439 Change-Id: If46d8d230b4f611768b5ff1187674509e42f01e0 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3293921 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Peng Huang <penghuang@chromium.org>
Mohan Maiya 00d0b79f 2021-11-26T14:38:20 Bug fix in BitSetArray iterator Account for gaps spanning multiple BaseBitSet while iterating. Bug: angleproject:3877 Tests: BitSetArrayTest*IterationWithGaps* Change-Id: I64a0393bf117678b0a7855904a6ac328a13bb40c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3304108 Commit-Queue: Mohan Maiya <m.maiya@samsung.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Jamie Madill 14f55a7f 2021-11-02T10:16:58 infra: Enable TSAN and UBSAN tests. These tests are not yet enabled on the CQ. Bug: angleproject:5795 Change-Id: I3fc58ab800ebbc0840da8221b03b4ab145d28028 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3258003 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Peng Huang e00ad443 2021-11-15T20:16:16 Add EGL_ANGLE_vulkan_image extension This extension is for exporting VkImage from EGLImage. The VkImage must be used with the same VkDevice used by ANGLE Vulkan backend. Bug: chromium:1264439 Change-Id: I222d900465cf2716d94fc64f06e240390ec518ac Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3285025 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Peng Huang <penghuang@chromium.org>
Ian Elliott 2fa1adf0 2021-11-24T18:29:13 Revert "Vulkan: Use vkResetQueryPoolEXT when available" This reverts commit 97aa5187ed164f1e9a22b64c966f2a747f651bfb. Reason for revert: This apparently caused crbug.com/1273344 Original change's description: > Vulkan: Use vkResetQueryPoolEXT when available > > ANGLE currently uses vkCmdResetQueryPool to reset a query pool. As > reported by Arm, this can cause GPU bubbles. It is better to use > vkResetQueryPoolEXT() when available (either by Vulkan 1.2 or by the > VK_EXT_host_query_reset extension). > > Bug: angleproject:6692 > Change-Id: I650d7d0f55bdf6587b75be43cc7bed2dc3eb935a > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3294061 > Commit-Queue: Ian Elliott <ianelliott@google.com> > Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> > Reviewed-by: Charlie Lao <cclao@google.com> Bug: angleproject:6692 Change-Id: I70d5eeb0b98f016fd262935194f8f4abee2a72b9 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3300309 Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Reviewed-by: Ian Elliott <ianelliott@google.com> Reviewed-by: Lingfeng Yang <lfy@google.com> Commit-Queue: Ian Elliott <ianelliott@google.com>
Mohan Maiya 6c172e4b 2021-11-20T16:27:14 Add support for memory cleanup on process exit This patch adds a callback to cleanup memory on process exit. Bug: angleproject:6723 Test: Android CTS WrapperTest.testThreadCleanup Change-Id: Ia517d4c6ae280ddc1f17a3b6f77d437aaaad0678 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3294581 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Mohan Maiya <m.maiya@samsung.com>
Jeff Vigil 8b60855b 2021-09-15T15:16:10 EGL: implement EGL_KHR_mutable_render_buffer Pass render buffer mode change to WindowSurfaceVk. On mode change trigger OUT_OF_DATE. Then in CreateSwapchain, if new mode, set the Presentation mode and the Image count. OffscreenSurfaceVk ignores mode change. Add MUTABLE_RENDER_BUFFER_BIT to GenerateDefaultConfig. Test: dEQP-EGL.functional.mutable_render_buffer.* Bug: angleproject:3966 Change-Id: I7b59708514bcda10f8d45ce5f9528aa840fcccfa Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3171822 Commit-Queue: Brandon Schade <b.schade@samsung.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Ian Elliott 97aa5187 2021-11-22T13:26:53 Vulkan: Use vkResetQueryPoolEXT when available ANGLE currently uses vkCmdResetQueryPool to reset a query pool. As reported by Arm, this can cause GPU bubbles. It is better to use vkResetQueryPoolEXT() when available (either by Vulkan 1.2 or by the VK_EXT_host_query_reset extension). Bug: angleproject:6692 Change-Id: I650d7d0f55bdf6587b75be43cc7bed2dc3eb935a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3294061 Commit-Queue: Ian Elliott <ianelliott@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Charlie Lao <cclao@google.com>
Jamie Madill ce6f9c8f 2021-11-19T14:52:48 Update checked numerics library. This library hadn't been updated in quite some time and had bugs which affected UBSAN in some operators. Bug: angleproject:5795 Change-Id: I40f658655034ce03df29cf4c71acb3f6fe96bef0 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3289941 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Sergey Ulanov 6e2e36cc 2021-11-19T00:57:29 [Fuchsia] Fix SwiftShader ICD discovery ANGLE needs to set VK_ICD_FILENAMES for the Vulkan loader to discover SwiftShader's ICD. Enable this logic on Fuchsia. Also updated ConcatenatePath() to handle absolute paths correctly. Bug: chromium:1225002 Change-Id: Ib69be0d7dcaef09f1da9d411023e90a3b7b4fca2 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3292347 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Lubosz Sarnecki 1cc5d096 2021-10-21T19:58:58 mathutil: Add roundDownPow2. Bug: angleproject:5857 Change-Id: I6c7ae92a41957e9e6b40b6449f763a49493488d1 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3236996 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com> Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jamie Madill a00ce2ca 2021-11-19T10:23:53 Vulkan: Fix CFI ignore config. This was being applied to "vulkan" when it should be higher in the chain of depedencies. This CL moves it to "vulkan_icd". Bug: angleproject:6496 Bug: chromium:1271193 Change-Id: I064caac6afe237d7008389f444d6ef9f37cff286 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3289937 Commit-Queue: Jamie Madill <jmadill@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Lingfeng Yang e9f9fa17 2021-11-09T18:13:15 Add cpu time measurement to perf tests Bug: angleproject:6667 Change-Id: I16570a7b51d363dd1c0f35789b985520cb76d488 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3270601 Commit-Queue: Lingfeng Yang <lfy@google.com> Reviewed-by: Tim Van Patten <timvp@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Charlie Lao <cclao@google.com>
Jamie Madill d27552f2 2021-11-11T11:43:30 Re-land: "Vulkan: Allow SystemInfo to pick ICD." Re-land fixes build on iOS and Android with ANGLE/Vulkan. This will be used in conjunction with SwiftShader. Bug: angleproject:6496 Change-Id: Id38403da1e377bba293dc8368d1c1aac29bf56a9 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3282426 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Amirali Abdolrashidi ae3f67ab 2021-11-11T20:32:32 Implement GL_EXT_multi_draw_indirect * Auto-generated the code to lay the foundation for the following functions: * multiDrawArraysIndirect() * multiDrawElementsIndirect() Bug: angleproject:6439 Change-Id: I7ab5111692376229515e0d6d9e6148909ce9a8a1 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3276042 Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Jamie Madill a9f2e87e 2021-11-12T15:02:50 Revert "Vulkan: Allow SystemInfo to pick ICD." This reverts commit b5adbe272e4829d77105e49607bf8ddafd385f17. Reason for revert: Fails GN check on Android/iOS in Chrome: https://chromium-review.googlesource.com/c/chromium/src/+/3276779/ Original change's description: > Vulkan: Allow SystemInfo to pick ICD. > > This will be used in conjunction with SwiftShader. > > Bug: angleproject:6496 > Change-Id: I894aa4cf3b9473738b549de9941eb82e09234121 > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3276515 > Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> > Commit-Queue: Jamie Madill <jmadill@chromium.org> TBR=syoussefi@chromium.org,jmadill@chromium.org,angle-scoped@luci-project-accounts.iam.gserviceaccount.com Change-Id: I198802d6bc93993d3544ed4627e131cb7b93f381 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: angleproject:6496 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3276045 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>