src


Log

Author Commit Date CI Message
Dean Jackson 592b60fb 2022-10-06T12:34:48 Remove unnecessary fprintf of Metal shader output type Bug: angleproject:7740 Change-Id: I487913df1d0f29302ac6e955c27ee7cf4f34a73b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3934692 Commit-Queue: Kenneth Russell <kbr@chromium.org> Reviewed-by: Kenneth Russell <kbr@chromium.org>
Amirali Abdolrashidi c19ec948 2022-08-23T10:43:59 Vulkan: Implement imageless framebuffers * Added the attachment image and create info objects to be used for imageless framebuffers created in getFramebuffer(). * New helper class for framebuffers in RenderPassCommandBufferHelper: MaybeImagelessFramebuffer, which includes a framebuffer object, if the framebuffer is imageless, and the image views. This is to make sure that the args for render pass begin info will be correctly set up according to the status of the used framebuffer. * Refactored the collection of attachments in getFramebuffer() into a new function, getAttachmentsAndImagesFromRenderTargets(). It also returns their corresponding ImageHelper* objects used to create the framebuffer (from their image properties). * New struct: RenderTargetInfo; which keeps track of render targets and whether resolve image should be used for the render pass in the form of the enum class RenderTargetImage. * Added a new arg to getFramebuffer(): resolveRenderTargetIn; to use when there is a valid resolveImageViewIn. * Without using the framebuffer cache, we would require to handle the framebuffer destruction by adding it to the garbage instead of releasing it. For example, FramebufferVk::destroy() now adds mCurrentFramebuffer to the garbage. * Added new framebuffer unit tests. * Added tests where two textures with different attributes are bound to the same framebuffer before drawing, one after another. * Added test where a blit occurs from a multisample texture into a non-zero level of a resolve texture, each bound to a separate FBO. * Added a new perf test to compare performance for enabled imageless framebuffers vs disabled. (Credit: cclao) Bug: angleproject:7553 Change-Id: Iacdbd73aaa01cbb0e37abf01ae4892bdfdd4b12f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3827644 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com> Reviewed-by: Charlie Lao <cclao@google.com>
Jamie Madill 4ebdac79 2022-08-29T16:25:46 Vulkan: Ensure we sync the draw FB before beingQuery. Bug: chromium:1354271 Change-Id: I5fe3649d9d39de37d0a59c80a4f31a17d1a72838 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3863145 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Chris Dalton 2d31fe98 2022-09-22T21:04:22 Implement PLS on Apple Silicon Implements a subset of EXT_shader_framebuffer_fetch in the Metal translator that is sufficient to support pixel local storage. Metal's "programmable blending" feature is available on all Apple family GPUs beginning with version 2. Support for non-Apple GPUs will come later via readWrite textures, which can also be coherent by annotating them with [[raster_order_goup(0)]]. Bug: angleproject:7279 Change-Id: Ic74f6c0d21e87eb919e1f487163388d08d126857 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3916794 Reviewed-by: Kenneth Russell <kbr@chromium.org> Commit-Queue: Chris Dalton <chris@rive.app> Reviewed-by: Gregg Tavares <gman@chromium.org>
Jamie Madill 04f3ed80 2022-10-04T08:24:16 Perf Tests: Use specified trial time for warmup. When the user specifies a trial time, use this for the warmup time instead of using the calibration time. This will give a longer warmup time on our test infra and should help stabilize perf testing scores on our bots. Bug: angleproject:7671 Change-Id: I65fb8a7ae1f684d3f7834613d8341d17bd2df00f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3933315 Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Robert Mader f53eac29 2022-09-19T15:08:54 Reland "EGL: Implement EGL_EXT_image_dma_buf_import_modifiers" This is a reland of commit 1d8dce2587a23b59f911c801856372996bdb2f64 New changes: - fail softly on buggy drivers (which are part of the CI) Original change's description: > EGL: Implement EGL_EXT_image_dma_buf_import_modifiers > > This reverts Ifbb0a182171646df8161f6f42eafe2a476fea6b2 and implements > the previously missing bits. Inspired by the corresponding Vulkan > implementation. > > The extension is used by an upcoming Exo feature which was successfully > tested with this patch, see > https://chromium-review.googlesource.com/c/chromium/src/+/3857556 > > Bug: angleproject:7664 > Change-Id: I951d1a787e1db3a77b19fcea6186b7aa0a29872f > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3904345 > Reviewed-by: Geoff Lang <geofflang@chromium.org> > Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> > Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Bug: angleproject:7664 Change-Id: I732fc9dad54366553987104fa035bde2afe08ecd Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3924350 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Shahbaz Youssefi 13195f8a 2022-10-05T11:17:35 Vulkan: Fix missing input attachment usage on MSRTT When combined with advanced blend (or framebuffer fetch for that matter), MSRTT attachments could be used as input attachments. This change fixes the missing usage bit. Bug: angleproject:7739 Change-Id: I2190e4a6e534e120357dd68189fb9de07b6c54fa Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3936444 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Yuxin Hu <yuxinhu@google.com> Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Shahbaz Youssefi 159f3e62 2022-09-28T23:34:06 Vulkan: Make sure spirv-val doesn't generate friendly names This makes it harder to debug as the disassembly uses raw ids. Additionally, the generation of friendly names itself is costly. On GLES1's TexCombine test, this change reduces run time by ~7%. Bug: angleproject:6644 Change-Id: I47e6752cd709733c49915dd374c18f5438c0bfdf Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3926038 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Yuxin Hu <yuxinhu@google.com> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Chris Dalton b5514bb2 2022-09-21T20:47:00 Support pixel local storage on ES 3.0 Now that the application-facing API is implemented, we don't have to rely on ES 3.1 anymore. Expose and test the extension on ES 3.0. Bug: angleproject:7279 Change-Id: I5635620b9088201c20bafd283813092a329225d6 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3915327 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Chris Dalton <chris@rive.app> Reviewed-by: Kenneth Russell <kbr@chromium.org> Commit-Queue: Chris Dalton <chris@rive.app>
Hailin Zhang 5ddf631c 2022-10-04T11:17:45 Vulkan: Choose host visiable device local based on heap size. set preferDeviceLocalMemoryHostVisible based on the host visiable device local and device local heap memory heap size. Bug: b/246909451 Change-Id: I1e63931baceda02396b0eb8f24671949920ac2a5 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3934479 Reviewed-by: Charlie Lao <cclao@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Hailin Zhang <hailinzhang@google.com> Reviewed-by: Mateusz Przybylski <mprzybyl@google.com>
Cody Northrop c09d1475 2022-10-05T14:52:40 restricted_trace_perf: Switch to --warmup-trials Restore functionality after updates in: https://chromium-review.googlesource.com/c/angle/angle/+/3906144 Test: restricted_trace_perf.py Bug: angleproject:6970 Change-Id: I0632907b6dab0c0ad91536d42cac8eaf433f4da7 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3936966 Commit-Queue: Cody Northrop <cnorthrop@google.com> Reviewed-by: Charlie Lao <cclao@google.com>
Cody Northrop e577353d 2022-09-29T17:20:22 restricted_trace_perf: Sleep between tests option In order to get the most "real world" numbers possible, we're going to start running with clocks unlocks on Pixel devices. To avoid thermal throttling, allow for a pause between each test. Test: restricted_trace_perf.py Bug: angleproject:6970 Change-Id: If3f813cf1eadab6ea56122a3945f694eed79ed9a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3936965 Reviewed-by: Charlie Lao <cclao@google.com> Commit-Queue: Cody Northrop <cnorthrop@google.com> Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Shahbaz Youssefi a3b3d948 2022-10-05T14:15:32 Revert "Suppress DrawBuffersTest.MidRenderPassClearWithGapsRGB" This reverts commit 668184941e8d107d585743c91359963f3410d434. Reason for revert: VVL bug fixed Original change's description: > Suppress DrawBuffersTest.MidRenderPassClearWithGapsRGB > > To get vulkan-deps Autoroller working again > > Bug: angleproject:7736 > Change-Id: Iff6bb5bfc04fb22cb2cd7126d5ecbd932a5e9af5 > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3934478 > Commit-Queue: Ian Elliott <ianelliott@google.com> > Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> > Reviewed-by: Jamie Madill <jmadill@chromium.org> > Auto-Submit: Ian Elliott <ianelliott@google.com> > Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Bug: angleproject:7736 Change-Id: I2727447907f2e25cf9b854ffcc9ccfc04db2fb95 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3936442 Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Ian Elliott <ianelliott@google.com>
Cody Northrop 503b250a 2022-08-31T20:06:57 restricted_trace_perf: Use Android platform loader With persistent shader caching enabled, we now need to run the trace tests exclusively in "native" mode, with ANGLE as the driver. The cache is provided via the EGL_ANDROID_blob_cache extension, and it is only enabled using Android's EGL loader. Test: restricted_trace_perf.py Bug: angleproject:6970 Change-Id: If791bfe199217dcc80105b55d8769fe43ffd9739 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3868310 Reviewed-by: Charlie Lao <cclao@google.com> Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Shahbaz Youssefi 391644f4 2022-08-24T14:59:21 Vulkan: Use VK_EXT_rasterization_order_attachment_access When available, this extension makes coherent framebuffer fetch / advanced blend official. Bug: angleproject:7604 Change-Id: Ifc552a0fa7a3612a3fc568feb61d6dd348e856ff Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3855698 Reviewed-by: Chris Dalton <chris@rive.app> Reviewed-by: Yuxin Hu <yuxinhu@google.com> Commit-Queue: Yuxin Hu <yuxinhu@google.com> Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org>
Jamie Madill d8489db5 2022-10-05T12:57:06 Perf Tests: Reduce resource usage. This halves the amount of time spent running the tests on desktop platforms. It also reduces the number of shards used on desktop platforms, to reduce resource utilization. It also bumps up the test timeout to keep from getting infra errors. Bug: angleproject:7738 Change-Id: Ie487c06452a39bb9ad1fe29b0d682e9c1bf297d5 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3936448 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Le Hoang Quyen d64c54e3 2022-09-26T21:25:18 D3D11: Make DebugAnnotator11 thread safe. Bug: chromium:1366778 Change-Id: I50662895be8ec40de4ded8c4f84bde59ae40e98b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3917936 Reviewed-by: Jonah Ryan-Davis <jonahr@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Quyen Le <lehoangquyen@chromium.org>
Amirali Abdolrashidi 06d0389a 2022-10-04T19:26:48 Remove leftover code regarding render pass serial * Removed the render pass serial reset in the function where the current framebuffer is released. (left over from a prior CL.) Bug: angleproject:7553 Change-Id: I61b4a12ac8957f6e1dcd4bf0f4e233c068736dff Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3931901 Auto-Submit: Amirali Abdolrashidi <abdolrashidi@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Cody Northrop 637209c9 2022-10-02T22:05:12 Tests: Add Survivor.io trace Test: angle_perftests --gtest_filter="*survivor_io*" Bug: angleproject:7728 Bug: angleproject:7733 Bug: angleproject:7737 Change-Id: Ic337af781a209c3302bee748c5aed47f367993a8 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3932009 Commit-Queue: Cody Northrop <cnorthrop@google.com> Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Ian Elliott 66818494 2022-10-04T12:21:02 Suppress DrawBuffersTest.MidRenderPassClearWithGapsRGB To get vulkan-deps Autoroller working again Bug: angleproject:7736 Change-Id: Iff6bb5bfc04fb22cb2cd7126d5ecbd932a5e9af5 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3934478 Commit-Queue: Ian Elliott <ianelliott@google.com> Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Auto-Submit: Ian Elliott <ianelliott@google.com> Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Shahbaz Youssefi 7d10d160 2022-09-29T23:31:40 Vulkan: Fix VK_EXT_pipeline_robustness vs compute Robustness was not specified for compute. Bug: angleproject:5845 Change-Id: I3f3b1e90cc4e965ff4cfcd569587caa952e5eaa2 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3924871 Reviewed-by: Alexis Hétu <sugoi@chromium.org> Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Jamie Madill 5b3781ec 2022-10-03T16:09:35 Remove namespacing from all ANGLE loaders. This will make it easier to work with pure C files. Bug: angleproject:7731 Change-Id: I2fe9af486af5f339d973c9149f082eb1f2efa8c4 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3925426 Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Cody Northrop be8aa9e9 2022-10-01T21:53:14 Test: Add The Gardens Between trace Test: angle_perftests --gtest_filter="*the_gardens_between*" Bug: angleproject:7725 Change-Id: I3160155018d843f57ec6e2cd6455fd2f6e1af580 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3931398 Reviewed-by: Roman Lavrov <romanl@google.com> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Shahbaz Youssefi 5d7c4eca 2022-10-02T02:27:27 Vulkan: Don't flush depth/stencil on color blit When syncing the read framebuffer for blit, deferred clears are picked up for the attachments that are not being synced. They are then redeferred so a future command would pick them hopefully as loadOp. This change improves the frame time of Pretty Derby on Pixel 6 by ~23%. Bug: angleproject:7727 Change-Id: Ie7d84c58315cd09204e5229f1ec73605d5a7f639 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3931973 Reviewed-by: Charlie Lao <cclao@google.com> Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Shahbaz Youssefi 1d73bad5 2022-10-01T22:50:48 Vulkan: Fix reclear of rendered-to depth/stencil An optimization drops re-clears of images to the same value. When a render pass does: - clear - render - store the "cleared" status of the image was removed because at the end of the render pass, the image no longer has the cleared value. However, this was mistakenly only done for color, but should have been done for depth and stencil as well. Bug: b/239430388 Change-Id: Ib99e0df460eaa82ce87b593276abd9b07f0a8375 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3931972 Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Ian Elliott 34977cc5 2022-10-03T11:55:28 Supress vkDestroySemaphore-semaphore-01137 Bug: angleproject:7729 Change-Id: If93b6411bed472417d62f8e63682991a493dc526 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3929750 Reviewed-by: Ian Elliott <ianelliott@google.com> Commit-Queue: Ian Elliott <ianelliott@google.com> Reviewed-by: Roman Lavrov <romanl@google.com> Auto-Submit: Ian Elliott <ianelliott@google.com>
Chris Dalton a7dc51f2 2022-10-01T08:49:11 Add a framebuffer fetch implementation of PLS The framebuffer fetch implementation works by attaching PLS backing textures to the framebuffer, and then rewriting PLS uniforms as "inout" fragment variables. The compiler's existing machinery takes it from there and makes it work on GL and Vulkan, and soon Metal. EXT_shader_framebuffer_fetch is now the preferred backend for pixel local storage, but we also use EXT_shader_framebuffer_fetch_non_coherent if shader images can't be coherent. This is especially interesting for Vulkan, since noncoherent framebuffer fetch is possible without any extensions. Bug: angleproject:7279 Bug: angleproject:7683 Bug: angleproject:7684 Bug: angleproject:7724 Change-Id: I33f3b2c6df9a5709969d9165c448ea71b096c9e1 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3900142 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Kenneth Russell <kbr@chromium.org> Commit-Queue: Chris Dalton <chris@rive.app>
Cody Northrop 9905dabe 2022-09-30T00:47:17 Tests: Add Darkness Rises trace Test: angle_perftests --gtest_filter="*darkness_rises*" Bug: angleproject:7719 Change-Id: I0b99678003662c5e0bb89a5b78490276224a8eaa Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3929333 Commit-Queue: Cody Northrop <cnorthrop@google.com> Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Hailin Zhang 836cc5e2 2022-09-09T22:06:22 Vulkan: add etc to bc compute transcoding. use compute shader to transcode etc format to bc format. Bug: b/243398683 Change-Id: Idbd0820a2df8d92fe690055dae2933bc559e9bfd Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3888501 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Charlie Lao <cclao@google.com> Commit-Queue: Hailin Zhang <hailinzhang@google.com>
Cody Northrop f7a5cce1 2022-09-29T10:42:26 Tests: Add Life is Strange trace Test: angle_perftests --gtest_filter="*life_is_strange*" Bug: angleproject:7711 Bug: angleproject:7723 Change-Id: I83d9d58270a80435dba8991875b20a215372334f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3928205 Reviewed-by: Yuxin Hu <yuxinhu@google.com> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Chris Dalton a81679bc 2022-09-26T23:56:34 Support EXT_shader_framebuffer_fetch on GLES All the frontend functionality for EXT_shader_framebuffer_fetch is already present, but only supported on Vulkan. This change wires it up for the native GLES backend as well. Bug: angleproject:7279 Bug: angleproject:7703 Change-Id: Ie1fce79e08a78662c8af65d33f3d8417c96cf58e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3920577 Commit-Queue: Chris Dalton <chris@rive.app> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Brian Sheedy 0a288f29 2022-09-30T18:25:04 Revert "EGL: Stop announcing EGL_EXT_image_dma_buf_import_modifiers" This reverts commit 11ac69d0a4942a0bbbf71193c10a39eb054d1448. Reason for revert: Breaks ChromeOS tests crbug.com/1368287 Original change's description: > EGL: Stop announcing EGL_EXT_image_dma_buf_import_modifiers > > The extension was enabled in > https://chromium-review.googlesource.com/c/angle/angle/+/2128190 without > implementing the required functions, `DisplayImpl::queryDmaBufFormats` > and `DisplayImpl::queryDmaBufModifiers`, resulting in crashes. > > Bug: angleproject:7664 > Change-Id: Ifbb0a182171646df8161f6f42eafe2a476fea6b2 > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3902321 > Reviewed-by: Geoff Lang <geofflang@chromium.org> > Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Bug: angleproject:7664 Change-Id: Idfeecffc18bebfbda5256ad510ee0c60aeb1338f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3930547 Reviewed-by: Roman Lavrov <romanl@google.com> Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Commit-Queue: Brian Sheedy <bsheedy@chromium.org> Reviewed-by: Roger Tawa <rogerta@chromium.org>
Shahbaz Youssefi 583fd03e 2022-09-29T16:28:05 Translator: Fix ClampIndirectIndices vs. unsized arrays A deepCopy() was missing from this code path, which led to an AST validation error. However, clamping indices for unsized arrays is not strictly correct. For example, an out of bounds write with robustness is expected to be dropped, not overwrite the last element. Since robustness already covers storage blocks, this clamping is no longer done. Bug: angleproject:7712 Change-Id: I96dd18ef47cd453f19391bdccbd4372c24854ade Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3924863 Reviewed-by: Yuxin Hu <yuxinhu@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Corentin Wallez 90201481 2022-09-30T17:37:15 Add missing include for std::function A roll of libc++ in Dawn finds these issues. Bug: dawn:1532 Change-Id: I5e3f8e89630b13e22b2942e10648761bed80920c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3925805 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Auto-Submit: Corentin Wallez <cwallez@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Jamie Madill 67af8d89 2022-09-19T15:19:57 Perf Tests: Make dynamic step count calibration optional. This uses a fixed test time for the tests, instead of using an extra step to calibrate a number of steps to run in an approximate maximum time. Before: 1. run a test for <test time>, return the number of steps 2. for <num samples> x <num trials> times, run the tests for that number of steps After: 1. for <num samples> x <num trials> times, run the tests for <test time> This saves some total time since we don't need to run the tests in a pre-process to calibrate the number of steps, and it also makes this test script more like the restricted trace perf script. Bug: angleproject:7671 Change-Id: I413cbf8d65f9f2f87781d8607f799d2450a71ea7 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3906144 Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Roman Lavrov <romanl@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Cody Northrop 63c54da3 2022-09-29T22:32:54 FrameCapture: Fix default uniform sampler base loc Follow up to: https://chromium-review.googlesource.com/c/angle/angle/+/3928253 Samplers are handled specially above the previous changes. Test: Darkness Rises MEC Bug: angleproject:7719 Bug: angleproject:7720 Change-Id: I72848eaced4da379fe724aebf61a75616f614e1c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3929328 Commit-Queue: Cody Northrop <cnorthrop@google.com> Reviewed-by: Roman Lavrov <romanl@google.com>
Gert Wollny 943d71e1 2022-08-11T10:17:06 gl_test: add a test to capture/replay MEC with EGL images Bug: angleproject:7564 Change-Id: I1cb84c5bccd20b5614ddd400797f112138f8c200 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3826162 Commit-Queue: Gert Wollny <gert.wollny@collabora.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Constantine Shablya ff7aa214 2022-09-29T19:56:28 GL_PALETTE* sampling Implement GL_PALETTE* formats by decoding them into a R8G8B8A8_UNORM image at load time. Test: angle_end2end_tests --gtest_filter="PalettedTextureTest.*" Bug: angleproject:7599 Bug: angleproject:7688 Bug: angleproject:7710 Change-Id: I94d51e2c480fcdd39f1a0ad241b311d3b4de1579 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3863251 Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Constantine Shablya <constantine.shablya@collabora.com>
Antonio Maiorano 3cc948ad 2022-09-29T21:09:11 Scope LogMessage debug mutex lock to avoid deadlock on ANGLE_CRASH In the LogMessage destructor, in debug builds, the g_debugMutex gets locked; however, if ANGLE_CRASH() is called at the bottom of the function, and SEH (via /EHsc) is used (such as in googletest), then the lock destructor will not get called, and the mutex will not be released. If another LogMessage is created subsequently, the process will hang on attempting to lock the mutex again. This is exactly what happened when this Dawn unit test failed, and would hang for about 2 hours until the runner timed out: http://go/bbid/8801856579635182833 This CL scopes the lock to not include the ANGLE_CRASH() call (and the break into debugger). Bug: angleproject:7715 Change-Id: Ib31ad9c0641a521e28f1179c079ba1555c3274e2 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3928211 Commit-Queue: Antonio Maiorano <amaiorano@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Yuxin Hu 053c6a06 2022-09-20T15:17:28 Vulkan: Add more tests for attachmentless framebuffer This CL adds below test scenarios for attachmentless framebuffer: 1. Create first attachmentless framebuffer with larger size, and create second attachmentless framebuffer with smaller size. 2. Create an attachmentless framebuffer with smaller size, and grow its default width and height. 3. Create an attachmentless framebuffer with larger size, and shrink its default width and height. 4. Create an attachmentless framebuffer with larger size, given it an attachment with a medium size, and shrink its default width and height. This CL also splits the test failure bugs on different vendor and renderer to different bug tickets. This CL addresses a bug on vulkan backend: only skip onFramebufferChange() if the framebuffer has at least one attachment, and mCurrentFramebufferDesc equals to priorFramebufferDesc. Otherwise in test scenario 2 and 3 above, we will use the wrong scissor size, because the FramebufferDesc remains the same before and after changing the default width and height, and we will wrongly skip onFramebufferChange() where we update scissor area to match with the new default width and height. Bug: angleproject:7666 Bug: angleproject:7697 Bug: angleproject:7699 Bug: angleproject:7700 Bug: angleproject:7705 Change-Id: Ieb143b27f8c1a229dab8f43d0a16e3e871185941 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3908332 Reviewed-by: Charlie Lao <cclao@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Cody Northrop a047af14 2022-09-29T16:12:28 Disable NV_framebuffer_blit during capture This extension is only available on ANGLE and Nvidia. Disabling the extension allows for a more portable trace. Test: Life is Strange MEC Bug: angleproject:7711 Change-Id: I11d941af97a504386a53a6ba7ac4008b1f4300a1 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3928208 Reviewed-by: Roman Lavrov <romanl@google.com> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Cody Northrop 6dc30c00 2022-09-29T08:41:53 FrameCapture: Reset default uniform arrays If an application has updated a single uniform in the middle of an array, we need to emit the Reset call for the entire array. We don't track Reset calls per individual location in an array. Test: Life is Strange MEC Bug: angleproject:7711 Change-Id: Idec991ad060eb5e12272713a58aa921c5912f1cc Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3928253 Reviewed-by: Roman Lavrov <romanl@google.com> Reviewed-by: Yuxin Hu <yuxinhu@google.com> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Cody Northrop 055d4c2f 2022-09-28T17:31:37 Tests: Add Star Wars: Galaxy of Heroes trace Test: angle_perftests --gtest_filter="*star_wars_galaxy_of_heroes*" Bug: angleproject:7709 Change-Id: I00937ea7e637d618999ec57af6e1b5efed56ebe3 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3927947 Reviewed-by: Roman Lavrov <romanl@google.com> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Roman Lavrov 6f037273 2022-09-28T18:46:13 Make last lines of batch stdout more visible in logs. So that it looks like this: https://gist.github.com/romanl-g/dd0d2f7e0eddf16fd802bed97789024c Bug: angleproject:7708 Change-Id: Ic92a9de6cba24637119ae9041e9126364d414948 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3923459 Commit-Queue: Roman Lavrov <romanl@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Auto-Submit: Roman Lavrov <romanl@google.com>
Jamie Madill b681e939 2022-09-19T13:20:23 Turn on trace data hash checking automatically. This should save time uploading trace data already present on the device. Bug: angleproject:7671 Change-Id: Ie655cba284b6b3aec2e264cd4d64e4d18ebff8a7 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3905902 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Roman Lavrov <romanl@google.com>
Shahbaz Youssefi d524157f 2022-09-28T23:16:02 GLES1/Vulkan: Don't validate SPIR-V as VVL does the same Improves TexCombine runtime by ~15%. Bug: angleproject:6644 Change-Id: I01f580fef0caa91ebf600cfc0bbbeca1aa20eb06 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3926037 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Shahbaz Youssefi 1abeeaae 2022-09-28T12:22:58 GLES1/Vulkan: Remove double SPIR-V validation assertion The SPIR-V transformation is validated on program link because many tests link programs but don't draw with them. This helps catch bugs. However, GLES1 programs are always created right before draw, so the SPIR-V transformer will definitely be run on them. The link-time validation is thus unnecessary. This change disables the latter on GLES1, which cuts down the TexCombine test run time by about 10%. Bug: angleproject:6644 Change-Id: Idb9d229fc08bf746f933fa8924fa67e5426f87a7 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3926036 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Jamie Madill 65d3d0f6 2022-09-19T10:42:43 run_perf_tests: Add option to find test binary in out dir. This allows us to run the perf test runner script from any directory and use that as a basis to find the most recently modified test suite binary. This saves us from chdir()ing into test directory every time we want to run a test suite. Ideally this should move into the test utils folder to be used by the gold tests script as well. Bug: angleproject:7671 Change-Id: Iead98670bb5f7627ae32f7ac41b4ebcee2726841 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3904427 Reviewed-by: Roman Lavrov <romanl@google.com> Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Johannes Kauffmann 1b908d0a 2022-09-28T00:43:13 HandleAllocator: add missing <limits> include The existing <algorithm> and <functional> includes are not specified to also include <limits>, which is required for std::numeric_limits<T>::max and friends. Bug: None Change-Id: I4cee038b652a887ef5cdf82098fbc62bd4fc7483 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3924334 Auto-Submit: Johannes Kauffmann <johanneskauffmann@hotmail.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Peng Huang 5c995ef3 2022-09-28T08:06:13 Revert "EGL: Implement EGL_EXT_image_dma_buf_import_modifiers" This reverts commit 1d8dce2587a23b59f911c801856372996bdb2f64. Reason for revert: causes test failures on chromeos kevin bot b/248404756 Original change's description: > EGL: Implement EGL_EXT_image_dma_buf_import_modifiers > > This reverts Ifbb0a182171646df8161f6f42eafe2a476fea6b2 and implements > the previously missing bits. Inspired by the corresponding Vulkan > implementation. > > The extension is used by an upcoming Exo feature which was successfully > tested with this patch, see > https://chromium-review.googlesource.com/c/chromium/src/+/3857556 > > Bug: angleproject:7664 > Change-Id: I951d1a787e1db3a77b19fcea6186b7aa0a29872f > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3904345 > Reviewed-by: Geoff Lang <geofflang@chromium.org> > Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> > Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Bug: angleproject:7664,b/248404756 Change-Id: Ib46d3ca76ce575be593dfa5322315621fb006158 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3924955 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Peng Huang <penghuang@chromium.org>
Amirali Abdolrashidi b9cd542e 2022-09-15T17:31:35 Vulkan: Use serial to check which FBO has open RP In preparation for the scenario where an imageless framebuffer is shared, checking whether the started render pass belongs to a certain framebuffer is tweaked to use a serial-based method instead of checking the framebuffer handle. * Added the last render pass serial to ContextVk, which increments every time a render pass begins. The serial is also stored in the FramebufferVk object invoking it. * Added the type RenderPassSerial for this purpose. * Serials are generated through a serial factory in ContextVk. * Updated hasStartedRenderPassWithSerial() to match the serials instead of the handles. * Removed the getFramebuffer() calls from FramebufferVk and UtilsVk that are now unused. Bug: angleproject:7553 Change-Id: Id60dcbf7973558d35e55ff4af4c71e50c6853bba Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3897970 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Charlie Lao <cclao@google.com> Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
Shahbaz Youssefi c1dc9de5 2022-09-27T12:49:21 GLES1: Enable SpotExpDir Likely fixed by the lighting fixes. Bug: angleproject:6201 Change-Id: Idc74d4e169dd3c1b2176b6db0a2559c25197ebd7 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3922777 Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Shahbaz Youssefi 74c2f2d3 2022-09-27T11:40:51 GLES1: Enable UserClip tests Passing now. Bug: angleproject:3408 Change-Id: I4306f5eb8ae85d52dca8956cc22eac49ce957a14 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3922775 Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Cody Northrop 380ae37b 2022-09-26T21:34:22 Tests: Add Sky Force Reloaded trace Test: angle_perftests --gtest_filter="*sky_force_reloaded*" Bug: angleproject:7701 Change-Id: I6d86c760d007807a14cc88e869e8fc3c5e8f6a2f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3920575 Reviewed-by: Roman Lavrov <romanl@google.com> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Cody Northrop 7d0c5cc0 2022-09-26T20:47:48 Tests: Add Gacha Club trace Test: angle_perftests --gtest_filter="*gacha_club*" Bug: angleproject:7698 Change-Id: I84d055115235fb5506b8d14b5777b3070ed2728a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3920574 Reviewed-by: Roman Lavrov <romanl@google.com> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Lubosz Sarnecki 97bdac9b 2022-09-13T11:09:51 Tests: Add Zenonia 4 trace. Test: angle_perftests --gtest_filter="*zenonia_4*" Bug: angleproject:7652 Change-Id: I7a3ff361085ba64f389be8ed487af635400fa2e8 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3913504 Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Lubosz Sarnecki <lubosz.sarnecki@collabora.com>
Shahbaz Youssefi dd0fc335 2022-09-26T22:56:29 GLES1: Make CTS verbose The `machine` parameters were uninitialized (set to 0 as globals). As a result, the test failure messages were not emitted, making it harder to understand what is failing. Bug: angleproject:3408 Change-Id: Ib8351755af24e01736314d1832160edf10a8e767 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3920894 Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Shahbaz Youssefi 01285f16 2022-09-26T23:19:28 Remove Platform.h Overloaded name. Causing trouble with gles1's platform.h on case-insensitive file systems despite the different case. Bug: angleproject:3408 Change-Id: Icc1644a4c6a9c9076a2bbafbfb1d6eac578b731a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3920895 Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Shahbaz Youssefi 163e56e4 2022-09-20T00:40:55 Allow feature overrides to end in * (wildcard) Makes it easier to apply overrides to features with long names. Also works around Android's limit of 92 characters for debug properties. Bug: b/238024366 Change-Id: I8f417287f92b2439de1a7b7d6abbaf9e61b405e8 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3906222 Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org>
Geoff Lang 818a8ace 2022-09-26T19:50:03 Revert "Vulkan: Add missing part for supporting GBM Platform type" This reverts commit 43354edbe671af534c469089066e0259731563c7. Reason for revert: Fails on ChromeOS bots in Chrome. Original change's description: > Vulkan: Add missing part for supporting GBM Platform type > > Adds missing part to support GBM platform type. > > Bug: angleproject:7481 > Signed-off-by: Sungyong Choi <sywow.choi@samsung.com> > Change-Id: I46caa4a958274de1111b30b144df592ac4cdcf6e > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3736243 > Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> > Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> > Reviewed-by: Jeff Vigil <j.vigil@samsung.com> > Reviewed-by: Antonio Caggiano <antonio.caggiano@collabora.com> Bug: angleproject:7481 Bug: angleproject:7696 Change-Id: I76fa4e38ea1f866575bc38725c23b697d17b53a6 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3918856 Reviewed-by: Geoff Lang <geofflang@chromium.org> Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Commit-Queue: Roman Lavrov <romanl@google.com>
Geoff Lang 25bad36c 2022-09-23T13:23:57 Metal: Remove unpackLastRowSeparatelyForPaddingInclusion This speculative fix did not work. Bug: angleproject:7573 Change-Id: I345db1746f8725d82420aabffb37c8dd01230a34 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3915182 Commit-Queue: Geoff Lang <geofflang@chromium.org> Reviewed-by: Gregg Tavares <gman@chromium.org> Reviewed-by: Kenneth Russell <kbr@chromium.org>
Geoff Lang 70e5e90f 2022-09-23T13:17:34 Metal: Avoid locking IOSurfaces in glReadPixels on AMD. The AMD driver tends to crash when locking IOSurfaces. Avoid this by using the copyIOSurfaceToNonIOSurfaceForReadOptimization feature to do a texture-texture copy before reading back data to the CPU. This is a *speculative* fix due to seeing crashes in the ClientLockIOSurface function in the AMD driver. Bug: angleproject:7573 Change-Id: Ia120f2a96eed65431b5f8a99cf1da7d7e85da639 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3915181 Reviewed-by: Kenneth Russell <kbr@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org> Reviewed-by: Gregg Tavares <gman@chromium.org>
Geoff Lang 2aa52da7 2022-09-23T13:15:44 Metal: Upload IOSurface data with staging buffers on AMD Crashes have been seen in the AMD driver when locking IOSurfaces. Avoid this by always using a staging buffer and doing a GPU-GPU copy for uploading client side data to IOSurfaces. Bug: angleproject:7573 Change-Id: I4d981a24554a755a7248199699b486d98cbad83d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3915180 Commit-Queue: Kenneth Russell <kbr@chromium.org> Reviewed-by: Gregg Tavares <gman@chromium.org>
Roman Lavrov 1fc6c49c 2022-09-23T16:39:26 Log additional info when "failed to record some samples" Check each sample instead of total in the end to make it more clear. Bug: angleproject:7117 Change-Id: I7d6137c535266e4cf47e772b816cfb8bfa4575d3 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3916516 Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Yuly Novikov <ynovikov@chromium.org> Auto-Submit: Roman Lavrov <romanl@google.com>
Shahbaz Youssefi f4389797 2022-09-23T15:36:13 GLES1/Vulkan: Enable GL_EXT_multisample_compatibility ... with a non-conformant implementation. This unblocks some tests that unnecessary call glDisable(GL_MULTISAMPLE) and trip up on it generating validation error. Bug: angleproject:7676 Bug: angleproject:7657 Bug: angleproject:3863 Bug: angleproject:3864 Change-Id: Iaebbea66da81fc9a30bf7a87deed7cf88ff38476 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3891546 Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Shahbaz Youssefi bc447ca4 2022-09-20T22:38:16 GLES1: Move lighting to vertex shader In the spec, lighting is done as part of vertex processing, and results in a new vertex color. Texturing is applied later. ANGLE however did lighting in the fragment shader. With this change, lighting is moved to the vertex shader. This fixes rendering of lit objects, as interpolation is done linearly or flat between the vertices per spec, instead of done precisely per fragment. While typically this is inferior to per-fragment lighting, it's what the spec mandates. On the dr_driving trace, this reduces the render pass time by ~20% on Pixel 6. Bug: angleproject:6201 Bug: angleproject:6644 Change-Id: I10e37df8c56c22d520a738af8f8630bc6a01ca7f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3906394 Reviewed-by: Constantine Shablya <constantine.shablya@collabora.com> Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Sungyong Choi 43354edb 2022-06-30T10:18:41 Vulkan: Add missing part for supporting GBM Platform type Adds missing part to support GBM platform type. Bug: angleproject:7481 Signed-off-by: Sungyong Choi <sywow.choi@samsung.com> Change-Id: I46caa4a958274de1111b30b144df592ac4cdcf6e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3736243 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jeff Vigil <j.vigil@samsung.com> Reviewed-by: Antonio Caggiano <antonio.caggiano@collabora.com>
Shahbaz Youssefi ab255263 2022-09-20T22:37:00 GLES1: Fix material color update when COLOR_MATERIAL According to the spec, when COLOR_MATERIAL is enabled, the material ambient and diffuse colors are updated on every glClear* call. Additionally, setting these values individually is ineffective when COLOR_MATERIAL is enabled. Bug: angleproject:6201 Change-Id: I846513c983254a043ea83101c0f83025c12b4364 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3906392 Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Peng Huang 9f99d594 2022-09-22T10:04:42 Add driverApiVersion in GPUDeviceInfo Bug: chromium:1340081 Change-Id: I9a1b190d3299b4f5e4603ac3e45869f385df0c48 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3913426 Auto-Submit: Peng Huang <penghuang@chromium.org> Commit-Queue: Peng Huang <penghuang@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Dan Glastonbury d2a58f00 2022-09-08T14:19:21 EGL: Implement eglCopyMetalSharedEventANGLE Add eglCopyMetalSharedEventANGLE function to the ANGLE_metal_shared_event_sync extension. This brings the extension on par with the EGL_ANDROID_native_fence_sync extension. eglCopyMetalSharedEventANGLE allows for copying the Metal event object from EGLSync objects implemented by the ANGLE Metal renderer. This function follows Objective-C convention for "copy" methods and increases the retain count of the Metal event object. The EGL API user is thus responsible for ensuring to release the returned object to avoid memory leaks. Test: angle_end2end_tests --gtest_filter=EGLSyncTestMetalSharedEvent.* Bug: angleproject:7561 Change-Id: I8c35b559014b85cb8c6a0e76ac2ab7891eed5da0 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3881423 Reviewed-by: Kenneth Russell <kbr@chromium.org> Commit-Queue: Kenneth Russell <kbr@chromium.org> Reviewed-by: Quyen Le <lehoangquyen@chromium.org>
Cody Northrop 5e3bf6d8 2022-09-22T15:53:39 Tests: Add Eve Echoes trace Test: angle_perftests --gtest_filter="*eve_echoes*" Bug: angleproject:7215 Bug: angleproject:7690 Change-Id: Ib636ab57831cddac5fe793ec5cf7d05764e90766 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3914041 Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Shahbaz Youssefi 2debd07d 2022-09-21T11:40:18 Automatically query status of features for tests Now tests can skip based on what features exist, compared to what features are explicitly asked for. For example, a test suite may override-enable a (normally disabled) feature that depends on a hardware capability. With this change, it can be skipped if said hardware capability doesn't exist. As a bonus, tests now correctly skip if the feature is overriden through an environment variable. This change also cleans up VulkanPerformanceCounterTest tests which did the same for a number of specific features. Bug: b/243398683 Change-Id: I84f026e3394eab56fd123e02bee72720c7ed94c6 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3909789 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Gregg Tavares 7d712c47 2022-09-08T09:42:10 Metal: ProvokingVertexHelper stop using a separate cmdbuffer This simplifies the code. Without this you always need to be aware that the provoking vertex helper's command buffer might have commands in it that need to be committed before starting other operations. Bug: angleproject:7643 Change-Id: I1c73d451c12c268ecbdb6a1cd63a77c291949ef9 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3884275 Commit-Queue: Gregg Tavares <gman@chromium.org> Reviewed-by: Kenneth Russell <kbr@chromium.org> Reviewed-by: Kyle Piddington <kpiddington@apple.com>
Brian Ho 3cfea56c 2022-09-21T13:55:02 Avoid ANGLE formats on dmabuf-backed EGL images DrmFourCCFormatToGLInternalFormat can return ANGLE-internal formats that are only used on the Vulkan backend. This CL adds special logic to dmabuf-backed EGL images to convert those formats back to GL_RGB8. Bug: chromium:1353374 Change-Id: Id270d3d47d289620730c522d2e29d7fc67dc8321 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3911355 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Brian Ho <hob@chromium.org>
Jamie Madill 094b49db 2022-09-19T10:13:28 Android Test Runner: Skip APK install if hash matches. Bug: angleproject:7670 Change-Id: I984fe9377728e5a575fd04be2f5cb3ed1cdbafb5 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3904425 Reviewed-by: Roman Lavrov <romanl@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Constantine Shablya e82eaff9 2022-09-22T16:01:06 Stubs for paletted images Bug: angleproject:7599 Change-Id: Idb49f8ba07ebd3b6cad461fa9e90b856af666183 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3909396 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Constantine Shablya <constantine.shablya@collabora.com>
Amirali Abdolrashidi 0d34d4f8 2022-09-21T18:51:04 Suppress more VVL errors about vkCmdDraw*-None * Suppressed the following VVLs: * VUID-vkCmdDrawIndexed-None-02686 * VUID-vkCmdDrawIndirect-None-02686 * VUID-vkCmdDrawIndirectCount-None-02686 * VUID-vkCmdDrawIndexedIndirect-None-02686 * VUID-vkCmdDrawIndexedIndirectCount-None-02686 Bug: angleproject:7685 Change-Id: I41390ee2a2a01509367a6e98697da3ad7e3cc2e5 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3910174 Auto-Submit: Amirali Abdolrashidi <abdolrashidi@google.com> Commit-Queue: Yuly Novikov <ynovikov@chromium.org> Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Peng Huang 76a3f050 2022-09-21T09:03:47 Fix crash in vkGetPhysicalDeviceProperties2() In rare case, the driver may not support vulkan 1.1 and then calling vkGetPhysicalDeviceProperties2() will cause crash. Bug: chromium:1340081 Change-Id: Id612785ed97abab451dc28bf1c45014b38d7bf0c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3909788 Auto-Submit: Peng Huang <penghuang@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Gregg Tavares 3700a059 2022-09-22T00:04:52 Revert "Add ReadPixels Perf Test" This reverts commit ea7eff37c18d9728f7ca0796fb29cff9bb80662c. Reason for revert: It takes too long on the bots Original change's description: > Add ReadPixels Perf Test > > Trying to compare the Metal backend to the OpenGL > backend and it's useful to have a perf test. > > Bug: angleproject:7117 > Change-Id: I5a7518fdd749841c3dffb1b53a9c4bfb88813c3c > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3906338 > Reviewed-by: Jamie Madill <jmadill@chromium.org> > Reviewed-by: Geoff Lang <geofflang@chromium.org> > Commit-Queue: Gregg Tavares <gman@chromium.org> Bug: angleproject:7117 Change-Id: Ia5e3138abe6686b2f7929a5367782c47f0f7af2d No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3911543 Commit-Queue: Kenneth Russell <kbr@chromium.org> Auto-Submit: Gregg Tavares <gman@chromium.org> Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Reviewed-by: Kenneth Russell <kbr@chromium.org>
Chris Dalton 8b2aff28 2022-09-12T10:27:28 Implement the ANGLE_shader_pixel_local_storage API Implements the OpenGL ES API for ANGLE_shader_pixel_local_storage and adds thorough validation and testing as outlined in the spec. This feature is still implemented entirely in the frontend, but the extension now works end-to-end with a passing test suite, and can be used externally. Over time we can start gradually moving the implementation into backends as appropriate. Bug: angleproject:7279 Bug: angleproject:7647 Change-Id: I1c861a0fca96423be02e17bbe1fb7f57b99ea63f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3886462 Reviewed-by: Kenneth Russell <kbr@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Chris Dalton <chris@rive.app>
Loic Sharma 59f496c0 2022-09-19T14:21:35 Only close COM if it was initialized Change-Id: I4ad62ca3fe642ae255f4c808d6ae9e5d7ff72c37 Bug: angleproject:7675 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3906325 Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Shahbaz Youssefi d78f7d20 2022-09-14T16:25:52 GLES1: Enable PointAntiAlias and RescaleNormal tests These tests are passing. Bug: angleproject:3408 Change-Id: I9cc680235a31b93e455499e83d128b8122328726 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3896213 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Shahbaz Youssefi 2f1f9500 2022-09-14T15:52:11 GLES1: Fix behavior with incomplete mipmap textures GLES1 requires texturing to be disabled when a mipmap-enabled texture is incomplete. Bug: angleproject:3408 Change-Id: I2c3b0206282a71f9a54d77ecdf2c7e42c7175fe5 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3896212 Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Yuxin Hu <yuxinhu@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Amirali Abdolrashidi 7edc6dab 2022-09-21T11:57:37 Suppress VVL error about vkCmdDraw-None * Suppressed the following VVL: * VUID-vkCmdDraw-None-02686 Bug: angleproject:7685 Change-Id: I1c926637729f11f58667d20ea0f5c5f545dc5181 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3910798 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Auto-Submit: Amirali Abdolrashidi <abdolrashidi@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Robert Mader 1d8dce25 2022-09-19T15:08:54 EGL: Implement EGL_EXT_image_dma_buf_import_modifiers This reverts Ifbb0a182171646df8161f6f42eafe2a476fea6b2 and implements the previously missing bits. Inspired by the corresponding Vulkan implementation. The extension is used by an upcoming Exo feature which was successfully tested with this patch, see https://chromium-review.googlesource.com/c/chromium/src/+/3857556 Bug: angleproject:7664 Change-Id: I951d1a787e1db3a77b19fcea6186b7aa0a29872f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3904345 Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Shahbaz Youssefi 2b4699ad 2022-09-21T12:19:20 Vulkan: Fix validation error with unset-logic-op in UtilsVk Bug: angleproject:7654 Change-Id: Ie4da045a30fdd12eedd910ade3cb5ffe95e2c9a4 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3909791 Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Amirali Abdolrashidi 41de8a02 2022-09-21T09:08:12 Suppress VVL error about input attachment desc * Suppressed the following VVL: * UNASSIGNED-input-attachment-descriptor-not-in-subpass Bug: angleproject:7685 Change-Id: I8a23f8d4ddbc91df791f5c98b4ce1e11278b7cc2 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3910796 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Auto-Submit: Amirali Abdolrashidi <abdolrashidi@google.com> Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Gregg Tavares ea7eff37 2022-09-19T17:32:59 Add ReadPixels Perf Test Trying to compare the Metal backend to the OpenGL backend and it's useful to have a perf test. Bug: angleproject:7117 Change-Id: I5a7518fdd749841c3dffb1b53a9c4bfb88813c3c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3906338 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Gregg Tavares <gman@chromium.org>
Lubosz Sarnecki dbb9f38d 2022-09-13T12:08:02 FrameCapture: Capture Texture Environment in MEC. Persist the state of glTexEnv in mid-execution capture for OpenGL ES 1.X contexts. Implement equality operators overload for the TextureEnvironmentParameters struct. Test: angle_end2end_tests --gtest_filter="TextureEnvTest.*" Bug: angleproject:7652 Change-Id: I131eec5c838c9e434e135bd3c6b050fca44c3231 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3892015 Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Lubosz Sarnecki <lubosz.sarnecki@collabora.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Shahbaz Youssefi 69714184 2022-09-16T00:38:03 GLES1: Implement logic op through framebuffer fetch Bug: angleproject:7654 Change-Id: Id5ee7aee8d38eb295b2fd9ff484f4755962c279a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3900513 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Yuxin Hu <yuxinhu@google.com> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Cody Northrop 9393fd54 2022-09-13T20:06:57 FrameCapture: Ignore GetActiveAttrib Similar to how we skip glGetActiveUniform, we also need to skip glGetActiveAttrib. Attribute active status varies based on the underlying shader compiler. More aggresive stacks can find ways to eliminate them. If the application asks about attributes above GL_ACTIVE_ATTRIBUTES, a GL error is thrown, causing a trace to be non-portable. Tested with Eve Echoes and Monster Hunter Stories. Also added an end2end test that showcases a way apps ask about attributes, verified we can capture and replay it across multiple vendors now. Test: VertexAttributeTestES3.UnusedAttribsMEC Bug: angleproject:7215 Bug: angleproject:7557 Bug: angleproject:7402 Change-Id: I3c655bcead0ddb1677f8e1d49cb7d3f3c6b4feba Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3866041 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Cody Northrop 8581e5fa 2022-08-05T14:52:22 FrameCapture: Improve renderbuffer reset Add support for recording calls to regenerate renderbuffers, and track when renderbuffers are deleted. Test: Monster Hunter Stories MEC Bug: angleproject:7557 Bug: angleproject:4599 Change-Id: Ib32abaaf4b5f4767c5c9ede312a29e7f108bd93d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3815224 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Constantine Shablya 79c30913 2022-09-08T03:34:25 Add GLES 1.x lighting tests These tests check pixel values produced by fixed function lighting. Test: angle_end2end_tests --gtest_filter="LightsTest.*" Bug: angleproject:6201 Change-Id: I54ff5fd34089f71e7438167607de6f150aeb56bd Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3881463 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Constantine Shablya <constantine.shablya@collabora.com>
Dan Glastonbury a89f678f 2022-06-16T13:59:16 EGL: Implement ANGLE_metal_shared_event_sync on metal Implement creation of fence sync object taking an external MTLSharedEvent and optional value to use when signaling completion of prior commands. Extended end2end test suite with metal shared event test cases. Test: angle_end2end_tests --gtest_filter=EGLSyncTestMetalSharedEvent.* Bug: angleproject:7561 Change-Id: I0e72b5417275a20a24e535670ceb995ecc87abcb Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3865060 Reviewed-by: Quyen Le <lehoangquyen@chromium.org> Reviewed-by: Kenneth Russell <kbr@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Kenneth Russell <kbr@chromium.org>
Peng Huang 1c472132 2022-09-20T17:27:24 Handle Mesa llvmpipe in GetSystemInfoVulkanWithICD llvmpipe vulkan driver may exist on Linux system, it should be handled correctly, otherwise GetSystemInfoVulkanWithICD() will return false. Bug: chromium:1340081 Change-Id: I77b1e347ee9b40651f43bf3b2d2ee32ef534dedc Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3907883 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Auto-Submit: Peng Huang <penghuang@chromium.org> Commit-Queue: Peng Huang <penghuang@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Shahbaz Youssefi f6a171d5 2022-09-20T16:05:20 GLES1: Fix Fog rendering The spec requires that: - The fog factor is clamped to [0, 1] - The fog only affects RGB, and not alpha Bug: angleproject:7598 Change-Id: Iaea2933b5ccfa79b7db0a3e74193b1c5c10f11e6 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3907881 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Jeff Vigil a6edb43f 2022-09-19T07:39:38 Vulkan: Fix native ID for GBM configs Remove default value. EGL_NATIVE_VISUAL_ID for GBM configs is handled in GetNativeVisualID as of commit f54e7ee69c331f0. Bug: angleproject:7667 Change-Id: I4168cdc9b406b7d2383bdc611cb04f3494cdbf59 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3905525 Commit-Queue: mohan maiya <m.maiya@samsung.com> Commit-Queue: Jeff Vigil <j.vigil@samsung.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: mohan maiya <m.maiya@samsung.com>
Shahbaz Youssefi 2796cbfd 2022-09-15T16:18:47 GLES1: Implement logic op through ANGLE_logic_op Bug: angleproject:7654 Change-Id: I88c784d87c1cb7cb7e5ccf8f020203553513bbb3 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3899381 Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com> Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Peng Huang 790dc479 2022-09-20T10:14:32 Collect vulkan driverID with GetSystemInfoVulkan() For AMD, the driver can be MESA, AMDVLK or proprietary driver. Chrome needs those info to decide if use vulkan. Bug: chromium:1340081,angleproject:7677 Change-Id: Ie1a09fde36b053cacf26351dd7ff549f17a45a55 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3905326 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Peng Huang <penghuang@chromium.org>
Shahbaz Youssefi 0c7bf627 2022-09-20T10:45:39 Vulkan: Remove static variable from DisplayVkLinux::queryDmaBufFormats + fix the numFormat/Modifier output not set Bug: angleproject:7664 Change-Id: I300710e3ba12f3fb134af4460ef6235eae3e98fc Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3905327 Reviewed-by: Yuxin Hu <yuxinhu@google.com> Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Yuxin Hu <yuxinhu@google.com>