src


Log

Author Commit Date CI Message
Lubosz Sarnecki 39c50daf 2022-02-18T13:15:09 Tests: Add Shadowgun Legends trace. Test: angle_perftests --gtest_filter="*shadowgun_legends*" Bug: angleproject:7042 Change-Id: I65c7671584edda823998145b6c6558353c5fdbd9 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3497471 Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Geoff Lang be53aea8 2022-03-10T11:04:22 Reland: Emulate RGB10 (no alpha) on desktop OpenGL. The OpenGL ES extension GL_EXT_texture_type_2_10_10_10_REV requires RGB and RGBA formats to be supported but Desktop OpenGL does not support RGB. Emulate it with the existing emulatedAlphaChannel path in TextureGL. Bug: chromium:1300575 Change-Id: I5efea52d3da628cf82b43fece23894e6f47df650 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3533141 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org>
Steven Noonan a03ba732 2022-03-24T23:30:06 Vulkan: add tests for clearing/drawing after invalidate Two tests, to ensure that: - Clear gets treated as a LoadOp instead of as an out-of-renderpass clear, even if draws don't touch color buffers. - Invalidated image gets contents marked as defined after invalidate+clear, so draws to it get a renderpass with LoadOp=Load Bug: angleproject:7127 Change-Id: I78a8bd2100ba941a74755402649ae8edc7978026 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3552090 Reviewed-by: Jamie Madill <jmadill@chromium.org> Auto-Submit: Steven Noonan <steven@valvesoftware.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> 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>
Zequan Wu 6a76aa3f 2022-03-28T09:40:36 Fix -Wunused-but-set-variable Bug: chromium:1309955 Change-Id: Ib5f7c73dd9a9f4ec27e43b0cb818864b2aaf48d1 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3554363 Auto-Submit: Zequan Wu <zequanwu@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Steven Noonan 1205a7e1 2022-03-24T22:15:44 Vulkan: always respect deferred clears in render pass I had a situation which was like this: - glBindFramebuffer(fbo) - glClear(color + depth) - series of depth-only draws: - glDrawBuffers() - disable all color buffers - glColorMask() - all false - glDrawElements/glDrawArrays - glBindFramebuffer(0) Even though the glClear happened before glDrawBuffers/glColorMask, it only got executed on the first glDraw* call. And since the draw buffers got disabled before it decided to act on the Clear, it thought it couldn't touch the color buffer in the render pass. So it ended up doing: vkCmdClearColorImage() on the color buffer vkCmdBeginRenderPass() with LoadOp C=Load, D=Clear before the draw instead of: vkCmdBeginRenderPass() with LoadOp C=Clear, D=Clear Bug: angleproject:7127 Change-Id: Ibc3b55b0c7815defcf6d711fa876eff43ba29d40 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3551298 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Cody Northrop ce964d66 2022-03-26T18:56:50 Vulkan: Add tessellation to GetPipelineStage helper The tessellation stages were missing from a helper, which was silently returning an invalid value. Add a test and an assert, which fires before the fix. Test: GFXBench Car Chase Test: GLSLTest_ES31.TessellationTextureBufferAccess Bug: angleproject:7135 Bug: b/218314686 Change-Id: I2bc8d374300fc1470e52affabab7491698c99cee Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3554575 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Charlie Lao <cclao@google.com> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Steven Noonan a02fa8a0 2022-03-24T22:14:44 Vulkan: mark image contents defined on clear-invalidate-clear The backend was ignoring "repeated clears" with an Invalidate between them, which marked the image contents as undefined. When a clear happens after invalidate, verify that the clear parameters were the same, and simply mark the image contents defined if they aren't already. For example, in this scenario: - glBindFramebuffer(fbo) - glInvalidateFramebuffer(color + depth) - glClear(color + depth) - depth only render - glInvalidateFramebuffer(depth) - glBindFramebuffer(0) The color clear got skipped entirely because it was cleared with that color in a previous frame and no other color draws happened since. This caused sampling from the FBO's texture to return garbage data. Bug: angleproject:7127 Change-Id: I4ffe65c67375931ab63f07f27fa59ed0a4b90cd9 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3551297 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
angle-autoroll 91667dca 2022-03-28T18:56:11 Roll vulkan-deps from 9fd63df2bc48 to 737665b8eab1 (13 revisions) https://chromium.googlesource.com/vulkan-deps.git/+log/9fd63df2bc48..737665b8eab1 Changed dependencies: * glslang: https://chromium.googlesource.com/external/github.com/KhronosGroup/glslang.git/+log/f1d286fcc2..abbe466451 * spirv-tools: https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools.git/+log/48c8363f0a..bd325d2984 * vulkan-loader: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Loader.git/+log/ea503f36e6..b383c5131e * vulkan-validation-layers: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-ValidationLayers.git/+log/26f222cf8b..4bf3f07497 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 syoussefi@google.com,ynovikov@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: chromium:1310536 Change-Id: Id57e6986082a6a7167b7217c3681d284d718086b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3556087 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Ian Elliott 638557ac 2022-03-28T10:20:30 Add back another Pixel-6-specific FAIL expectation Passes on pre-release Android T drivers, but fails on the Android S drivers. Bug: b/224537784 Change-Id: Idc631d13b1666f0f0b4bf1c5bbfa9e9343af4d75 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3554360 Auto-Submit: Ian Elliott <ianelliott@google.com> Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Hans Wennborg 7e8e49a0 2022-03-28T13:42:50 Remove a set but otherwise unused var in DynamicImage2DHLSL.cpp Recent Clang versions have enhanced -Wunused-but-set-variable which now warns about this. Bug: chromium:1309955 Change-Id: Ic62427ab3129838d03878c308c6260993ae9fa57 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3550204 Auto-Submit: Hans Wennborg <hans@chromium.org> Reviewed-by: Stephen White <senorblanco@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@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>
Gert Wollny bd173f0e 2022-03-14T09:59:47 Capture/Replay: limit per shader image uniforms when capturing The Caps::maxImageUnits are limited, but that's only the value that is checked when compiling shaders, we have also limit the values that are returned when using the GL interface. In addition print out the error log when compiling a shader fails in the Pipeline tests. Bug: angleproject:7094 Change-Id: I19f69afe2cece4841a395543c1e35785bc6bd698 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3516078 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Gert Wollny <gert.wollny@collabora.com>
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 32af258d 2022-03-22T16:44:14 Fix handling of incomplete CubeMapArray textures GFXBench Car Chase binds a cube map array as a default texture, then immediately samples from it without setting it up. This ends up treating the cube map array as incomplete. On the Vulkan backend, this is resulting in multiple validation errors, followed by a crash in the driver. There are a number of errors, but a telling one is this: vkCreateImage(): pCreateInfo->flags contains VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT, but pCreateInfo->arrayLayers (=1) is not greater than or equal to 6. The Vulkan spec states: If imageType is VK_IMAGE_TYPE_2D and flags contains VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT, extent.width and extent.height must be equal and arrayLayers must be greater than or equal to 6 This corresponds to language in the GLES 3.2 spec: 8.18. IMMUTABLE-FORMAT TEXTURE IMAGES TexStorage3D Errors An INVALID_OPERATION error is generated if any of the following conditions hold: * target is TEXTURE_CUBE_MAP_ARRAY and depth is not a multiple of 6 Since ANGLE treats incomplete textures as immutable, we need to update the dimensions of the backing image for CUBE_MAP_ARRAY. Also add a new test that exposes the problem. Test: IncompleteTextureTestES31.IncompleteTextureCubeMapArray Bug: b/218314686 Change-Id: Ibef41e15a7cfccb05e6039bfb8504d237bc42cd4 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3546290 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Shahbaz Youssefi 041c4c6d 2022-03-25T16:30:03 Vulkan: Track color attachment usage like D/S in render pass That is in preparation for optimizing mid-render-pass clears, which requires an answer to the following query: "has this color image been read from / written to so far in the render pass?" With this change, a future CL will also be able to optimize color attachment invalidates, which currently break the render pass unconditionally, the same way depth/stencil is optimized. Bug: angleproject:5048 Change-Id: I3d3ee40d8444e6861c06340d5d52b17f5ee895b4 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3542989 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Lingfeng Yang <lfy@google.com> Reviewed-by: Charlie Lao <cclao@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Ian Elliott b2c6e08e 2022-03-24T11:38:04 Reland Remove unnecessary suppressions for Pixel6 dEQP This is a reland of 0455f356eda37e98cbfaff6b4be3241a0743bdcd Original change's description: > Remove unnecessary suppressions for Pixel6 dEQP tests > > Bug: b/224537784 > Change-Id: If7befe0279a06cddb79c67fdd34a62b4cb51c6e0 > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3551658 > Reviewed-by: Yuxin Hu <yuxinhu@google.com> > Commit-Queue: Ian Elliott <ianelliott@google.com> The previous CL was based on the pre-release Android T Pixel 6 drivers. The Chromium bots are running released Android S Pixel 6 drivers. This CL updates the expectations with the observed status, and still removes some expectations that are now unnecessary. Bug: b/224537784 Change-Id: I4f4041e015824fd1d8211d6d7d0adedbccaa3ddb Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3552544 Reviewed-by: Roman Lavrov <romanl@google.com> Commit-Queue: Ian Elliott <ianelliott@google.com>
Shahbaz Youssefi 3f331fae 2022-03-22T15:23:38 Vulkan: Dirty bits for depth/stencil access and feedback loop In preparation for doing the same for color, the depth/stencil render pass access and feedback loop modes are now updated with ContextVk dirty bits. This change also fixes clear after read-only depth/stencil feedback loop. The render pass wasn't broken in that case. Bug: angleproject:5048 Change-Id: I40f9b49593f9e6f35f42408e41c9d6267edb375e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3542988 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Charlie Lao <cclao@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
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>
Stephen White 361874bb 2022-03-24T15:38:56 D3D: generalize more stuff (mImages, mReadonlyImages). Bug: angleproject:7121 Change-Id: I39e7df1e9aed84c225c8877a3d16ca3c44f70990 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3550543 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Stephen White <senorblanco@chromium.org>
Stephen White cfee4070 2022-03-24T15:21:22 D3D: generalize Image2D, ReadonlyImage2D and AtomicCounter. Mapify them so they can handle all shader types. Bug: angleproject:7121 Change-Id: Ia80d46200bf30509e1484f1e198e1edfe6344207 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3550542 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Stephen White <senorblanco@chromium.org>
Stephen White c399c693 2022-03-24T14:10:57 D3D: more generalization: cached Image2DBindLayouts. Bug: angleproject:7121 Change-Id: I5cead9f7e70cfb9ebea807b886ba849948a2ec47 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3550541 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Stephen White <senorblanco@chromium.org>
Hans Wennborg 0c23c72b 2022-03-25T17:19:37 Suppress -Wunused-but-set-variable in Bison-generated code Recent Clang versions have enhanced the warning, causing it to fire in preprocessor_tab_autogen.cpp and glslang_tab_autogen.cpp. Since those are generated by Bison, we can't fix the code and instead should suppress the warning there. Bug: chromium:1309955 Change-Id: I31aa83571162310bef47a7ce84841446713a2d04 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3550200 Commit-Queue: Hans Wennborg <hans@chromium.org> Auto-Submit: Hans Wennborg <hans@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Stephen White f2e7a235 2022-03-25T10:00:11 D3D: generalize the Image2DBindLayoutCache to be per-shader. Bug: angleproject:7121 Change-Id: I3b5243583ac11a0fc96c4b9271118a8fd7ee4f66 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3550540 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Stephen White <senorblanco@chromium.org>
Stephen White 4e939ac6 2022-03-25T09:58:52 D3D: generalize mImage2DUniforms. Mapify this variable so it can accommodate other shader types. Bug: angleproject:7121 Change-Id: If6893a5fceaf50db87c42176c58319ce17d23d54 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3550539 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Stephen White <senorblanco@chromium.org>
Stephen White 3e0fba60 2022-03-24T11:09:24 D3D: generalize DynamicHLSL calls to take a shaderType. This allows all shader types to use these Image2D calls. Bug: angleproject:7121 Change-Id: I95f9e8a2fd206bcc3ff2ef7e06875d093d73dcd6 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3550538 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Stephen White <senorblanco@chromium.org>
Ian Elliott 1d71f55f 2022-03-24T19:27:21 Remove unnecessary SKIPs for Pixel4* dEQP tests Bug: b/224537784 Change-Id: I81c6f18d72ea893341ad2aa8ca819893e7d53d26 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3551659 Reviewed-by: Roman Lavrov <romanl@google.com> Commit-Queue: Ian Elliott <ianelliott@google.com>
Ian Elliott 45543295 2022-03-25T04:36:49 Revert "Remove unnecessary suppressions for Pixel6 dEQP tests" This reverts commit 0455f356eda37e98cbfaff6b4be3241a0743bdcd. Reason for revert: Multiple tests that pass on my Pixel 6 fail on the bot Pixel 6's Original change's description: > Remove unnecessary suppressions for Pixel6 dEQP tests > > Bug: b/224537784 > Change-Id: If7befe0279a06cddb79c67fdd34a62b4cb51c6e0 > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3551658 > Reviewed-by: Yuxin Hu <yuxinhu@google.com> > Commit-Queue: Ian Elliott <ianelliott@google.com> Bug: b/224537784 Change-Id: Id3430a7632651b9b7b5e980f41678aebbdfc426c No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3552124 Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Reviewed-by: Ian Elliott <ianelliott@google.com> Commit-Queue: Ian Elliott <ianelliott@google.com> Auto-Submit: Ian Elliott <ianelliott@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>
Yuxin Hu cdd97fb8 2022-03-24T17:41:30 Reland "Vulkan: Fix invalid access with display texture share group." This is a reland of 1099b5ef2279cfe1988a39c8e011aada59c650f1. Original change's description: > Vulkan: Fix invalid access with display texture share group. > Create bufferpool that owns by RendererVk. > If we are using EGL_ANGLE_display_texture_share_group > extension, use the bufferpool owned RendererVk, > otherwise, use the bufferpool owned by EGL::ShareGroup. > The bufferpool lifetime will remain consistent with > texture lifetime. > Bug: chromium:1299211 > Change-Id: Ie4e87cea1dfd20dabab24e2afed6ddd92e469888 > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3531155 > Reviewed-by: Charlie Lao <cclao@google.com> > Reviewed-by: Geoff Lang <geofflang@chromium.org> > Commit-Queue: Geoff Lang <geofflang@chromium.org> Bug: chromium:1299211 Change-Id: I4b8f5bcb30297f2c5f24e02404fd96011f9d843b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3550038 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Ian Elliott 0455f356 2022-03-24T11:38:04 Remove unnecessary suppressions for Pixel6 dEQP tests Bug: b/224537784 Change-Id: If7befe0279a06cddb79c67fdd34a62b4cb51c6e0 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3551658 Reviewed-by: Yuxin Hu <yuxinhu@google.com> Commit-Queue: Ian Elliott <ianelliott@google.com>
Jonah Ryan-Davis cbbf5b5d 2022-03-23T18:17:17 GL: Only log all GL driver errors on debug builds Anything that invokes localtime_r() from the GPU process can be a slow operation on Linux. ANGLE's ClearErrors() function sometimes spams many errors, sometimes repeating every frame. These errors aren't necessary to print in release builds, and only logging these in debug builds will mitigate a lot of GPU process hangs. Bug: chromium:1077735 Change-Id: Ic1186732d477dee12caae0cb400e1d3504a0bd8b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3546718 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
Alexey Knyazev 18c36f8a 2022-03-19T19:22:08 Metal: Fix transform feedback with base instance Added TransformFeedbackTest.BaseInstance test case. Bug: angleproject:6963 Change-Id: Ie7b2a5dd2be456172505f07ea60ca291075bf07e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3536660 Reviewed-by: Kenneth Russell <kbr@chromium.org> Reviewed-by: Kyle Piddington <kpiddington@apple.com> Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
Shrek Shao 73ec28af 2022-03-23T21:13:45 Revert "Vulkan: Fix invalid access with display texture share group." This reverts commit 1099b5ef2279cfe1988a39c8e011aada59c650f1. Reason for revert: suspect culprit of 1309304 Original change's description: > Vulkan: Fix invalid access with display texture share group. > > Create bufferpool that owns by RendererVk. > If we are using EGL_ANGLE_display_texture_share_group > extension, use the bufferpool owned RendererVk, > otherwise, use the bufferpool owned by EGL::ShareGroup. > The bufferpool lifetime will remain consistent with > texture lifetime. > > Bug: chromium:1299211 > Change-Id: Ie4e87cea1dfd20dabab24e2afed6ddd92e469888 > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3531155 > Reviewed-by: Charlie Lao <cclao@google.com> > Reviewed-by: Geoff Lang <geofflang@chromium.org> > Commit-Queue: Geoff Lang <geofflang@chromium.org> Bug: chromium:1299211, 1309304 Change-Id: Ibdc119ef6bb52352858114d72a0f1c0edcd4da5e No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3546288 Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Reviewed-by: Shrek Shao <shrekshao@google.com> Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Yuly Novikov b19e662a 2022-03-22T18:28:40 TransformFeedbackQueryPausedDrawThenResume flaky Suppression removed in crrev.com/c/3536652, but still flaky: https://ci.chromium.org/ui/p/angle/builders/ci/win-trace/1091/overview Bug: angleproject:6180 Change-Id: I447a173d9634c950debc3d4a16e9987ed360d522 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3542991 Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Yuxin Hu 1099b5ef 2022-03-17T17:20:44 Vulkan: Fix invalid access with display texture share group. Create bufferpool that owns by RendererVk. If we are using EGL_ANGLE_display_texture_share_group extension, use the bufferpool owned RendererVk, otherwise, use the bufferpool owned by EGL::ShareGroup. The bufferpool lifetime will remain consistent with texture lifetime. Bug: chromium:1299211 Change-Id: Ie4e87cea1dfd20dabab24e2afed6ddd92e469888 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3531155 Reviewed-by: Charlie Lao <cclao@google.com> Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org>
Ian Elliott 6bd11e28 2022-03-22T12:38:13 Add back Pixel 6-specific dEQP FAIL suppression Bug: b/224537784 Change-Id: Iddbd1cbd1aef6349dc1a4298febe74907bd126a8 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3543727 Reviewed-by: Ian Elliott <ianelliott@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Shahbaz Youssefi 20e7bbb7 2022-03-18T17:03:18 Vulkan: Fix invalidate of attachments with emulated format Some image formats may be emulated such that the emulated format has more channels than the original. ANGLE clears the image once so that these extra channels contain valid values, and carefully ensures they are never modified. For swapchain images with such formats, as they are automatically invalidated at the end of the frame, a workaroud was added to make sure they are re-cleared in the beginning of the next frame. This however doesn't fix the issue of glInvalidateFramebuffer resulting in the contents of attachments with such formats to be discarded (even if the following render pass clears it, the contents are invalid in between). This change instead makes sure invalidate of images with emulated formats that have extra channels are handled appropriately: - On IMR hardware, the invalidate is dropped altogether as it provides little to no benefit. - On TBR hardware, a clear is automatically staged on the invalidated image. The latter replaces the workaround that was added to make the following render pass use loadOp=CLEAR, by adding a clear that's respected regardless of what the future usage is. This change also paves the way for a future change where the invalidate of color attachments is tracked in render passes similarly to how depth/stencil currently is. With this change, the image is no longer in an inconsistent state where its contents are considered invalid, even though some channels are meant to remain valid. Bug: angleproject:6860 Change-Id: Iec5b4854dfbe3a0bf93cd5aa82c19fe116065744 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3536389 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Charlie Lao <cclao@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Ian Elliott e7f29440 2022-03-16T14:31:39 Remove dEQP FAIL expectations for passing tests Based on bot runs, a number of previously FAIL'ing dEQP tests are now passing. Need to separately test Pixel 6 and SKIP expectations. Bug: b/203826952 Change-Id: I8a2bdb44b9050d1b93e85082c5dd1e15420e6f3e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3531073 Reviewed-by: Roman Lavrov <romanl@google.com> Commit-Queue: Ian Elliott <ianelliott@google.com>
Gert Wollny ebf4c58f 2022-03-20T19:48:06 Capture/Replay: Enable test that no longer times out Bug: angleproject:6220 Change-Id: I170462fa384f06ead39bdfce64d324426ad47878 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3538364 Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Gert Wollny <gert.wollny@collabora.com>
Gert Wollny df06c945 2022-03-18T15:25:13 Capture/Replay: Skip binary IO test without binary formats Bug: angleproject:6631 Change-Id: I7093a5d71ada7b1982e7294a6a7e7b482f5037a5 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3536653 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Gert Wollny <gert.wollny@collabora.com>
Gert Wollny b9a83e14 2022-03-18T17:05:44 Capture/Replay: Recheck Flaky tests and update expectations Bug: angleproject:6180 Bug: angleproject:6286 Bug: angleproject:6373 Bug: angleproject:6511 Bug: angleproject:6538 Bug: angleproject:6543 Change-Id: I39c44f2552e3bbd7f47bf94c08f42b4ab342f7d7 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3536652 Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Gert Wollny <gert.wollny@collabora.com>
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>
angle-autoroll 093d4287 2022-03-21T12:57:10 Roll vulkan-deps from 51988dcdccbf to 61b4f5b95321 (21 revisions) https://chromium.googlesource.com/vulkan-deps.git/+log/51988dcdccbf..61b4f5b95321 Changed dependencies: * vulkan-headers: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Headers.git/+log/384881cc90..32c07c0c53 * vulkan-validation-layers: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-ValidationLayers.git/+log/6c8f1627a3..af4bf61013 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 ynovikov@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: angleproject:7105 Change-Id: Id26d7dfdd9745f549ea08f584e4dd9dc88b7bc90 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3539789 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Kenneth Russell 0ffa221c 2022-03-21T16:42:32 Update commit_id.py to use python3. This is blocking ANGLE rolls into WebKit. macOS no longer ships a "python" binary, only "python3". Bug: angleproject:7115 Change-Id: Ieb9473f393d006d64c18167bada2fe76ce996bb4 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3537512 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
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>
Shahbaz Youssefi 15fe0474 2022-03-21T00:06:38 Translator: Work around tool paranoia w.r.t repeated std::move An unknown diagnostic tool has flagged a usage in PruneNoOps, where an empty vector is std::move'd on multiple iterations of a loop, as error-prone. That was intended behavior. To silence the tool however, the empty vector declaration is moved inside the loop. Bug: chromium:1304953 Change-Id: Ie4b0c78e3f4a845db2b3b3a18d4ca095f0ba746b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3539443 Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com> Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
Shahbaz Youssefi f6910a9a 2022-03-20T22:43:57 Vulkan: Update pipeline creation doc Bug: angleproject:4889 Change-Id: Idb97d0484a716300feb9ed9a3fd882fbec870dbf Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3539440 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: mohan maiya <m.maiya@samsung.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Shahbaz Youssefi 40afbe4b 2022-03-20T23:39:57 Translator: Fix SimplifyLoopConditions producing dead code This causes the tree to fail validation. Dead code could be generated if the loop body ended in a branch. In such a case, no additional instructions are added to the transformed loop body after the original body. Bug: chromium:1300782 Change-Id: I4ec46c170ab5a45fa9b9b73d4e2b62c9c4fa24a3 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3539442 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Charlie Lao <cclao@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Alexey Knyazev e56f185b 2022-03-19T10:41:50 Metal: clarify instance count assertions Bug: angleproject:6963 Change-Id: I5a686d560efb7912b3426560c8be2806a943158c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3536659 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
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>
Alexey Knyazev 7c616871 2022-02-01T15:12:53 Metal: Implement ANGLE_base_vertex_base_instance Includes command buffer and MSL translator updates. The DrawElementsInstancedBaseVertexBaseInstance tests from DrawBaseVertexVariantsTest suite fail for dynamic draw and stream draw buffer usages. Bug: angleproject:6963 Change-Id: I6caa144860356d5fc85948b72458bec282ea3a3b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3429819 Reviewed-by: Kyle Piddington <kpiddington@apple.com> Reviewed-by: Kenneth Russell <kbr@chromium.org> Commit-Queue: Kenneth Russell <kbr@chromium.org>
Shahbaz Youssefi f96d2d35 2022-03-18T10:54:07 Test RGB invalidate with user FBOs When an RGB image is invalidated and then used as attachment, the cleared alpha value was previously lost due to loadOp=DONT_CARE. This was fixed by making the following render pass use loadOp=CLEAR instead. The test for this relied on RGB backbuffers, which is not easily testable on many platforms. This change adds a similar test using user FBOs. Bug: b/180139027 Bug: angleproject:6860 Change-Id: I11f408d6cd925b45bc9bcec455563cd23a226fec Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3536387 Reviewed-by: Ian Elliott <ianelliott@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Constantine Shablya e74d0e81 2022-02-11T18:05:12 Vulkan: Implement EGL_KHR_partial_update This change provides a trivial implementation of partial update that does nothing, making apps that want this extension happy. A possible efficient Vulkan implementation would use the damage set to narrow down render area, but it appears to only be useful for only some TBDR hardware. Bug: angleproject:6960 Reviewed-by: Antonio Caggiano <antonio.caggiano@collabora.com> Change-Id: Ic553ac9590c336093f1bf25a6521574622599bf6 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3427640 Reviewed-by: Ian Elliott <ianelliott@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Auto-Submit: Constantine Shablya <constantine.shablya@collabora.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Shahbaz Youssefi b74d6768 2022-03-17T16:48:21 Vulkan: Refactor D/S usage tracking in render pass This is in preparation for doing the same for color images. That is in turn in preparation for optimizing mid-render-pass clears, which require an answer to the following query: "has this color image been read from / written to so far in the render pass?" Bug: angleproject:5048 Change-Id: I8abe97919897b8fbf644482071bf7326ca3325d6 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3533143 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Charlie Lao <cclao@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Jamie Madill a55526a5 2022-03-17T11:11:37 Vulkan: Ignore VUID-vkCmdDraw-None-06538. Suspected as being incompatible API usage in ANGLE. Bug: angleproject:7105 Change-Id: I8c806b1ae090c5bedd762c1539a228c31a553858 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3533140 Auto-Submit: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Shahbaz Youssefi 22f177eb 2022-03-17T16:58:37 Vulkan: Expose advanced blend for non-coherent devices as well Reliance on coherent behavior was accidental. Bug: angleproject:3586 Change-Id: I86d055cf640368b57256910764c44596b23ccdd8 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3535299 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Geoff Lang 44e84661 2022-03-17T15:02:21 Revert "Emulate RGB10 (no alpha) on desktop OpenGL." This reverts commit 6404be2defd3ded3ff2f0437bb87fe515e10f2a7. Reason for revert: Extension was not fully enabled due to test bug. Original change's description: > Emulate RGB10 (no alpha) on desktop OpenGL. > > The OpenGL ES extension GL_EXT_texture_type_2_10_10_10_REV > requires RGB and RGBA formats to be supported but Desktop OpenGL > does not support RGB. Emulate it with the existing > emulatedAlphaChannel path in TextureGL. > > Bug: chromium:1300575 > Change-Id: I0e6d1044afbc55cf6d4f987cc98b357ff11ff006 > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3517346 > Reviewed-by: Jonah Ryan-Davis <jonahr@google.com> > Reviewed-by: Jamie Madill <jmadill@chromium.org> > Commit-Queue: Geoff Lang <geofflang@chromium.org> Bug: chromium:1300575 Change-Id: Ib3810a18888544f1700a1f648a5094c19973d86d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3533139 Reviewed-by: Geoff Lang <geofflang@chromium.org> Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Alexey Knyazev 479f1988 2022-03-17T11:50:46 Simplify ValidCompressedBaseLevel Bug: angleproject:7099 Change-Id: I9592aebde56808556f72b2b94a39f94d077f9db2 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3529527 Reviewed-by: Brandon Schade <b.schade@samsung.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
Kimmo Kinnunen b465a736 2021-12-21T12:52:40 Metal: Remove redundant CommandQueue::mMetalCmdBuffersTmp Instead of a member variable, instantiate the temporary at the use site. Bug: angleproject:6842 Change-Id: I64848bc937ce2945e6ac55adea8a6dffcaf9b00d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3347649 Reviewed-by: Kenneth Russell <kbr@chromium.org> Reviewed-by: John Cunningham <johncunningham@apple.com> Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
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>
Shahbaz Youssefi 98bb4f32 2022-02-23T16:51:32 Vulkan: Implement advanced blend through extension This change exposes GL_KHR_blend_equation_advanced if VK_EXT_blend_operation_advanced is supported. No emulation is yet implemented. Bug: angleproject:3586 Change-Id: Ie7a442c22e028e3aa45ccef52db320e205664d49 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3487951 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Charlie Lao <cclao@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Shahbaz Youssefi 3ddb21fd 2022-02-23T14:15:48 Front-end support for KHR_blend_equation_advanced Bug: angleproject:3586 Change-Id: I27086295e7455ce8848db1c6004917fea40202e8 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3484785 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Charlie Lao <cclao@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Brandon Schade 459bdc2f 2022-03-16T12:04:38 Reintroduce validation check only for D3D To avoid undefined behavior, D3D requires the base mip level to have multiple-of-4 dimensions. Add this validation check back in. Bug: angleproject:7099 Change-Id: Id51f6cd4c745455062b864c0d291b9857e985e35 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3530499 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Alexey Knyazev <lexa.knyazev@gmail.com> Commit-Queue: Brandon Schade <b.schade@samsung.com>
Steven Noonan 04460fe8 2022-03-15T19:04:39 end2end tests: add regression test for GL_LINE_LOOP drawing This was fixed by 349636a05a3577a127adb6c79a1e947890bbe462. Adding a regression test which I didn't have ready at the time. Bug: angleproject:7102 Change-Id: Icbb685c1ffad6725a278e5ed65f881f86c5688ef Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3527604 Reviewed-by: Charlie Lao <cclao@google.com> Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com> Commit-Queue: Charlie Lao <cclao@google.com>
Yuxin Hu 1dc9f126 2022-03-16T19:29:26 Revert "Flush the texture staged updates when destroying context share group" This reverts commit 5c29d795d1625f71ac6999f157b6f3bba79d5256. Reason for revert: this is causing some test failures on chromium and blocking the angle-chromium auto roller job: https://chromium-review.googlesource.com/c/chromium/src/+/3529771/ Original change's description: > Flush the texture staged updates when destroying context share group > > If we are using the extension EGL_ANGLE_display_texture_share_group, > flush the texture staged updates upon destroying the context. With the > extension enabled, the texture could still be alive when both context > and its' EGL::ShareGroup are destroyed. If we have staged updates not > yet flushed, the updates will keep the ShareGroupVk bufferpool occupied, > causing an error upon ShareGroupVk::onDestroy(). > > Bug: chromium:1299211 > Change-Id: I260de93c3a3099e023e31acbe017803e824459ad > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3495879 > Reviewed-by: Charlie Lao <cclao@google.com> > Reviewed-by: Jamie Madill <jmadill@chromium.org> > Commit-Queue: Yuxin Hu <yuxinhu@google.com> Bug: chromium:1299211 Change-Id: I214161d6a8aec834e1efc5fc9d2479e62e3bfae0 No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3530505 Auto-Submit: Yuxin Hu <yuxinhu@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Lubosz Sarnecki ed590dc8 2022-03-11T12:54:44 FrameCapture: Add override for Glsizei* types. Fix capturing glGetSynciv with null lengths on Linux. When calling the default WriteParamValueReplay handler with a nullptr, ostream on Linux will write `(nil)`. This fixes retracing all traces containing glGetSynciv calls with null lengths. Add a NullLength test to FenceSyncTests that used to fail in the capture_replay_tests. Test: capture_replay_tests.py --gtest_filter=FenceSyncTest.NullLength/* Bug: angleproject:7071 Bug: angleproject:6808 Change-Id: I0a2bd4db744ce2a026cd932ba0f2f4747672fcc8 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3526653 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Lubosz Sarnecki <lubosz.sarnecki@collabora.com>
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>
Roman Lavrov f8a2229e 2022-03-16T10:58:07 angle_system_info_test also exports androidSdkLevel Value being non-zero would unambiguously indicate that target is Android, not sure if the actual value is really needed but it's probably good to have. Bug: angleproject:6854 Change-Id: I685e8e0ffbb666349801203e9d09b082135af17e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3529966 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Roman Lavrov <romanl@google.com>
Roman Lavrov 08e007dd 2022-03-15T18:23:54 angle_system_info_test passes json via file --render-test-output-dir is supported by Android test runner so the file is first written on the device then copied over to the host. Bug: angleproject:6854 Change-Id: Ia56fd9c36ab68a495459efa3b1014e871a615565 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3526855 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Roman Lavrov <romanl@google.com>
Yahan Zhou 63b54d9d 2022-03-09T17:04:13 Do not copy parent layer frame position The position value in a frame refers to its relative position to its parent. We do not want to copy that to its new child layer. Test: when using ANGLE (with metal or swiftshader backend) with emulator frame, it should render the emulator at the right position. Bug: angleproject:7097 Change-Id: I94f78e1253d7ee016bf7ab512d908f75250ce9c7 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3523622 Reviewed-by: Kenneth Russell <kbr@chromium.org> Reviewed-by: Jonah Ryan-Davis <jonahr@google.com> Auto-Submit: Yahan Zhou <yahan@google.com> Reviewed-by: Yahan Zhou <yahan@google.com> Commit-Queue: Kenneth Russell <kbr@chromium.org>
Charlie Lao 349636a0 2022-03-15T09:39:36 Vulkan: Update mCurrentElementArrayBuffersync based on dirty bit The previous fix crrev.com/c/3513553 has run into corner case that requires more follow up change crrev.com/c/3522565. But with that, there is report that now we are hitting assertion in handleDirtyGraphicsIndexBuffer(). This becomes a bit fragile This new fix relies on the DIRTY_BIT_INDEX_BUFFER dirty bit and should be more reliable as long as the dirty bit is set properly (if not, then we have other bug that it won't even send down vulkan command to bind the correct element buffer). We could further optimize the code path and create a fast path for most common usages in the future. Bug: chromium:1299261 Change-Id: Ifa8f86d431798c9ca4c128ed71a3e9e0a3537ccb Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3526021 Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Charlie Lao <cclao@google.com>
Yuxin Hu 5c29d795 2022-02-28T23:56:46 Flush the texture staged updates when destroying context share group If we are using the extension EGL_ANGLE_display_texture_share_group, flush the texture staged updates upon destroying the context. With the extension enabled, the texture could still be alive when both context and its' EGL::ShareGroup are destroyed. If we have staged updates not yet flushed, the updates will keep the ShareGroupVk bufferpool occupied, causing an error upon ShareGroupVk::onDestroy(). Bug: chromium:1299211 Change-Id: I260de93c3a3099e023e31acbe017803e824459ad Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3495879 Reviewed-by: Charlie Lao <cclao@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Yuxin Hu <yuxinhu@google.com>
Brandon Schade 6baf1675 2022-03-04T11:04:46 Remove invalid validation check on compressed texture formats Remove the ValidCompressedDimension() check for non-WebGL contexts of compressed formats. This is because compressed texture images can have dimensions that are neither multiples of four nor small values like one or two. Test: gtest_filter=*DXT1CompressedTextureTest.NonBlockSizesMipLevels* Bug: angleproject:7099 Change-Id: Ic86c15dd3187ffab0665f6db21434fffcbe04fef Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3526017 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Brandon Schade <b.schade@samsung.com>
Charlie Lao d4ddd0c1 2022-03-10T16:31:00 Vulkan: Handle the case where the bound buffer is empty If vertex attribute is enabled and buffer is bound, but buffer size is 0, we should not crash. This CL skips mapImpl and data copy all together if size is 0 to avoid crash when calling mapImpl while buffer is invalid. This CL also added a test for this. Bug: chromium:1296467 Change-Id: I79af348f133e1d3b4427f044e370652d0875dc91 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3516700 Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Charlie Lao <cclao@google.com>
Lubosz Sarnecki 70af5ff0 2022-02-18T14:35:59 FrameCapture: Skip invalid VertexAttribPointer calls in MEC. In CaptureVertexArrayState when a non-default VAO is bound and no GL_ARRAY_BUFFER is bound, VertexAttribPointer calls with a non-null offset are invalid and will produce: "Client data cannot be used with a non-default vertex array object." Add a test that leaves a vertex array with an invalid vertex attribute pointer and used to produce an invalid trace with MEC. Test: angle_end2end_tests --gtest_filter="VertexAttributeTestES3.InvalidAttribPointer/*" Bug: angleproject:7042 Bug: angleproject:7098 Change-Id: Iaf91fe7f191c44df79db47bb5455e5df922f2ed5 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3475353 Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Lubosz Sarnecki <lubosz.sarnecki@collabora.com>
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 2397b5fe 2022-03-15T10:17:36 Vulkan: Temporarily suppress 3 perf counter tests on P6. Bug: angleproject:7096 Change-Id: I63ce1773282ac79ee9c0656b32715182d2e89d92 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3525814 Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> 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>
Alexey Knyazev d1415517 2022-03-15T06:45:23 Skip no-op base instance draw calls Bug: angleproject:3402 Change-Id: I90f17307efb98934b1faf44f2efbdbcfa4db9e0c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3524342 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
Alexey Knyazev b9b64b15 2022-03-15T06:31:32 Fix typo in DrawElementsInstancedBaseVertexBaseInstanceANGLE Bug: angleproject:3402 Change-Id: I490695e45b4bec31ea9226c6a7df4d426759c53f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3524341 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
Brandon Schade 1760ce37 2022-03-03T17:29:12 Add usage of Spirv through glslang build flag Add new build flag angle_use_spirv_gen_through_glslang. If set, angle_enable_spirv_gen_through_glslang is enabled and the generateSPIRVThroughGlslang feature is also enabled. Bug: angleproject:6210 Change-Id: I8f4f71c2d01314a36b15fae795caa01a1ffa7fbc Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3502529 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Brandon Schade <b.schade@samsung.com>
Kimmo Kinnunen d914e7fb 2022-03-09T16:28:06 Add device id as a part of the key in EGLDisplay cache Otherwise eglGetPlatformDisplay would return displays created with other devices. Bug: angleproject:7087 Change-Id: I6ad3fa03f02892afe43de7e7691fbba17a89d616 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3513753 Reviewed-by: Jonah Ryan-Davis <jonahr@google.com> Auto-Submit: Kimmo Kinnunen <kkinnunen@apple.com> Reviewed-by: Kenneth Russell <kbr@chromium.org> Commit-Queue: Kenneth Russell <kbr@chromium.org>
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 708ce9cf 2022-03-14T10:37:31 Fix crash when pausing XFB then deleting a buffer. Fix is to validate XFB buffer bindings even if we're paused. This is undefined behaviour so we can use any non-crashing solution. Bug: chromium:1305190 Change-Id: Ib95404cdb13adbde7f34d6cc77473a8b3cbf1de7 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3522283 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Charlie Lao e9d9d933 2022-03-14T09:33:28 Vulkan: Fix another corner case of mCurrentElementArrayBuffer mCurrentElementArrayBuffer is vertex array state. But it gets modified with different draw call parameters. When this changes, we always re-calculate mCurrentElementArrayBuffer. And we have added updateCurrentElementArrayBuffer call at various places where we need to reset mCurrentElementArrayBuffer to back to what bound to vertex array. There is still one more places missing such call, that when a different vertex array is been bound, the new vertex array may still have mCurrentElementArrayBuffer set to the special array for LineLoop. We need to reset it upon it gets bound. This CL also adds a new test case DrawElementsTest.LineLoopTriangles from Steven Noonan. Bug: angleproject:6955 Change-Id: Ida95062b071d25be26e59f886bfe3d61e6886c5c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3522565 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com> Commit-Queue: Charlie Lao <cclao@google.com>
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>
Xu Xing 7eb7596a 2022-03-10T14:32:58 Ensure non float uniform are actively used In mesa, the non float uniforms are optimized out when they are not active. This change ensures the unforms are active. Reference: https://gitlab.freedesktop.org/mesa/mesa/-/issues/6119 Bug: angleproject:7091 Change-Id: Iedff4a4b72a7204348c226778cfe940374632a4a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3515640 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jiajia Qin <jiajia.qin@intel.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Charlie Lao b97aab3f 2022-03-09T17:36:24 Vulkan: resync mCurrentElementArrayBuffer when out of lineloop When glDrawElements is called with GL_UNSIGNED_BYTE type or LineLoop mode, we will internally allocate an element buffer and copy data to it. But when we switch out of that mode, we must re-sync mCurrentElementArrayBuffer to what it should be based on VertexArray buffer binding. This CL fix the bug that we were previously not updating it and end up using the wrong element buffer. Also added three tests: DrawWithSameBufferButDifferentTypes: that uses GL_UNSIGNED_BYTE data and GL_UNSIGNED_SHORT data in the same buffer and switch between these two data types without incurring buffer change. DrawWithSameBufferButDifferentModes: draw line mode followed by triangle without the same element buffer. DrawArraysLineLoopFollowedByDrawElementsTriangle: draw line mode with glDrawArrays and then followed by DrawElements. Bug: chromium:1299261 Change-Id: I5c471117d300e9fac9127a9d8fa66d48ac312f03 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3513553 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com> Commit-Queue: Charlie Lao <cclao@google.com>
Jamie Madill 1cfbe863 2022-03-09T13:35:44 perf tests: Report multiple time metrics. We can now report cpu/wall/gpu time instead of just a single timing metric. This is in preparation for reporting other types of metric including counters. Also includes some other minor script improvements. Bug: angleproject:4918 Change-Id: I52a3241893c56a1bfe982990ebac0fa168dbac51 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3516969 Reviewed-by: Yuxin Hu <yuxinhu@google.com> Reviewed-by: Charlie Lao <cclao@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Geoff Lang 6404be2d 2022-03-10T11:04:22 Emulate RGB10 (no alpha) on desktop OpenGL. The OpenGL ES extension GL_EXT_texture_type_2_10_10_10_REV requires RGB and RGBA formats to be supported but Desktop OpenGL does not support RGB. Emulate it with the existing emulatedAlphaChannel path in TextureGL. Bug: chromium:1300575 Change-Id: I0e6d1044afbc55cf6d4f987cc98b357ff11ff006 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3517346 Reviewed-by: Jonah Ryan-Davis <jonahr@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Geoff Lang <geofflang@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>
Gert Wollny af2e0c01 2021-12-13T20:47:25 Capture/Replay: Override GL_HALF_FLOAT type for legacy formats Because GL_HALF_FLOAT and GL_HALF_FLOAT_OES have different values, and the format table created by BuildInternalFormatInfoMap() and queried to obtain the readback format uses GL_HALF_FLOAT_OES for legacy formats, we have to override the type in this case. Bug: angleproject:6333 Change-Id: Ibfdcf2ad80ccfb15872ab441c0f22f0851ffe3f0 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3332721 Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Gert Wollny <gert.wollny@collabora.com>
Jeff Vigil 66a5c924 2022-03-08T08:51:12 Remove unused Semaphore::init Bug: angleproject:7086 Change-Id: If7bd40ec7cbfebd3238f6a23aa682a57c14bd22b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3511312 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Antonio Caggiano ab786b21 2022-02-24T15:06:59 Vulkan: Non-mutable DmaBuf images When creating Vulkan images, certain DRM format modifiers can only be used without the mutable format flag. Bug: angleproject:7027 Change-Id: I6d57a4be1c21d30a963b17794aad6806b22acac8 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3488048 Auto-Submit: Antonio Caggiano <antonio.caggiano@collabora.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Charlie Lao fe4fa1cb 2022-03-08T11:10:16 Vulkan: Tune pruneEmptyBuffers() to be a bit more aggressive Right now we check every second and if we find a buffer is empty and remains empty for 4 checks, we free the buffer. This means we may keep peak memory usage for 4 seconds. This CL reduces the check to 1/4 seconds, so that a buffer will gets freed if not used for 1 second. Also added a threshold to keep maximum count of empty buffers to 16. This CL also optimizes pruneEmptyBuffers() function to avoid erase calls on each empty buffer block. We set the pointer to null as we free the empty buffer and a new loop is added at the end to remove all null elements at once. Bug: b/223428306 Change-Id: Iff93d6eb404ca22399b26c7adb7efe5c4b87270d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3511311 Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Charlie Lao <cclao@google.com>
Cody Northrop 48c86e1b 2022-03-04T15:38:38 Test: Add Solar Smash trace Test: angle_perftests --gtest_filter="*solar_smash*" Bug: angleproject:7080 Change-Id: Ia47c9fb40c0730b5131deaf81c5eb4fda0f43a04 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3504189 Auto-Submit: Cody Northrop <cnorthrop@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Lubosz Sarnecki <lubosz.sarnecki@collabora.com> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Mohan Maiya 4cca6b3e 2022-03-08T14:54:02 Early return when rebinding the same buffer, sampler or texture Bug: angleproject:6955 Test: SimpleStateChangeTestES3.BindingSame* Change-Id: If946a7cf534809d21e49138d9f34dcee61a73627 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3029049 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jeff Vigil 2bfec1a2 2022-03-03T08:22:11 Vulkan: Add EGL to VULKAN mapping for BT2020 colorspace Bug: angleproject:7072 Change-Id: I8d79a9ddcc9f0a4946c72821da25d0eda884d4cc Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3508166 Reviewed-by: mohan maiya <m.maiya@samsung.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>