src/tests


Log

Author Commit Date CI Message
Gregg Tavares 82ff27bf 2022-07-08T12:38:41 Add Metal to the perf tests Bug: angleproject:7296 Change-Id: I69cd17c464d48b933c51466bf9d21c278438c4e1 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3753277 Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Yuly Novikov <ynovikov@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Alexey Knyazev 3b5b7a29 2022-07-03T00:00:00 Caps: Check if ANGLE_texture_multisample is enabled Updated RenderbufferMultisampleTest.IntegerInternalformat and adjusted getRenderbufferParameteriv validation. Bug: angleproject:7479 Change-Id: Ieaeda4e8a8c11c3d1023f40a90639f3ecfcba9bd Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3738148 Reviewed-by: Gregg Tavares <gman@chromium.org> Reviewed-by: Kenneth Russell <kbr@chromium.org> Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
Alexey Knyazev 925ec6b5 2022-07-07T00:00:00 Clamp viewport dimensions on store Bug: angleproject:7486 Bug: chromium:1130759 Change-Id: I6131baacc940b5df7e33ba10fca8e6e148cb8670 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3751056 Reviewed-by: Kenneth Russell <kbr@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
Alexey Knyazev a4e00c64 2022-06-30T00:00:00 Expose EXT_compressed_ETC1_RGB8_sub_texture on Metal and GL Updated the test to ensure that this extension is exposed on Apple GPUs when using Metal. Updated emulatedEtc1 limitation to hide this extension when the main ETC1 extension is hidden. Real WebGL apps cannot enable this extension because it is not exposed in WebIDL. Removed bogus entry from IsETC1Format and use the helper consistently in all validation functions. Simplified GetNativeCompressedFormat. Bug: angleproject:7471 Change-Id: I61321fadad7d962358d0fefecd08aaddaedd2ec2 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3737762 Reviewed-by: Jonah Ryan-Davis <jonahr@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Quyen Le 0f688d62 2022-07-04T15:49:53 Metal: Allow Surfaces to be created without depth & stencil Previously, egl::Config with depthSize=0 & stencilSize=0 wasn't added to DisplayMtl's configSets. Thus every surface would be created with at least stencilSize=8 although users requested DONT_CARE. This led to wasteful memory being used to created stencil buffers even though they were not used. Fixes: - dEQP-EGL.*.query_surface.simple.pbuffer.rgba8888_depth_stencil - dEQP-EGL.*.query_surface.simple.pbuffer.rgba8888_depth_no_stencil - dEQP-EGL.*.query_surface.simple.pbuffer.rgba8888_no_depth_stencil Bug: chromium:1329376 Change-Id: Iba13b527640a6b8ce6c4b3a63346b41730a83891 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3739868 Reviewed-by: Jonah Ryan-Davis <jonahr@google.com> Commit-Queue: Quyen Le <le.hoang.q@gmail.com> Reviewed-by: Gregg Tavares <gman@chromium.org>
Mohan Maiya 81a69da6 2022-06-30T09:56:54 Vulkan: min/mag filters follow chroma filter value The Vulkan spec states that for those formats lacking support for VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT the min and mag filter must be equal to the sampler YCbCr conversion's chroma filter. Having the min/mag filters follow the chroma filter leads to simpler and more efficient code. Also update getPreferredFilterForYUV function to return existing filter value when preferLinearFilterForYUV feature is disabled. Bug: angleproject:7382 Bug: angleproject:7392 Tests: Texture2DTestES3YUV.TexStorage2DYuvFilterModes* Tests: ImageTestES3.SourceYUVAHBTargetExternalYUVSampleLinearFiltering/ES3_Vulkan Change-Id: I550ef8feede1dc6c3a0d8e32f790113e90ef7a4b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3739582 Reviewed-by: Charlie Lao <cclao@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: mohan maiya <m.maiya@samsung.com>
Eddie Hatfield 916a35dd 2022-06-28T14:40:53 Merge getTempPath and CreateTemporaryFile Also includes moving these two (and some helpers) to common/system_utils.h Bug: angleproject:5095 Change-Id: I7d2fcbd27a67dc13215265ac5b5e8391b15a980b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3733519 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Eddie Hatfield <eddiehatfield@google.com> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Chris Dalton 3e5de4ac 2022-07-05T10:22:54 Add a test that passes image2D handles as function args Bug: angleproject:7484 Change-Id: I3565bd42deeefa22566d4556a25ec9778c6f8550 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3747098 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Chris Dalton 86c735bf 2022-07-01T18:27:10 pls: Rename GL_DISABLED_ANGLE -> GL_DISABLE_ANGLE Match the other loadOps by using the imperative form. Bug: angleproject:7279 Change-Id: I9f3a33961f640ea5dff1da7dcea12517cfdcd461 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3741221 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Chris Dalton da984303 2022-05-13T21:05:48 Add a pls test for in-shader coherency Stores and loads in a single shader invocation should be coherent. Bug: angleproject:7279 Change-Id: I1a4af6fdbef21f5506bb40c9eb8f5e76c12dd6cd Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3654267 Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Kenneth Russell <kbr@chromium.org> Commit-Queue: Chris Dalton <chris@rive.app>
Chris Dalton 85b05601 2022-06-08T14:05:47 Add a pls test for load-only storage It's conceivable that an implementation may need to be careful to preserve the pls contents when a shader doesn't call pixelLocalStore(). Bug: angleproject:7279 Change-Id: I7b7fb25dced49902fd68685d2f5aa82219ced686 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3696503 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Kenneth Russell <kbr@chromium.org> Auto-Submit: Chris Dalton <chris@rive.app> Reviewed-by: Kenneth Russell <kbr@chromium.org>
Charlie Lao 723cc880 2022-06-10T17:55:54 Reland "Reland "Vulkan: Destroy DescriptorSet cache when it becomes invalid"" This is a reland of commit 551a26aeedbfd971d6199c8eddb433a4f4ff871c Original change's description: > Reland "Vulkan: Destroy DescriptorSet cache when it becomes invalid" > > This is a reland of commit 0779ccbcd427dcb00e53afa6385fb4e8e2377993 with > the fix for angleproject:7466. When DescriptorPoolhelper gets > release/destroyed, we ensure all sharedCacheKeys are destroyed. > > Original change's description: > > Vulkan: Destroy DescriptorSet cache when it becomes invalid > > > > When a new texture descriptorSet is allocated, we store one reference of > > the cache key in ProgramExecutableVk and all TextureVks that it > > associated with. When any of the TextureVk is destroyed or its view > > destroyed, we immediately erase the descriptorSet from the cache and > > track GPU progress and free the descriptorSet when it's GPU completed. > > That way we delete the dead descriptorSet that will for sure never been > > reused ASAP so that its space is avialable for reuse. > > > > Bug: b/235523746 > > Change-Id: Ib1b9662a254eea5a3f410dc6d5d89fca6727a647 > > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3700226 > > Reviewed-by: Lingfeng Yang <lfy@google.com> > > Commit-Queue: Charlie Lao <cclao@google.com> > > Reviewed-by: Ian Elliott <ianelliott@google.com> > > Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> > > Bug: b/235523746 > Bug: angleproject:7466 > Change-Id: I4413bec27ea0ca830010e2ca15036c2e667141c0 > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3726964 > Reviewed-by: Ian Elliott <ianelliott@google.com> > Commit-Queue: Charlie Lao <cclao@google.com> > Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Bug: b/235523746 Bug: angleproject:7466 Change-Id: I6b88b884841c5dbc625ee7e0c52c45af09dec199 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3741027 Commit-Queue: Charlie Lao <cclao@google.com> Reviewed-by: Ian Elliott <ianelliott@google.com>
Ian Elliott 4b745c2b 2022-07-01T01:25:36 Revert "Reland "Vulkan: Destroy DescriptorSet cache when it becomes invalid"" This reverts commit 551a26aeedbfd971d6199c8eddb433a4f4ff871c. Reason for revert: Blink test failures at: https://ci.chromium.org/ui/p/chromium/builders/ci/WebKit%20Linux%20MSAN/15546/overview Original change's description: > Reland "Vulkan: Destroy DescriptorSet cache when it becomes invalid" > > This is a reland of commit 0779ccbcd427dcb00e53afa6385fb4e8e2377993 with > the fix for angleproject:7466. When DescriptorPoolhelper gets > release/destroyed, we ensure all sharedCacheKeys are destroyed. > > Original change's description: > > Vulkan: Destroy DescriptorSet cache when it becomes invalid > > > > When a new texture descriptorSet is allocated, we store one reference of > > the cache key in ProgramExecutableVk and all TextureVks that it > > associated with. When any of the TextureVk is destroyed or its view > > destroyed, we immediately erase the descriptorSet from the cache and > > track GPU progress and free the descriptorSet when it's GPU completed. > > That way we delete the dead descriptorSet that will for sure never been > > reused ASAP so that its space is avialable for reuse. > > > > Bug: b/235523746 > > Change-Id: Ib1b9662a254eea5a3f410dc6d5d89fca6727a647 > > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3700226 > > Reviewed-by: Lingfeng Yang <lfy@google.com> > > Commit-Queue: Charlie Lao <cclao@google.com> > > Reviewed-by: Ian Elliott <ianelliott@google.com> > > Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> > > Bug: b/235523746 > Bug: angleproject:7466 > Change-Id: I4413bec27ea0ca830010e2ca15036c2e667141c0 > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3726964 > Reviewed-by: Ian Elliott <ianelliott@google.com> > Commit-Queue: Charlie Lao <cclao@google.com> > Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Bug: b/235523746 Bug: angleproject:7466 Change-Id: Icdde2752c462b7ebbb51d46fd35ce749b5caf377 No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3739585 Reviewed-by: Ian Elliott <ianelliott@google.com> Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Auto-Submit: Ian Elliott <ianelliott@google.com> Commit-Queue: Ian Elliott <ianelliott@google.com>
Charlie Lao 551a26ae 2022-06-10T17:55:54 Reland "Vulkan: Destroy DescriptorSet cache when it becomes invalid" This is a reland of commit 0779ccbcd427dcb00e53afa6385fb4e8e2377993 with the fix for angleproject:7466. When DescriptorPoolhelper gets release/destroyed, we ensure all sharedCacheKeys are destroyed. Original change's description: > Vulkan: Destroy DescriptorSet cache when it becomes invalid > > When a new texture descriptorSet is allocated, we store one reference of > the cache key in ProgramExecutableVk and all TextureVks that it > associated with. When any of the TextureVk is destroyed or its view > destroyed, we immediately erase the descriptorSet from the cache and > track GPU progress and free the descriptorSet when it's GPU completed. > That way we delete the dead descriptorSet that will for sure never been > reused ASAP so that its space is avialable for reuse. > > Bug: b/235523746 > Change-Id: Ib1b9662a254eea5a3f410dc6d5d89fca6727a647 > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3700226 > Reviewed-by: Lingfeng Yang <lfy@google.com> > Commit-Queue: Charlie Lao <cclao@google.com> > Reviewed-by: Ian Elliott <ianelliott@google.com> > Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Bug: b/235523746 Bug: angleproject:7466 Change-Id: I4413bec27ea0ca830010e2ca15036c2e667141c0 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3726964 Reviewed-by: Ian Elliott <ianelliott@google.com> Commit-Queue: Charlie Lao <cclao@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Chris Dalton 4884e9de 2022-05-15T22:57:57 Add a pls test for maximum capacity Check that it works to render with the maximum supported data payload: GL_MAX_LOCAL_STORAGE_PLANES_ANGLE GL_MAX_LOCAL_STORAGE_BYTES_ANGLE GL_MAX_FRAGMENT_OUTPUTS_WITH_LOCAL_STORAGE_ANGLE Bug: angleproject:7279 Change-Id: Ifdaff726edee0378b06ce5562001ad3dfe29284b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3654974 Reviewed-by: Kenneth Russell <kbr@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Auto-Submit: Chris Dalton <chris@rive.app> Commit-Queue: Kenneth Russell <kbr@chromium.org>
Geoff Lang 785353fd 2022-05-24T12:40:16 Support Desktop OpenGL context creation in end2end tests Validation of Desktop GL versions and profile masks is unimplemented. Bug: angleproject:7360 Change-Id: Ifae94215b6aada895c2b02318a1d05c9515e9b96 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3664916 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Patrick To 45def3d4 2022-06-15T13:49:08 Remove non-negative offsets restriction in D3D extension The EGL_ANGLE_d3d_texture_client_buffer extension currently fails if either EGL_TEXTURE_OFFSET_[X|Y]_ANGLE offsets are negative. This restriction is unnecessary, as D3D allows for negative offsets. Bug: angleproject:7446 Change-Id: I2e258a3a558eae51794f6533e28a0c06532f156d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3715956 Commit-Queue: Rafael Cintron <rafael.cintron@microsoft.com> Reviewed-by: Rafael Cintron <rafael.cintron@microsoft.com> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Gert Wollny fd9301c1 2022-06-17T12:25:10 Capture/Replay: Capture egl surface related calls Creation from a pbuffer and generalized destruction are implemented, as well as binding and releasing a TexImage and making the context current with explicit draw and read surfaces given. Bug: angleproject:4964 Bug: angleproject:6180 Bug: angleproject:6512 Change-Id: Id8be6486125d45341905f3aabdbae4366cd568b7 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3711741 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Gert Wollny <gert.wollny@collabora.com> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Mohan Maiya d50b2276 2022-06-21T12:05:28 Reland "Vulkan: Support EGL_ANDROID_front_buffer_auto_refresh" This is a reland of commit ef60d38ecf12d6663e9ecccacbff9803b1fba7c6 There are no fixes as the revert itself was a speculative one Original change's description: > Vulkan: Support EGL_ANDROID_front_buffer_auto_refresh > > Cache value of EGL_FRONT_BUFFER_AUTO_REFRESH_ANDROID attribute > and set swapchain present mode accordingly when recreating > swapchain in single buffer mode. > > Bug: angleproject:7224 > Tests: EGLAndroidAutoRefreshTest.Basic* > Change-Id: I2dbb92ce5c3fa047e0b02ea9011725311f346027 > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3707570 > Reviewed-by: Ian Elliott <ianelliott@google.com> > Commit-Queue: mohan maiya <m.maiya@samsung.com> > Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> > Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org> Bug: angleproject:7224 Bug: angleproject:7465 Change-Id: Ia876ea17169c0f1b3afdb7753570e0b1aca985f5 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3733521 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Faye Zhang fd256b0d 2022-06-24T09:58:22 Tests: Add Uber trace Test: angle_perftests --gtest_filter="*uber*" Bug: angleproject:7462 Change-Id: Ie9a6f4c8afbb94e8484dba50b90bfbc7102a3c00 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3723859 Reviewed-by: Yuxin Hu <yuxinhu@google.com> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Shahbaz Youssefi b2683a3c 2022-06-28T11:30:50 Document angle_restricted_traces Bug: angleproject:7410 Change-Id: Iab02ca68d76fdd1d04804c85f76f5c251905907b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3732229 Reviewed-by: Cody Northrop <cnorthrop@google.com> Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Brandon Schade 3a799ba5 2022-05-16T17:26:38 Fix ValidateES3TexImageParametersBase for glTexImage*D From the OpenGL ES 3.2 spec: GL_INVALID_VALUE error is generated if internalformat is not one of the valid formats in tables 8.2 or 8.3. glTexImage*D should not accept compressed format. Add check in validation to account for this. Bug: angleproject:6441 Tests: KHR-GLES31.core.compressed_format.api.invalid_teximage_with_compressed_format Change-Id: I7152aefa433f42dcc40cf693538639df26c31341 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3648587 Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Alexey Knyazev <lexa.knyazev@gmail.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Gert Wollny ce4e11d3 2022-06-17T12:21:01 libANGLE: Add a unique ID to the Surface This is needed when capturing Pbuffer calls. Bug: angleproject:4964 Change-Id: Id9f35683bf887f08f916de69bbab8c414e5e8872 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3711740 Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Gert Wollny <gert.wollny@collabora.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Cody Northrop 2a5193f6 2022-06-22T17:46:15 Textures: Allow compressed texture from PBO Apex Legends is using a pixel unpack buffer to populate a compressed 3D texture. We had an explicit check in validation that prevented it, possibly due to emulated formats. Rather than prevent it altogether, check whether the format is emulated and proceed if not. Also add a test that exposes the problem. Test: PBOCompressedTexture3DTest Bug: b/236478448 Bug: angleproject:7464 Change-Id: I90105a396bf0a465c62d67910aad2819ba7f8831 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3719161 Commit-Queue: Cody Northrop <cnorthrop@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Charlie Lao <cclao@google.com>
Cody Northrop 1ae9756e 2022-06-22T17:43:15 Textures: Centralize texture format emulation check Refactor in order to use the check in multiple places. Bug: b/236478448 Change-Id: I6df2e0d63c60fa3e8b2d65185fce164be0e7d961 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3719160 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Charlie Lao <cclao@google.com> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Shahbaz Youssefi c775dd49 2022-02-03T16:51:03 Allow list of restricted traces to be overriden in gn args When focused on profiling a single or a few traces, this speeds up build and upload to Android. Bug: angleproject:7404 Change-Id: I5234a6fa7e8167f86b5b33b8db526662a7d65bd9 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3438425 Reviewed-by: Roman Lavrov <romanl@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Chris Dalton 2adb6327 2022-05-13T23:09:31 Add a pls test for memoryless storage Bug: angleproject:7279 Change-Id: I4a992d04efa06ac99472d5334a1ac50839a13d06 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3654973 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Kenneth Russell <kbr@chromium.org> Auto-Submit: Chris Dalton <chris@rive.app> Reviewed-by: Kenneth Russell <kbr@chromium.org>
Yuly Novikov f8690429 2022-06-27T13:50:44 Revert "Vulkan: Destroy DescriptorSet cache when it becomes invalid" This reverts commit 0779ccbcd427dcb00e53afa6385fb4e8e2377993. Reason for revert: crashes in blink_web_tests on linux-rel https://ci.chromium.org/ui/p/chromium/builders/try/linux-rel/1051045/overview Original change's description: > Vulkan: Destroy DescriptorSet cache when it becomes invalid > > When a new texture descriptorSet is allocated, we store one reference of > the cache key in ProgramExecutableVk and all TextureVks that it > associated with. When any of the TextureVk is destroyed or its view > destroyed, we immediately erase the descriptorSet from the cache and > track GPU progress and free the descriptorSet when it's GPU completed. > That way we delete the dead descriptorSet that will for sure never been > reused ASAP so that its space is avialable for reuse. > > Bug: b/235523746 > Change-Id: Ib1b9662a254eea5a3f410dc6d5d89fca6727a647 > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3700226 > Reviewed-by: Lingfeng Yang <lfy@google.com> > Commit-Queue: Charlie Lao <cclao@google.com> > Reviewed-by: Ian Elliott <ianelliott@google.com> > Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Bug: b/235523746, angleproject:7466 Change-Id: I7e5067de2f2add08af1f9804cc2e952238b2e942 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3726097 Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Yuly Novikov f5aef011 2022-06-27T13:11:16 Skip CreateFramebufferFetchMidRenderPass on Win SwANGLE Bug: angleproject:7419 Change-Id: I76b4d08f985abbd482ef1d14cde62bcd5bb41a86 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3726096 Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Commit-Queue: Yuly Novikov <ynovikov@chromium.org> Auto-Submit: Yuly Novikov <ynovikov@chromium.org>
Yuly Novikov 46ddcc44 2022-06-27T14:53:31 Revert "Vulkan: Support EGL_ANDROID_front_buffer_auto_refresh" This reverts commit ef60d38ecf12d6663e9ecccacbff9803b1fba7c6. Reason for revert: crashes in end2end tests on Win Intel Vulkan Original change's description: > Vulkan: Support EGL_ANDROID_front_buffer_auto_refresh > > Cache value of EGL_FRONT_BUFFER_AUTO_REFRESH_ANDROID attribute > and set swapchain present mode accordingly when recreating > swapchain in single buffer mode. > > Bug: angleproject:7224 > Tests: EGLAndroidAutoRefreshTest.Basic* > Change-Id: I2dbb92ce5c3fa047e0b02ea9011725311f346027 > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3707570 > Reviewed-by: Ian Elliott <ianelliott@google.com> > Commit-Queue: mohan maiya <m.maiya@samsung.com> > Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> > Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org> Bug: angleproject:7224, angleproject:7465 Change-Id: Ia48a31124c8e0a3e4bcd4b7dc6f62b0782b42d97 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3726099 Commit-Queue: Yuly Novikov <ynovikov@chromium.org> Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Yuly Novikov ef37e863 2022-06-27T11:18:49 Skip TextureSampleShadingTest.Basic on Win Intel Vulkan Bug: angleproject:7465 Change-Id: If1eff8d5f9ad9c159115c5a8ef7f4155c21e9615 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3726090 Commit-Queue: Yuly Novikov <ynovikov@chromium.org> Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Auto-Submit: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Eddie Hatfield 89e38b57 2022-06-22T15:04:08 Refactor to use ANGLETest vs ANGLETestWithParam Bug: angleproject:6747 Change-Id: I72ad52d0268eae0e1a401f12f3e94cc5efa402f2 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3719002 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Eddie Hatfield 707323c1 2022-06-21T18:53:05 Miscellaneous C++17 refactoring Bug: angleproject:6747 Change-Id: I792ba74e03145ff6c3cc97d4bff6327ab275a2c7 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3719001 Commit-Queue: Eddie Hatfield <eddiehatfield@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Mohan Maiya ef60d38e 2022-06-21T12:05:28 Vulkan: Support EGL_ANDROID_front_buffer_auto_refresh Cache value of EGL_FRONT_BUFFER_AUTO_REFRESH_ANDROID attribute and set swapchain present mode accordingly when recreating swapchain in single buffer mode. Bug: angleproject:7224 Tests: EGLAndroidAutoRefreshTest.Basic* Change-Id: I2dbb92ce5c3fa047e0b02ea9011725311f346027 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3707570 Reviewed-by: Ian Elliott <ianelliott@google.com> Commit-Queue: mohan maiya <m.maiya@samsung.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org>
Yuxin Hu 4c5e9d47 2022-06-21T17:12:56 Do not defer clear if FBO attachment is AHB image When application uses Android Hardware Buffer (AHB) image as the Framebuffer Object (FBO) attachment, it is possible the app doesn't call glReadPixels to fetch the FBO color. In this case deferred clears will not be flushed when the app reads the FBO pixel color, and the app will read the old FBO color. This CL fixes the issue by flushing the glClear calls immediately when any of the FBO color attachments is AHB image. Bug: b/236394768 Bug: angleproject:7458 Change-Id: I9151ab57750007c4ac18af39c3fa4abe752ede5e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3715851 Reviewed-by: Lingfeng Yang <lfy@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Yuxin Hu <yuxinhu@google.com> Reviewed-by: Charlie Lao <cclao@google.com>
Shahbaz Youssefi 79185677 2022-06-22T16:22:35 Translator: Fix validation of struct with same-name struct field In the following: ``` struct S { S s; }; ``` The `S` in the field refers to a previous declaration of `S` in an outer scope. The validation code mistakenly attempted to ensure it refers to the same `S` being declared. Bug: chromium:1337628 Change-Id: I86184be63bc59e608fe5b24369cd4c40b3bb3b31 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3716965 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Yuxin Hu <yuxinhu@google.com> Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org>
Shahbaz Youssefi e50351cb 2022-06-10T22:28:58 Vulkan: Don't close render pass on framebuffer fetch For applications that use framebuffer fetch in the same RP as non-fetch programs, we can save some extra RenderPasses by always creating our RP objects with input attachments enabled. This works almost identically except for needing to use the images in a "GENERAL" layout instead of "COLOR_ATTACHMENT_OPTIMAL". According to partners it is possible to achieve performance parity even with GENERAL layout. To remove any potential negative impacts of using the GENERAL layout, the context enters this always-framebuffer-fetch mode only and as soon as a framebuffer fetch program is created. Applications that don't use framebuffer fetch are thus unaffected. This eliminates 20 render passes in the Genshin Impact trace (out of about 58). On a Pixel 6 the resulting benchmark score speeds up by ~25%. For Real Racing 3, the speed up is ~30%. Based on change by jmadill@chromium.org Bug: angleproject:7375 Change-Id: Ib6c73e95d06229f8545d502b388ee2a55a582323 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3697308 Reviewed-by: Charlie Lao <cclao@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Eddie Hatfield 91976352 2022-06-21T15:41:02 Use C++17 attributes instead of custom macros Bug: angleproject:6747 Change-Id: Iad6c7cd8a18d028e01da49b647c5d01af11e0522 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3718999 Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Charlie Lao 0779ccbc 2022-06-10T17:55:54 Vulkan: Destroy DescriptorSet cache when it becomes invalid When a new texture descriptorSet is allocated, we store one reference of the cache key in ProgramExecutableVk and all TextureVks that it associated with. When any of the TextureVk is destroyed or its view destroyed, we immediately erase the descriptorSet from the cache and track GPU progress and free the descriptorSet when it's GPU completed. That way we delete the dead descriptorSet that will for sure never been reused ASAP so that its space is avialable for reuse. Bug: b/235523746 Change-Id: Ib1b9662a254eea5a3f410dc6d5d89fca6727a647 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3700226 Reviewed-by: Lingfeng Yang <lfy@google.com> Commit-Queue: Charlie Lao <cclao@google.com> Reviewed-by: Ian Elliott <ianelliott@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Brandon Schade 669d7b75 2022-05-25T15:14:35 Fix validation checks in glCompressedTexSubImage3D - Add missing ASTC formats to the checklist in CompressedSubTextureFormatRequiresExactSize. - Add missing validation checks in ValidateES3TexImageParametersBase relating to internal formats Test: KHR-GLES32.core.compressed_format.api.invalid_format_array Test: KHR-GLES32.core.compressed_format.api.invalid_offset_or_size Test: *ETC2RGB8_CubeMapValidation* Test: *CompressedTexture*Test* Bug: angleproject:6441 Change-Id: Icc80d78602ea997be11606587b43d29e72e48f3a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3670768 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Brandon Schade <b.schade@samsung.com>
Le Hoang Quyen 6c8bb1f3 2022-06-21T06:06:29 Metal: Fix invalid iosurface texture after base/max lvl changed Changing base/max lvl invalidated previously bound iosurface's texture. This caused conformance/canvas/webgl-to-2d-canvas.html failure. Fix by rebinding the iosurface's texture after base/max lvl changed. Bug: chromium:1337324 Change-Id: I28f84b0ac28695221997571f71c476e802cbfac3 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3715729 Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Kenneth Russell <kbr@chromium.org> Commit-Queue: Peng Huang <penghuang@chromium.org>
Shahbaz Youssefi 6d3c6370 2022-06-18T00:13:56 Vulkan: Fix 180 and 270 degree rotated resolve Bug: angleproject:7197 Bug: b/235877059 Change-Id: I4d4ee622f49bb3218449414a1f0dd91fa4e4f541 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3708997 Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com> Reviewed-by: Ian Elliott <ianelliott@google.com> Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
Lubosz Sarnecki 72f69e84 2022-06-21T16:22:25 ANGLEPerfTest: Add option to disable GL debug callbacks. Disable GL debug callbacks on native ARM GLES1. This fixes native GLES1 replay on Pixel 6 when running debug builds. Bug: angleproject:7447 Change-Id: I0059c07f4f2fb944e54a5163863b487bc31ab28f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3716584 Commit-Queue: Cody Northrop <cnorthrop@google.com> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Lubosz Sarnecki c93b3b32 2022-06-10T16:34:00 Tests: Add Animal Crossing trace. Test: angle_perftests --gtest_filter="*animal_crossing*" Bug: angleproject:7306 Change-Id: Ic19adff3915093d86d68f24a5be2c0d2124f2123 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3697532 Commit-Queue: Cody Northrop <cnorthrop@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Chris Dalton 329e1f9e 2022-06-04T02:30:56 Ensure pls results are secure even without barriers We can't guarantee the client will always use local storage barriers correctly, but we CAN guard local storage passes such that the results are only nondeterministic within predictable constraints. This CL adds a test to ensure local storage is still predictable without barriers, and that no data is random or leaked from other contexts. Bug: angleproject:7279 Bug: angleproject:7398 Change-Id: I70da58c8ba79b09f560315df3df956d1721ff6b9 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3654265 Reviewed-by: Kenneth Russell <kbr@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Auto-Submit: Chris Dalton <chris@rive.app> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org>
Yuly Novikov 21a07210 2022-06-22T16:43:44 Suppress 3 pointcoord tests on Mac Intel Metal Bug: angleproject:7451 Change-Id: Id03e3a60aca38798ecaec4a74f0b0af64eecc63e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3714602 Commit-Queue: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Auto-Submit: Yuly Novikov <ynovikov@chromium.org> Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Shahbaz Youssefi 9a6ae13e 2022-06-17T23:42:15 Vulkan: Enable prerotation on multisample tests Bug: b/235877059 Change-Id: I3a8b8483d7b478e36328ac402539df99e62c18b2 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3708996 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Chris Dalton d55e0655 2022-06-06T20:24:55 Add pls tests for fragment reject utilities GL utilities for rejecting fragments should also prevent stores to pls. (Namely: discard, return from main, depth/stencil, viewport.) Bug: angleproject:7279 Bug: angleproject:7398 Change-Id: I91aac62fc7eeb703c7bc1ff1bc0c841700fd83d5 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3696676 Reviewed-by: Kenneth Russell <kbr@chromium.org> Commit-Queue: Kenneth Russell <kbr@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Auto-Submit: Chris Dalton <chris@rive.app>
Faye Zhang 714f680f 2022-06-08T16:19:20 Implement GL_EXT_base_instance * Added the validation functions for DrawElementsInstancedBaseVertexBaseInstance(), DrawElementsInstancedBaseInstance(), and DrawArraysInstancedBaseInstance() according to the specs. * Added generic implementation for glDrawElementsInstancedBaseInstance() that can be called by back-ends. * Added flags for back-ends so they can enable the extension. * Added tests for DrawElementsInstancedBaseVertexBaseInstance(), glDrawElementsInstancedBaseInstance(), and DrawArraysInstancedBaseInstance(). * Disabled ES3_D3D11__DynamicDraw tests due to angleproject:7441 bug. Bug: angleproject:6983 Bug: angleproject:7441 Change-Id: Ia664b01c87bc64c05e29adec23a8f80792eaa037 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3697206 Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com> Commit-Queue: Faye Zhang <ffz@google.com> Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Gert Wollny be78a0fe 2022-02-22T16:11:51 Capture/Replay: Fix which sync object is deleted The test decription says: Secondary (Texture) Thread: 1. Wait for the mMainThreadSyncObj fence object to be created. 2. Once the fence is created, add a glWaitSync(mMainThreadSyncObj) to the command stream and then delete it. Bug: angleproject:6631 Change-Id: Ia477970f64b4e2e48a0884be5e37144dd2f7bd56 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3480995 Commit-Queue: Gert Wollny <gert.wollny@collabora.com> Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Mohan Maiya 878bbfaa 2022-06-17T11:48:14 Vulkan: Account for 2DArray textures during robust resource init Correctly handle layer count and depth when the texture type is 2Darray. Vulkan requires depth of 1 for 2Darray textures. This also reverts commit c59a22e587e63cbe9942a7f0b78681ee25084cc4. Bug: angleproject:3189 Bug: angleproject:4691 Bug: angleproject:7389 Bug: angleproject:7438 Test: DXT1CompressedTextureTestES3.CompressedTexSubImage3DValidationPerSlice*Vulkan Change-Id: Ifb3b9cabd4786dcced750e3c2db90e350d455098 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3712220 Reviewed-by: Lingfeng Yang <lfy@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: mohan maiya <m.maiya@samsung.com>
Yuly Novikov c59a22e5 2022-06-17T17:28:26 Skip CompressedTexSubImage3DValidationPerSlice capture_replay DXT1CompressedTextureTestES3.CompressedTexSubImage3DValidationPerSlice/ES3_Vulkan_SwiftShader reports VUID-vkCmdCopyBufferToImage-srcImage-00201 Bug: angleproject:7438 Change-Id: Ie9b9e8fdf1292d330ed61cbb4791fc7b3e4ab8ee Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3711749 Auto-Submit: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Yuly Novikov <ynovikov@chromium.org> Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Jamie Madill ca96cba9 2022-06-16T11:33:14 Make ReadEntireFileToString return a std::string. Note: this makes the method unavailable for export from angle_util, which is probably why it was designed the way it was in the first place. However, we import the test utils source file as a static lib into each test executable and test shared module, so it works. Bug: angleproject:7404 Change-Id: Ia957268882c2b8529643660d7d4f34d142c0dc43 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3708602 Commit-Queue: Roman Lavrov <romanl@google.com> Reviewed-by: Roman Lavrov <romanl@google.com>
Yuly Novikov 5f1d0742 2022-06-17T13:11:00 Increase batch timeout with sanitizer MemoryBarrierBufferOnlyTest got slow recently Bug: angleproject:7439 Change-Id: I6f24fa9abb9dcc98ebb8c964860a292e89ec1e19 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3711745 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org> Auto-Submit: Yuly Novikov <ynovikov@chromium.org>
Gert Wollny 6ca9c55e 2022-06-13T10:32:39 Capture/Replay: Allow capturing of external textures With the support for EGL textures enabled we can actually capture the texture content. Bug: angleproject:5822 Change-Id: I386827456d146a54d9790fdd9eadb39b2a6b87e1 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3702350 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Gert Wollny <gert.wollny@collabora.com> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Gert Wollny ea3bd30a 2022-06-13T11:44:45 Capture/Replay: Don't capture tex levels that are out-of-range Bug: angleproject:6334 Change-Id: I01cb1920154b5fba9554180d2edf5be9dea2b7a2 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3702351 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Gert Wollny <gert.wollny@collabora.com> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Charlie Lao 72e457fe 2022-06-03T15:36:01 Vulkan: Promptly destroy cached framebuffer when it becomes invalid When Texture gets respecified, the VkFramebuffer cache created out of it becomes invalid and will never possibly get used. Before this CL, we never clear such invalid framebuffer objects from the cache. This CL keeps a reference to the cache key in each attachment and will immediately destroy the cached VkFramebuffer object when one of the attachment has become invalid. Bug: b/234769934 Change-Id: Ib01f6dffe9211084b1ada340081daf905e3f1bef Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3682164 Reviewed-by: Ian Elliott <ianelliott@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Charlie Lao <cclao@google.com>
Shahbaz Youssefi 97a6e581 2022-05-30T16:50:26 Vulkan: Useful implementation of program binaries ANGLE already serializes the pipeline state for the sake of OES_get_program_binary. This serialization had limited usefulness however, since the Vulkan driver hasn't actually created any pipelines yet (which is a costly part of program creation). Simultaneously, ANGLE deferred Vulkan pipeline creation to draw time, which causes hitching. In this change, a handful of Vulkan pipelines are precreated at link time; those at least that are sure to create different blobs in the pipeline cache (different spec consts or SPIR-V generation). These pipelines are created in the program executable's cache. The cache is then merged into the shared renderer cache (for potential blob reuse by other programs). With this, two goals are achieved: - Most pipelines created at draw time hit the pipeline cache, avoiding costly compilation. - When the program binary is retrieved, the contents of the program executable's pipeline cache is also returned. On reload, the cache is recovered, resulting in faster startup. Bug: angleproject:5881 Change-Id: I46c5451a7d0b16dffd40e44015e094640886880b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3671977 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Charlie Lao <cclao@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Shahbaz Youssefi 0bc70e96 2022-06-10T22:27:04 Vulkan: Rename getShareGroupVk to getShareGroup + other miscellaneous clean up Bug: angleproject:7375 Change-Id: I25690860478a2fd181a67ce2b6cb4d7aac7dbaa7 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3700197 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Yuxin Hu <yuxinhu@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Mohan Maiya 8a8b9665 2022-06-08T14:54:37 Vulkan: Prune superseded staged updates in a texture Add support for pruning superseded staged updates from a client buffer to the texture. If the staged update count or the cumulative staged updates' size exceeds a threshold we check for superseded updates and prune the list. Bug: angleproject:4691 Bug: angleproject:7389 Test: Texture2DTest.InterleavedSupersedingTextureUpdates* Texture2DTest.ManySupersedingTextureUpdates* Change-Id: I4b84f13fa20004a3dc68baa552a0af656d92c0a1 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3691092 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: mohan maiya <m.maiya@samsung.com>
Yuly Novikov c41dae02 2022-06-15T19:41:39 Further suppress MultithreadingTestES3 hanging tests on Linux SwANGLE Also MultithreadingTestES3.ThreadB*BeforeThreadASyncFlush. Bug: angleproject:7431 Change-Id: Ib27afb4ed6862580dbe64c38d3eaca2040f7c1ff Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3707272 Auto-Submit: Yuly Novikov <ynovikov@chromium.org> Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Roman Lavrov a471d4bd 2022-06-15T14:33:22 Ensure ANGLERenderTest.mTestParams lifetime using unique_ptr Passing a reference is fragile, this currently works because factory outlives the test and so do captures: https://crsrc.org/c/third_party/angle/src/tests/perf_tests/TracePerfTest.cpp;drc=54e08a5af1f7ca50d5c154a09cc056166a9e49fa;l=2143 but if a temporary or a scoped object is passed to the constructor in the same spot then this blows up due to use after free, which is easy to run into accidentally as it is uncommon that f(const T&) would hold onto the reference and expect it to outlive the function call. In most cases ANGLERenderTest.mTestParams is initialized with GetParam() which comes from a base class and that Bug: angleproject:7410 Change-Id: I32ea8b79ad746129d4088d44fef2a37cc9c81b80 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3697436 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Roman Lavrov <romanl@google.com>
Roman Lavrov 153d8db9 2022-06-06T13:49:40 Turn missing {trace_name}.json trace files into test failures. Before this change, a missing or broken trace json file results in all trace tests "disappear" from the list with only ERR in logs. After this change, a missing or broken trace json will result in that specific test FAIL status and error in logs. Note that this also allows for inconsistency between restricted_traces.json and trace json files on the device because we're no longer requiring for trace json to be loaded unless the test is actually being run. Bug: angleproject:7410 Change-Id: I07532dc0bf85a0d2fcaf425ce8d4a589473a898d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3690734 Commit-Queue: Roman Lavrov <romanl@google.com> Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Yuly Novikov 5a3e1dba 2022-06-14T13:18:44 Skip flaky hanging MultithreadingTestES3 on Linux SwANGLE Bug: angleproject:7431 Change-Id: Id6e91cb5b996aeff5e143b8395cd2210cef414d6 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3702360 Commit-Queue: Yuly Novikov <ynovikov@chromium.org> Auto-Submit: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Chris Dalton 7c01db8f 2022-05-14T13:24:47 Add tests for loadOps in pixel local storage Bug: angleproject:7279 Change-Id: If060bae529d9af25cbc3e941d92fe32b2b254f22 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3652702 Auto-Submit: Chris Dalton <chris@rive.app> Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Kenneth Russell <kbr@chromium.org> Commit-Queue: Kenneth Russell <kbr@chromium.org>
Chris Dalton f1c21d68 2022-06-04T02:26:36 Add pixel local storage tests for all supported formats Bug: angleproject:7279 Change-Id: I92728112f243cccf4e4ab2c5f4c096dcc0536fc2 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3654266 Commit-Queue: Geoff Lang <geofflang@chromium.org> Reviewed-by: Kenneth Russell <kbr@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Charlie Lao c5ee5a9c 2022-06-10T10:29:11 Vulkan: Add test CreateDestroyTextureDoesNotIncreaseDescSetCache This adds a test to demonstrate a usage pattern seen with surfaceflinger (see b/234602034 for detailed reproduce steps). With every iteration of notification shade pop up, after all other optimization, we are still seeing four descriptor sets gets allocated. Surfaceflinger is allocating AHB and texture every time and after usage it gets destroyed. This test uses normal texture instead of EGLImage for easy of debugging on linux/windows platform, but it demonstrated the exact same problem with AHB texture. Bug: b/235523746 Change-Id: I7ca1ff13b61ade1449a56d3afc8a84926ad13850 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3700570 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Charlie Lao <cclao@google.com> Reviewed-by: Ian Elliott <ianelliott@google.com>
Yuly Novikov fec66d30 2022-06-13T14:02:09 Skip 4 end2end tests flaky on Mac NVIDIA GL BlitFramebufferTest.NonZeroBaseSource BlitFramebufferTest.NonZeroBaseSourceStencil CopyTextureTestES3.InvalidateCopyThenBlend CopyTextureTestES3.InvalidateBlitThenBlend3Layers Bug: angleproject:5001, angleproject:5155 Change-Id: I25a3445e917dcc3322ad83c44158dba28454d218 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3702354 Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Auto-Submit: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Shahbaz Youssefi f33f6aa8 2022-06-10T23:45:14 Capture/Replay: Skip multithreading tests that time out Bug: angleproject:7423 Change-Id: I8110d943cfa0f57005633c9a71106932ea053810 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3700199 Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org>
Shahbaz Youssefi 45c57333 2022-06-10T22:34:25 Roll VK-GL-CTS from 8817dcf9c1ec to 50754c3c19c0 (11 revisions) https://chromium.googlesource.com/external/github.com/KhronosGroup/VK-GL-CTS.git/+log/8817dcf9c1ec..50754c3c19c0 2022-06-09 quic_mnetsch@quicinc.com Merge vk-gl-cts/vulkan-cts-1.3.2 into vk-gl-cts/main 2022-06-09 peter.kohaut@arm.com Fix Android build 2022-06-09 gleese@broadcom.com Shrink the framebuffer in more graphicsfuzz tests 2022-06-09 gleese@broadcom.com Remove superfluous 'resolution' from graphicsfuzz test 2022-06-09 younggwan.kim@arm.com Add KHR-GLESEXT.fragment_shading_rate tests 2022-06-09 piotr.byszewski@mobica.com Run DR draw tests with secondary command buffers 2022-06-09 jari.komppa@siru.fi Add recipe for amber-verify run mode 2022-06-09 ari.suonpaa@siru.fi Add new test cases for VK_EXT_load_store_op_none 2022-06-09 peter.kohaut@arm.com Update Vulkan headers 2022-06-09 quic_mnetsch@quicinc.com Merge vk-gl-cts/opengl-cts-4.6.2 into vk-gl-cts/main 2022-06-09 quic_mnetsch@quicinc.com Merge vk-gl-cts/opengl-es-cts-3.2.8 into vk-gl-cts/main If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/vk-gl-cts-angle-autoroll Please CC angle-bots+autoroll-info@google.com,syoussefi@google.com on the revert to ensure that a human is aware of the problem. To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry To report a problem with the AutoRoller itself, please file a bug: https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug Documentation for the AutoRoller is here: https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md Bug: angleproject:7422 Change-Id: I6b3498372fa755f6b70ad953e59bd2f2dd0bd6b7 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3700198 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org>
Shahbaz Youssefi 1c1b2a52 2022-06-10T16:12:08 Suppress failing test Bug: angleproject:7398 Change-Id: Ic9e76e7925e01bea35c41a3fd1688e79b1d3ec26 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3697624 Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Alan Zhao 685d9175 2022-06-10T13:35:06 Remove the build flag -Wno-deprecated-declarations Now that the commit https://github.com/KhronosGroup/VK-GL-CTS/commit/44b613a986253cdde28283497731a7b909b520bc is included in angle's latest deps roll, we can remove the flag silencing the clang warning as std::iterator is no longer used. Bug: angleproject:7349 Change-Id: Ie7f3b4e245593ceb241a9e3a00593f99fa360492 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3697621 Auto-Submit: Alan Zhao <ayzhao@google.com> Commit-Queue: Nico Weber <thakis@chromium.org> Commit-Queue: Alan Zhao <ayzhao@google.com> Reviewed-by: Nico Weber <thakis@chromium.org>
Jamie Madill c73ea49a 2022-06-10T13:39:54 Reland "Remove cwd manipulations." This reverts commit 4e37ec8c021e5739e720d2847ac814f8eef296a6. Reason for revert: Turns out it wasn't necessary. Original change's description: > Revert "Remove cwd manipulations." > > This reverts commit c11af00ae1d10d43a71a28c07f99969665c4ea2a. > > Reason for revert: Needed for http://crrev.com/c/3690739 > > Original change's description: > > Remove cwd manipulations. > > > > Doesn't appear to be needed as the underlying functions > > are already using the executable path. > > > > Bug: angleproject:7410 > > Change-Id: Ia9566c7159624bcb039d7dd2e9d23f4b18649f45 > > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3695519 > > Commit-Queue: Roman Lavrov <romanl@google.com> > > Reviewed-by: Jamie Madill <jmadill@chromium.org> > > Bug: angleproject:7410 > Change-Id: I397ed2e75155a774c45af9c67e5906932183f1c8 > No-Presubmit: true > No-Tree-Checks: true > No-Try: true > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3696830 > Auto-Submit: Jamie Madill <jmadill@chromium.org> > Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> > Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Bug: angleproject:7410 Change-Id: I06487f345482e4c26ed78754395054b43d182357 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3697310 Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Cody Northrop 9797401b 2022-06-09T22:41:11 Tests: Add Star Wars: KOTOR trace Test: angle_perftests --gtest_filter="*star_wars_kotor*" Bug: angleproject:7353 Change-Id: I20027ad4963d86609cbb0ffad5d57dbe83371ada Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3699198 Commit-Queue: Cody Northrop <cnorthrop@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill 89aa1027 2022-06-07T12:19:54 Specify display to EGL query in print info test. This will be backwards-compatible with EGL 1.4 and non-ANGLE GL implementations. Bug: angleproject:7396 Change-Id: I78a6c5b9a0d49ef9768b9a5895f6280d22e64123 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3692267 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Auto-Submit: Jamie Madill <jmadill@chromium.org>
Jamie Madill 81585fe2 2022-06-08T14:37:38 Use consistent test names with dEQP. This removes the GTest/dEQP test name distinction. Using the "RegisterTests" method in GTest we can use the full dEQP test names. The one limitation is that "-" is reserved in GoogleTest for exclusion filters, so we need to do some extra work to sanitize our filters before we pass them to GoogleTest. Makes maintaining test expectations easier going forward. Bug: angleproject:7390 Change-Id: I23893c425ddc934c11fe539b9173ec06c58abcc2 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3695518 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Shahbaz Youssefi 3dfc8004 2022-06-08T14:24:48 Vulkan: Optimize sync followed by swap Previously, inserting a sync object immediately caused a submission. That was done in https://chromium-review.googlesource.com/c/angle/angle/+/3200274 to be able to wait until the sync object is signaled without having to wait for whatever is recorded after it until a flush naturally happens. Some applications issue a glFenceSync right before eglSwapBuffers. The submission incurred by glFenceSync disallowed the optimizations that eglSwapBuffers would have done, leading to performance degradations. This could have been avoided if glFenceSync was issued right after eglSwapBuffers, but that's not the case with a number of applications. In this change, when a fence is inserted: - For EGL sync objects, a submission is issued regardless - For GL sync objects, a submission is issued if there is no render pass open - For GL sync objects, the submission is deferred if there is an open render pass. This is done by marking the render pass closed, and flagging the context as having a deferred flash. If the context that issued the fence sync issues another draw call, the render pass is naturally closed and the submission is performed. If the context that issued the fence sync causes a submission, it would have a chance to modify the render pass before doing so. For example, it could apply swapchain optimizations before swapping, or add a resolve attachment for blit. If the context that issued the fence sync doesn't cause a submission before another context tries to access it (get status, wait, etc), the other context will flush its render pass and cause a submission on its behalf. This is possible because the deferral of submission is done only for GL sync objects, and those are only accessible by other contexts in the same share group. Bug: angleproject:7379 Change-Id: I3dd1c1bfd575206d730dd9ee2e33ba2254318521 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3695520 Reviewed-by: Charlie Lao <cclao@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Charlie Lao 4c6d47c8 2022-06-08T15:20:49 Vulkan: Optimize glEGLImageTargetTexture2DOES with same args If we are creating a texture with the same source eglImage, right now we will release the existing mImage (will not actually destroyed) and then free VkImageViews. Then it point back to the same mImage and allocate new VkImageViews. Since these ImageViews have different serial number, we end up with DescriptorSet cache miss. This CL avoid all these hassles if we are creating with the exact same image. Bug: b/234602034 Change-Id: I04cec05716974e274d6e3678e91ff248f50e9355 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3697204 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Ian Elliott <ianelliott@google.com> Auto-Submit: Charlie Lao <cclao@google.com> Commit-Queue: Charlie Lao <cclao@google.com>
Chris Dalton a894cb94 2022-05-10T21:15:59 Bootstrap pixel local storage This CL creates a very simple prototype that implements pixel local storage in a thin layer on top of ES 3.1 shader images, and adds a single test. Assuming all goes well on the various devices and backends, the next steps will be: * Write many more tests. * Compiler support, switch to API-specific shader images. * Move the thin layer into ANGLE. * Thorough validation and error handling. * Add an implementation that uses render target attachments (e.g., EXT_shader_framebuffer_fetch). * Incremental, backend-specific optimizations as needed. Bug: angleproject:7279 Change-Id: I7f9f0a1fe2d61f570b4105a7380687038ae45f5d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3645786 Reviewed-by: Kenneth Russell <kbr@chromium.org> Commit-Queue: Kenneth Russell <kbr@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Charlie Lao ee1dd7f4 2022-06-08T13:17:39 Vulkan: Add test for glEGLImageTargetTexture2DOES issue This add a test that repeatedly calling glEGLImageTargetTexture2DOES on the same source EGLImage with the same texture parameters should not causing texture's descriptor set cache to keep growing. This is the usage pattern we are seeing with surfaceflinger. Bug: b/234602034 Change-Id: I38ec0a0b2580b8985c27e8c9f7edf14aa7843023 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3696677 Reviewed-by: Ian Elliott <ianelliott@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Charlie Lao <cclao@google.com>
angle-autoroll 76e98ae1 2022-06-09T09:11:28 Roll VK-GL-CTS from acf70aaf3fdb to 8817dcf9c1ec (36 revisions) https://chromium.googlesource.com/external/github.com/KhronosGroup/VK-GL-CTS.git/+log/acf70aaf3fdb..8817dcf9c1ec 2022-06-09 piotr.byszewski@mobica.com Split pipeline.txt mustpass into multiple files 2022-06-09 vantablack@google.com Add R8_UNORM to the external AHB memory tests 2022-06-09 michal.jakubek@mobica.com More EXT_color_write_enable tests. 2022-06-08 quic_mnetsch@quicinc.com Merge vk-gl-cts/dev/VK_EXT_image_compression_control into vk-gl-cts/main 2022-06-08 quic_mnetsch@quicinc.com Merge vk-gl-cts/dev/VK_KHR_fragment_shader_barycentric into vk-gl-cts/main 2022-06-07 quic_mnetsch@quicinc.com Merge vk-gl-cts/dev/VK_KHR_ray_tracing_maintenance1 into vk-gl-cts/main 2022-06-07 quic_mnetsch@quicinc.com Merge vk-gl-cts/vulkan-cts-1.3.2 into vk-gl-cts/main 2022-06-03 pdaniell@nvidia.com Fix regression from CL-9387 to handle empty cache properly 2022-06-03 pdaniell@nvidia.com Fix deqp-vksc build break from CL-9046 2022-06-03 quic_mnetsch@quicinc.com Merge "Merge vk-gl-cts/vulkansc-cts-1.0.0 into vk-gl-cts/main" into main 2022-06-02 marcin.zajac@mobica.com Thread safe releaseQueue 2022-06-02 toni.merilehti@siru.fi Fix extension check in transform feedback tests 2022-06-02 juha.heiskanen@siru.fi Fix amber-verify mismatch in builtin precision tests 2022-06-02 gleese@broadcom.com Shrink the framebuffer in 2 graphicsfuzz tests 2022-06-02 antto.makinen@siru.fi Test VkSubresourceLayout::offset is relative to the start of an image 2022-06-02 jari.komppa@siru.fi Add inter-process communcation to shader cache 2022-06-02 jbolz@nvidia.com Add command line parameter to override Vulkan library path 2022-06-02 juha.heiskanen@siru.fi Dynamic rendering with NULL shading rate image 2022-06-02 rgarcia@igalia.com Test imageSize() on 2D image views from 3D images 2022-06-02 juha.heiskanen@siru.fi Bug fix for current variableSampleLocations tests + new tests 2022-06-02 toni.merilehti@siru.fi Test single-path switch statements 2022-06-02 jmadill@google.com Remove usages of std::iterator 2022-06-02 pierre-eric.pelloux-prayer@amd.com Fix ShaderBallotFunctionRead test 2022-06-02 younggwan.kim@arm.com Add autogenerate with GL_EXT_fragment_shading_rate 2022-06-02 ayzhao@google.com Remove usages of std::iterator 2022-06-02 younggwan.kim@arm.com Update gl.xml and fix script to build properly 2022-06-02 quic_mnetsch@quicinc.com Merge vk-gl-cts/opengl-cts-4.6.2 into vk-gl-cts/main 2022-06-02 quic_mnetsch@quicinc.com Merge vk-gl-cts/opengl-es-cts-3.2.8 into vk-gl-cts/main 2022-05-20 marcin.zajac@mobica.com writeSupportedExtensions for VKSC 2022-05-20 marcin.zajac@mobica.com Missing VK_KHR_object_refresh 2022-05-17 juha.heiskanen@siru.fi Add required support check for IsHelperInvocationEXT test 2022-05-17 ari.suonpaa@siru.fi Add a batch of GraphicsFuzz coverage tests 2022-05-17 pdaniell@nvidia.com Test poolSizeCount can be zero 2022-05-17 jari.komppa@siru.fi Add tests for vkGet...SurfacePresentModes2EXT 2022-05-17 quic_mnetsch@quicinc.com Merge vk-gl-cts/vulkan-cts-1.3.2 into vk-gl-cts/main 2022-05-13 marcin.zajac@mobica.com Merge branch 'vulkan-sc-cts-dev' into 'main' If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/vk-gl-cts-angle-autoroll Please CC angle-bots+autoroll-info@google.com,syoussefi@google.com on the revert to ensure that a human is aware of the problem. To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry To report a problem with the AutoRoller itself, please file a bug: https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug Documentation for the AutoRoller is here: https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md Bug: angleproject:7416 Change-Id: I289aec7e7b0991556303efa70bd665fb66e43731 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3696826 Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Yuxin Hu 5fbb0417 2022-05-26T15:05:52 Vulkan: Handling VK_EXT_load_store_op_none on ARM There is a bug on at least one ARM device when either depth or stencil load op is none. Add a temporary work around to avoid this case for ARM driver until angleproject:7370 is addressed. Also add a test to reproduce the deqp test failures with simiplied draw calls. Bug: angleproject:7370 Bug: angleproject:7351 Change-Id: I74ac49a75f85b1e006ed3b1d77f234f63d314ae0 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3671696 Reviewed-by: Charlie Lao <cclao@google.com> Commit-Queue: Yuxin Hu <yuxinhu@google.com> Reviewed-by: Ian Elliott <ianelliott@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Jamie Madill 4e37ec8c 2022-06-09T16:44:44 Revert "Remove cwd manipulations." This reverts commit c11af00ae1d10d43a71a28c07f99969665c4ea2a. Reason for revert: Needed for http://crrev.com/c/3690739 Original change's description: > Remove cwd manipulations. > > Doesn't appear to be needed as the underlying functions > are already using the executable path. > > Bug: angleproject:7410 > Change-Id: Ia9566c7159624bcb039d7dd2e9d23f4b18649f45 > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3695519 > Commit-Queue: Roman Lavrov <romanl@google.com> > Reviewed-by: Jamie Madill <jmadill@chromium.org> Bug: angleproject:7410 Change-Id: I397ed2e75155a774c45af9c67e5906932183f1c8 No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3696830 Auto-Submit: Jamie Madill <jmadill@chromium.org> Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Roman Lavrov c11af00a 2022-06-08T14:45:58 Remove cwd manipulations. Doesn't appear to be needed as the underlying functions are already using the executable path. Bug: angleproject:7410 Change-Id: Ia9566c7159624bcb039d7dd2e9d23f4b18649f45 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3695519 Commit-Queue: Roman Lavrov <romanl@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill a65af046 2022-06-08T11:57:59 De-template out dEQP GTest bridge class. This class doesn't need to be a template, and can take the test case index parameter instead from a common macro. Refactoring only, done in the process of trying to update our dEQP test case registration to get better test names. Bug: angleproject:7390 Change-Id: Ia104a0055ddb9cbc6d311d220d8d4e486214928f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3695945 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Roman Lavrov <romanl@google.com> Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Roman Lavrov b9bdc53b 2022-06-07T14:50:46 Make TestEventListener and inner class of TestSuite. Avoids having to pass dependencies to the class as it's automatically a friend; external linkage sadly but such is life. Bug: angleproject:7299 Change-Id: I5726dcab5a1a98b93c0713073cd02d6eb3a8e216 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3693826 Commit-Queue: Roman Lavrov <romanl@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Chris Dalton d9a2027f 2022-05-19T16:52:28 Add a test for volatile aliases of the same shader image Bug: angleproject:3032 Bug: angleproject:7343 Bug: angleproject:7398 Change-Id: I6ea6abea0b9dafd93bc297499df23be27904c996 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3656314 Reviewed-by: Stephen White <senorblanco@chromium.org> Commit-Queue: Stephen White <senorblanco@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Lubosz Sarnecki 34d30930 2022-06-01T10:02:58 Tests: Add Shadow Fight 3 trace. Test: angle_perftests --gtest_filter="*shadow_fight_3*" Bug: angleproject:7401 Change-Id: I7a1262560c577c53feeef83f4ebb69b795d4d62b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3687715 Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Lubosz Sarnecki <lubosz.sarnecki@collabora.com>
Stephen White 52e560ea 2022-06-07T11:55:56 Remove suppressions for now-passing ES 3.1 tests. Bug: angleproject:1442, angleproject:1951 Change-Id: I61f9c39711f77d48a401ad98ef4ead4c0f17fe2a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3693821 Commit-Queue: Jamie Madill <jmadill@chromium.org> Commit-Queue: Stephen White <senorblanco@chromium.org> Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Shahbaz Youssefi 4dde8590 2022-06-06T23:13:53 Remove suppression for passing tests Bug: angleproject:2976 Change-Id: I5e899c4d4fcc68b52b7b131dae6011a6129ab16b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3690748 Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Lubosz Sarnecki d66d9e7b 2022-06-01T10:30:18 Tests: Add Rush Royale trace. Test: angle_perftests --gtest_filter="*rush_royale*" Bug: angleproject:7399 Change-Id: I1cfc1304331eac1903750736565eae041d4e00d0 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3687714 Commit-Queue: Cody Northrop <cnorthrop@google.com> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Stephen White cb9e1235 2022-06-06T14:34:53 D3D11: fix UAV handling. For setting UAVs, Microsoft has provided two APIs: ID3D11DeviceContext::OMSetRenderTargetsAndUnorderedAccessViews() for pixel and vertex, and ID3D11DeviceContext::CSSetUnorderedAccessViews() for compute. They both take very similar arguments, perform similar functions, but have one crucial difference: the former will clobber any existing UAV bindings that are not specified in the call, while the latter will not. The initial implementation of non-compute UAVs in ANGLE didn't accomodate this, and sets UAVs individually, as is done for compute, which clobbers any UAVs set in a previous call. The fix is to collect all UAVs required for a draw or compute pass, and set them all at once. This required reworking the internal dirty bits to reflect the actual D3D requirements (SRV and/or UAV usage), and to split the sync functions to set only SRV or UAV state. Also add a two-SSBO fragment shader test. Bug: angleproject:7385 Change-Id: I0c98e1506d56eccf1db446c0be808f2f3020ae1e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3690735 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Stephen White <senorblanco@chromium.org>
Jamie Madill 0260255b 2022-06-06T15:10:04 Fix printing of non-standard renderers. Bug: angleproject:7396 Change-Id: I18cfadbc58b71259efd414cd7ef90a45719f9b1e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3690736 Reviewed-by: Yuxin Hu <yuxinhu@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Rohit Rao 4b911686 2022-06-06T22:25:37 Converts from sprintf() to snprintf(). sprintf() is deprecated in Xcode 14, so update to safer equivalents in order to keep the compiler happy on iOS and macOS. Bug: chromium:1331345 Change-Id: Id5348088bf69cbd360d9251e6323596cb710666d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3690747 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Shahbaz Youssefi ce3c0fe9 2022-06-06T12:09:45 Vulkan: Make depth-correction uniform controlled This change makes sure SPIR-V transformations are not required for depth correction, having the number of potential pipelines. Bug: angleproject:5881 Change-Id: If3f66b34bdd1127ae588cbc822ea7cf01fa8621f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3691801 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Charlie Lao <cclao@google.com>
Shahbaz Youssefi 2fcf9a92 2022-06-06T12:16:55 Suppress failing test Bug: angleproject:7392 Change-Id: I4c0ba6985bcf6ecc833bd6e4719f78e5586402a1 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3691802 Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org>
Roman Lavrov b7bd0808 2022-06-06T10:54:30 Support running end2end tests. There is no batching though so all tests matching the filter will be ran at once which will block without any output until evertyhing is done (android runner runs tests in batches of 256 IIRC). Also make suite arg positional and explicitly list supported tests. Bug: angleproject:6854 Change-Id: Ibe108f24d6c3ec8b966eda1cf9ae92119a517548 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3691048 Commit-Queue: Roman Lavrov <romanl@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Roman Lavrov b71c6427 2022-05-31T16:23:51 Add a wrapper script to run traces using android_helper. Also add missing `appops set MANAGE_EXTERNAL_STORAGE` that appears to be necessary on newer builds (catapult does it starting from Android 11). Add a hash check to skip transferring .gz files that are already there. Bug: angleproject:6854 Change-Id: Ib612d1235fe1274b8fea47718af8389e8810d34e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3679486 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Roman Lavrov <romanl@google.com> Auto-Submit: Roman Lavrov <romanl@google.com>
Charlie Lao 2fec519f 2022-06-02T15:17:28 Avoid dirty texture swizzle state when there is no change Some applications (for example surfaceflinger on Android) may set texture swizzle at every call even though there is no actual swizzle change. But we are not checking against redundant state calls and is always setting texture's DIRTY_BIT_SWIZZLE_* bits. This caused vulkan backend free image views which in turn forces VkFramebuffer recreation. This CL check the swizzle state and only set dirty bits if it actually changes. Bug: b/234602034 Change-Id: I7fab96a957c0b7a7ed318eaccea2d42146ca23cd Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3688732 Reviewed-by: Ian Elliott <ianelliott@google.com> Commit-Queue: Charlie Lao <cclao@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Charlie Lao d655ad29 2022-05-31T14:20:16 Vulkan: Add tests for FramebufferCache growth bugs When texture attached to FBO gets respecified, we shouldn't keep growing FramebufferCache. When texture attached to fbo get glTexParameteri(GL_TEXTURE_SWIZZLE_R) call with the same value, we should also not destroy/recreate framebuffers (in fact should not recreate VkImageView). We ran into this usage pattern on surfaceflinger. When texture attached to fbo get glTexParameteri(GL_TEXTURE_SWIZZLE_R) call with different value, we should also not destroy/recreate framebuffers (in fact should not recreate VkImageView). We ran into this usage pattern on surfaceflinger. Bug: b/234769934 Bug: b/234602034 Change-Id: I9fc881486f95cc3da843f50fa0a8cdcbfd4fc625 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3681081 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Ian Elliott <ianelliott@google.com> Commit-Queue: Charlie Lao <cclao@google.com>