src/tests/egl_tests


Log

Author Commit Date CI Message
Shahbaz Youssefi 9041ca0c 2020-11-20T16:27:48 Limit testing of in-progress work to ANGLE's build of dEQP A new feature is added, exposeNonConformantExtensionsAndVersions, which is set by ANGLE's build of dEQP to allow exposing ES3.2 or extensions that are not yet entirely conformant. This would allow ANGLE to expose WIP extensions for regression testing without affecting partners that test ANGLE with dEQP's standalone build. Bug: angleproject:3647 Change-Id: Id1e6219f26b41d3f8cdc9763131b8052227761c5 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2552926 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Sunny Sun <sunny.sun@arm.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Yuly Novikov 35df41da 2020-11-23T21:34:13 Skip more tests on Linux AMD RX 5500 XT Remove EGLFeatureControlTest suppression, which crashed due to calling IsVulkan() without an initialized context. angle_perftests: MultisampledRenderToTextureBenchmark.Run/vulkan_multipass_ds angle_white_box_tests: VulkanPerformanceCounterTest.RenderToTextureDepthStencilRenderbufferShouldNotLoad Bug: chromium:1004356, angleproject:5380, chromium:1097750 Change-Id: I38819374242b71fb57c54a9d0fb47b1547dda895 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2556445 Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Jamie Madill 56663dbf 2020-11-19T21:21:19 EGL: Expose device query as a client extension. This matches the extension spec. Previously we were exposing the ext as a normal display extension. The extension should work without needing a display. Because the extension requires a non-null device for every display we also add a MockDevice class to handle back-ends which don't implement any attribute query extensions. By default the device query ext does not expose any way to use devices so this works fine. Bug: angleproject:5372 Change-Id: I474310a86aff6a83bd6f9a6b21c8a07c649f306d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2551543 Reviewed-by: Jonah Ryan-Davis <jonahr@google.com> Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Yuly Novikov f98f18f6 2020-11-17T18:42:35 Remove Nexus 6P expectations Bot decommissioned in crrev.com/c/2541579 Bug: chromium:1148989, angleproject:5280, angleproject:3726 Bug: angleproject:2641, angleproject:3264, angleproject:2114 Bug: angleproject:3464, angleproject:4991, angleproject:1415 Bug: angleproject:2407, angleproject:1427, angleproject:4215 Bug: angleproject:1429, angleproject:5069, chromium:998503 Change-Id: I1b268fdbcf6465aef447e90e470c1a011c7b3747 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2545892 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Amy Liu b10a0dfc 2020-11-12T14:51:05 Fix flip info of colorBlit with pre-rotation. Get wrong colorBlit results on android if there is flip operation added by glBlitFramebuffer API. Fix the implementation and add related end2end tests. Bug: angleproject:5044 Change-Id: I797f8858b3943b5effe27261e954ca1405960ef0 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2534210 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Ian Elliott <ianelliott@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Mohan Maiya 34130c2e 2020-11-07T15:11:14 Vulkan: Rewrite interpolateAtOffset to account for Y-flip In order to fully suppot OES_shader_multisample_interpolation rewrite interpolateAtOffset's offset parameter to account for Y-coordinate flip. Bug: angleproject:3589 Tests: dEQP-GLES31.functional.shaders.multisample_interpolation. interpolate_at_offset.*.default_framebuffer Change-Id: I6bf72ceb1c0466ff5d4a92b72d1ec9e2552d6f2a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2524711 Commit-Queue: Mohan Maiya <m.maiya@samsung.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Jamie Madill 924c3dab 2020-11-02T13:08:16 Expand suppression of new EGL test. This test fails on the older N6P device as well as the N5X. Bug: angleproject:5280 Change-Id: Ie1a2b3b3a296e2e4dbbed69ebff6ce325b46ce95 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2514638 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jamie Madill 97843bda 2020-10-30T17:03:36 Vulkan: Fix EGL Surface robust init. The error here was related to using a single cache variable for the robust init setting for all the surfaces in a DisplayVk. Fix this by passing down the robust init setting from the SurfaceVk to image init. Bug: angleproject:5274 Change-Id: I9bc9c20990268d1d5166411fb53f8f2593fd1971 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2510694 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Le Hoang Quyen 6dfd855a 2020-03-25T03:02:08 Metal: Implement fence sync Bug: angleproject:2634 Change-Id: If1f7bb12c0e661c8e4b5677798a92440995819e4 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2433325 Commit-Queue: Le Hoang Quyen <le.hoang.q@gmail.com> Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Trevor David Black e815afbf 2020-09-07T22:09:22 First pass at increasing inclusivity Link to the inclusivity rules https://source.android.com/setup/contribute/respectful-code Bug: b/162834212 Bug: chromium:1097198 Change-Id: Ied5a9e3879d72bff3f77ea6fcda9b82f30c32c2f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2396737 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Trevor Black <vantablack@google.com>
Jamie Madill e9a82849 2020-10-02T11:29:44 Skip ResizeWindowWithDraw test on all Linux. Flakes on NVIDIA Linux as well when run in certain orders. Bug: angleproject:4453 Change-Id: I7565b7868518d01d5e928ce95d0edb8abd651e28 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2446091 Commit-Queue: Yuly Novikov <ynovikov@chromium.org> Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Amy Liu 83c7e1ae 2020-09-17T16:42:19 Fix the regression of color blit. Move the offset aligning code to stencilBlitResolveNoShaderExport to avoid affecting color blit. Test: dEQP-GLES3.functional.fbo.blit.default_framebuffer.*_linear_* Bug: angleproject:5044 Change-Id: Ic2ebef94091853146424d567b0035161611ba32d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2416008 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Ian Elliott 99b71417 2020-09-16T11:41:24 Vulkan: Disable BlitStencilWithFlip test on Win These tests fail on the Windows NVIDIA bots Bug: angleproject:5044 Bug: chromium:1128064 Change-Id: Idad4cc33d8e49b0b468b8e560b44f9a9c6a2f37f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2414932 Reviewed-by: Ian Elliott <ianelliott@google.com> Commit-Queue: Ian Elliott <ianelliott@google.com>
Amy Liu b3c7d39a 2020-09-03T15:51:02 Align the sample position in blitResolveStencil compute shader The input coordinates of blitResolveStencil compute shader start from 0,we need to align the sample position to start from 0 if x/y is flipped. Test: dEQP-GLES3.functional.fbo.invalidate.*.unbind_blit_msaa_* Bug: b/159995959 Change-Id: If0c9f5b7cacddbe1a2d7062469a757a63bcc1378 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2392162 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Ian Elliott <ianelliott@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Shahbaz Youssefi fdb7874d 2020-08-26T22:04:19 Gracefully fail end2end tests if no window support EGL_WINDOW_BIT is now specifically requested for tests that open a window (those that aren't WithNoFixture). This makes sure pbuffer-only configs are not selected for the window. Additionally, a few WithNoFixture tests are made more robust in the presence of no-window configs. In the context of crbug.com/1034840, this means that a subset of end2end tests would be able to run in a remote desktop environment. Tested on Linux/X11 by turning a subset of configs PBUFFER-only. Bug: chromium:1034840 Change-Id: I09fd149d43d3b865856fe6b9491c5f333f4a2efc Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2378922 Reviewed-by: Jonah Ryan-Davis <jonahr@google.com> Reviewed-by: back sept 10 - Jamie Madill <jmadill@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Jamie Madill f71283c9 2020-08-25T23:35:06 Fix EGLContextCompatibilityTest. The check for "IsPlatformAvailable" was inverted. We were incorrectly trying only to create a context on invalid configs. Bug: angleproject:4449 Change-Id: I03fbdc7794a338a55b9dc64521915a8be247bf35 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2376045 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Geoff Lang 710e408e 2020-08-25T18:00:39 Add support for P010 IOSurfaces Add test coverage of multi-plane IOSurfaces. Bug: chromium:1115621 Change-Id: Ib2150c4221a3e49f01ab016cebba4830194ab2b5 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2376174 Reviewed-by: Jonah Ryan-Davis <jonahr@google.com> Commit-Queue: Geoff Lang <geofflang@chromium.org>
Jonah Ryan-Davis b89e9611 2020-08-19T11:19:35 Fix SwANGLE suppressions of EGLIOSurfaceClientBufferTest Suppressions were missing for several texture formats. This slipped through because angle_end2end_tests are not run on SwANGLE on Mac. Bug: angleproject:4369 Change-Id: I0cbafe5daab591da15f86f2658c4edc724ae2561 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2364190 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
Ian Elliott 09924221 2020-08-24T17:17:17 Convert the EGL end2end tests to use RAII types/macros These tests are frequently cloned to make new tests, and so it's good to do a more-global refactor so that these and future tests will use RAII. Bug: angleproject:4947 Change-Id: I2973e70ee075629965b18c685793975537e96b6c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2372627 Reviewed-by: Ian Elliott <ianelliott@google.com> Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Ian Elliott <ianelliott@google.com>
Le Hoang Quyen a13f1061 2020-08-14T23:37:21 Metal: Fix missing image view for texture from IOSurface. Image view is used by glTexSubImage*, glCopySubImage* and glCopySubTexture*. This fixed some failed WebGL tests that make use of IOSurface. Bug: angleproject:4846 Bug: angleproject:2634 Change-Id: Iebcf840fdc1be2794feab766957b5848a361a63c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2356107 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Maksim Sisov 0a3233fa 2020-07-29T10:35:04 X11 and Ozone: fix compilation of tests. For use_x11 && use_ozone build, use X11 backend by default. For ozone only, continue using Ozone impl, which is basically gbm. Bug: chromium:1085700 Change-Id: Iac104e983135e566b0d42a58e00d3c83b430d6dc Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2346276 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org>
Ian Elliott 6eb7756d 2020-08-07T17:41:39 Vulkan: tell ContextVk when swapchain is re-created For an app that only draws to the swapchain, if the swapchain is recreated with a different rotation (as done by the ANGLE perf tests when switching from Angry Birds 2 to Candy Crush), ContextVk is not informed, and so the new rotation is ignored. Use the subject-observer pattern to set the appropriate dirty bits. Test: run_angle_perftests --gtest_filter=TracePerfTest.Run/vulkan_angry*:*vulkan_candy* --verbose --local-output Bug: angleproject:4910 Bug: b/163126746 Change-Id: Ib5303e9c4095db1b3e736911f483589e40a73d0c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2341768 Commit-Queue: Ian Elliott <ianelliott@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Jonah Ryan-Davis f9de2e20 2020-08-04T11:53:05 Enable required extensions for Chromium to use the Metal backend. This includes: EGL_ANGLE_display_texture_share_group EGL_ANGLE_display_semaphore_share_group EGL_ANGLE_robust_resource_initialization GL_EXT_debug_marker Bug: angleproject:4847 Bug: angleproject:4930 Bug: angleproject:4929 Bug: chromium:1112800 Bug: angleproject:4946 Change-Id: Ibacb6badf9f784dae3ca42514142ef13ee7297b8 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2332863 Commit-Queue: Jonah Ryan-Davis <jonahr@google.com> Reviewed-by: Tim Van Patten <timvp@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Courtney Goeltzenleuchter 3a3d419d 2020-08-04T09:06:01 Reference count context to fix ASAN issues Running with ASAN there are several use after free issues because a eglDestroyContext destroys the context right away even though it's in use in other thread(s). Adding reference count to context so that it's not destroyed until all users are done using it. Bug: b/162609728 Change-Id: I00b24b53d760e38ff61dd9ce652a49b1f32f0cd2 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2336447 Commit-Queue: Courtney Goeltzenleuchter <courtneygo@google.com> Reviewed-by: Tobin Ehlis <tobine@google.com> Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Jonah Ryan-Davis d41280a7 2020-08-04T09:08:05 Suppress SurfacelessContext test on Android/NVIDIA EGLSurfacelessContextTest.Switcheroo/ES2_OpenGLES_NoFixture is failing on NVIDIA Shield TV. Bug: angleproject:4924 Change-Id: I4bd0744fd19cb3473cc654ede5870374506ddc46 TBR=jmadill@chromium.org Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2336189 Reviewed-by: Jonah Ryan-Davis <jonahr@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jonah Ryan-Davis 515b0775 2020-07-31T12:14:59 Metal: Enable EGL_KHR_surfaceless_context. Surfaceless contexts are emulated in the frontend so this extension can be enabled for the metal backend. It's needed to run Chrome with ANGLE's metal backend. Bug: angleproject:4847 Change-Id: I3a2f74fd5f2ac75a056c528c8b30ffbd41d73e46 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2332880 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
Le Hoang Quyen 69ca1025 2020-07-31T02:08:09 Metal: Implement EGL_ANGLE_iosurface_client_buffer. GL_R16UI format is not supported yet. It will be implemented once integer textures are implemented in metal back-end. Bug: angleproject:4847 Bug: angleproject:2634 Change-Id: I60a52c0ce327a524c74e80b18bb15978ac52065b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2329091 Commit-Queue: Jonah Ryan-Davis <jonahr@google.com> Reviewed-by: Jonah Ryan-Davis <jonahr@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Le Hoang Quyen cbd5bee8 2020-07-13T20:31:29 Disable shader's pre-rotation code on Metal & non-Android. Pre-rotation code were added to transform gl_Position, gl_FragCoords, gl_PointCoords, dFdX, dFdY in shader. However, it is only useful for android's surface pre-rotation and completely un-needed in Metal back-end. This CL disables these pre-rotation code if the platform is not android. Bug: angleproject:4678 Change-Id: I89c42fcf24b49896f4ed9c2f9465da521beaf25f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2295000 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Ian Elliott <ianelliott@google.com>
Jiajia Qin f359cb66 2020-07-02T15:15:54 Reland: Refactor DisplayGbm::generateConfigs We should explicitly set EGL_SURFACE_TYPE to EGL_DONT_CARE. Otherwise, it's default value is EGL_WINDOW_BIT. However, on some platforms, only EGL_PBUFFER_BIT is supported. In this case, no matching config is found. So mWindowSurface and mPbufferSurface will be nullptr. That's why we see the bot failed. Bug: chromium:1105208 Change-Id: I8ee2487fd24bab86a5ec22fbe7b8ff68081bc15c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2304429 Commit-Queue: Jiajia Qin <jiajia.qin@intel.com> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Geoff Lang ab95a449 2020-07-20T12:12:18 Textures that have bound surfaces are always renderable. Chrome still tends to use ES2 contexts for most rasterization. This is a problem when trying to use FP16 IOSurfaces for rendering HDR because GL_RGBA16F is not renderable in ES2. Since a surface is always renderable, allow rendering to any textures with a bound surface. Update the tests to verify that ES3 formats can be used with ES2 contexts. Add tests for RGBA16F IOSurfaces. BUG: chromium:1103112 Change-Id: I9e8c082fc97a0e072289b097e71fc944988d4872 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2307454 Reviewed-by: Jonah Ryan-Davis <jonahr@google.com> Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org>
Geoff Lang 49108a12 2020-06-30T11:53:23 Support BGRA_1010102 IOSurfaces in CGL and Vulkan. Bug: chromium:1100599 Change-Id: I7bc2c2e35490e28e9f6fe8f2e0c26cdea50650b9 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2275731 Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Jonah Ryan-Davis <jonahr@google.com> Commit-Queue: Geoff Lang <geofflang@chromium.org>
Manh Nguyen 3688cb36 2020-06-28T15:28:10 Fix bugs in angle_end2end_tests and frame capture 1. CaptureGetShaderInfoLog_infoLog method should not require shader object to be compiled 2. glCompressedTexImage3D's parameter locations are off by 1 3. EGLContextSharingTest.DisplayShareGroupObjectSharing test should not delete buffers it has no access to since it will crash when running capture replay Bug: angleproject:4801 Change-Id: I0d407cdb44eb41eea4209eebab0996d3dd8ae5f5 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2272862 Commit-Queue: Manh Nguyen <nguyenmh@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Corentin Wallez cbcc500f 2020-06-26T14:10:37 Broaden EGLFeatureControlTest Linux AMD suppression After the initial suppression the bot started failing on the next test. Use GTEST_SKIP in testSetUp to make all tests using the fixture skipped. Bug: chromium:1097750 Change-Id: Ic993d7cd274e1328684571c5ba1a1520b9cb80d5 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2270020 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Corentin Wallez 259221d5 2020-06-25T11:15:04 Suppress EGLFeatureControlTest on Linux AMD TBR=geofflang@chromium.org Bug: chromium:1097750 Change-Id: I69b6bc5ac920d839507f94097fa169d458275b38 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2264421 Commit-Queue: Corentin Wallez <cwallez@chromium.org> Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Ian Elliott 70e706f4 2020-06-22T18:14:44 Vulkan: Fix glBlitFramebuffer() for pre-rotation This involves cases of blitting to/from a rotated default framebuffer, potentially with scaling in one or both dimensions. Various adjustments are needed at different times in the stack, including in the custom BlitResolve fragment shaders. Various tests are affected, including the following: Test: angle_end2end_tests --gtest_filter=*EGLPreRotationLargeSurfaceTest.OrientedWindowWithBlitFramebuffer Test: angle_deqp_gles3_tests --gtest_filter=dEQP.GLES3/functional_fbo_invalidate_\* Bug: b/158337857 Change-Id: Ibb176e4215784e85c0f34e6e1c22ba662517fed2 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2242359 Reviewed-by: Ian Elliott <ianelliott@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Ian Elliott <ianelliott@google.com>
Ian Elliott fa3d64bf 2020-06-17T15:14:02 Minor edits to top of EGLPreRotationTest.cpp Bug: b/158337857 Change-Id: Id415496fbf38b63975b29834cd93c3b3c56defcb Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2250940 Reviewed-by: Ian Elliott <ianelliott@google.com> Commit-Queue: Ian Elliott <ianelliott@google.com>
Ian Elliott 6f568b08 2020-06-16T11:55:39 Split/refactor the pre-rotation BlitFramebuffer tests Making several, smaller, more-focused tests will aid in debugging problems. Bug: b/158337857 Change-Id: I3d1efd93a5ad7cd20352174a07f3547175eb2bb5 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2248201 Commit-Queue: Ian Elliott <ianelliott@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
Xiaoxuan Liu de4611c9 2020-06-04T13:44:17 Vulkan: Update eglDupNativeFenceFDANDROID() implementation. When exporting vkfence FD with vkGetFenceFdKHR() in SYNC_FD semantic, vkfence could be reset. Dup and store the SYNC_FD created vkfence's FD in SyncHelperNativeFence by exporting FD during initializeWithFd() meanwhile make the eglDupNativeFenceFDANDROID() only dup the mNativeFenceFd in SyncHelperNativeFence. Test: angle_end2end_tests --gtest_filter=EGLSyncTest.AndroidNativeFence_* Bug: angleproject:2517 Change-Id: I354185d26d0fda72baeb61702c879ed5665db6ec Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2230062 Reviewed-by: Jeff Vigil <j.vigil@samsung.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Geoff Lang 4e6f6545 2020-04-16T16:31:24 GLX: Support X11 pixmaps Add support for creating EGL pixmaps from X11 pixmaps using GLX. Pixmaps are needed for various external APIs such as VAAPI. Add support for EGL_NOK_texture_from_pixmap to allow binding pixmaps to textures. BUG=angleproject:4560 Change-Id: I4a6d3ad7e87151ff5317bbdaaf093ac1b46daf5f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2153805 Commit-Queue: Geoff Lang <geofflang@chromium.org> Reviewed-by: Jonah Ryan-Davis <jonahr@google.com> Reviewed-by: Tim Van Patten <timvp@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Ian Elliott 12ed3b6e 2020-06-11T14:16:25 Vulkan: Create a pre-rotation BlitFramebuffer test This test creates a predictable 256x256 pattern in an FBO (i.e. x-axis is red and y-axis is green), and then uses glBlitFramebuffer() to blit all or different halves of that FBO to the default framebuffer (i.e. the Vulkan swapchain). When run on a rotated Android device, the predictable pattern helps to determine if/how anything is wrong. Bug: b/158337857 Change-Id: I858964fcb34b8ee5fbdbeade0e1dacaafaea7fa3 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2236994 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Ian Elliott <ianelliott@google.com> Commit-Queue: Ian Elliott <ianelliott@google.com>
Ian Elliott 9bb7dd8a 2020-05-28T14:55:06 Create a pre-rotation test for dFdx() & dFdy() This end2end test makes it easier to create/debug pre-rotation support for dFdx() & dFdy(). Bug: b/157476241 Change-Id: I6e6cc3a86c84d252a326a776d6b589662b08d1ec Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2220311 Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com> Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Ian Elliott <ianelliott@google.com>
Sunny Sachanandani 3d5f0c82 2020-05-19T20:05:57 Use surface texture offset for clears and blits https://chromium-review.googlesource.com/c/angle/angle/+/2186176 added surface texture offset attributes for D3D11 pbuffer surfaces, but the implementation didn't apply the offset to blits or clears. This CL fixes that and includes a unit test for blit, clear, and draw. Also renames textureOffset to surfaceTextureOffset throughout since it's clearer, and fixes the dcomp surface test to specify the update offset returned by dcomp BeginDraw(). Bug: angleproject:2997 Change-Id: I9298ccf55cbb2d04c3b8f78e12f9d07dc8fa54b5 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2210967 Commit-Queue: Sunny Sachanandani <sunnyps@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Ian Elliott 29fedbac 2020-05-20T09:52:15 Vulkan: Create a pre-rotation test for 400x300 windows This test reproduces the cause of the failures with the following dEQP tests: dEQP.GLES31/functional_texture_multisample_samples_*_sample_position This CL also fixes a problem with the previous test, and puts the common rendering/ReadPixels code in a common method. Bug: b/156395519 Change-Id: Id38476b6caf6f25c52f7504187fb500a39109438 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2207550 Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com> Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Ian Elliott <ianelliott@google.com>
Ian Elliott 08e0df62 2020-05-08T19:32:05 Vulkan: Create a test to debug Android pre-rotation This test has been helpful because of its simple, very-predictable color pattern. The red component corresponds to the x-axis, and green to the y-axis. Red and green values will increment by 1, from 0 to 255/0xFF, as it goes further away from the lower-left corner. Bug: angleproject:4436 Bug: angleproject:4431 Bug: b/150329975 Bug: b/150329969 Change-Id: I76ac866d36036257810f77adf9b4e28bcdcc28d0 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2185747 Commit-Queue: Ian Elliott <ianelliott@google.com> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Patrick To a2ec926c 2020-01-02T19:07:38 Specify LUID in D3D11 Add an extension to provide the ability to specify the LUID of the GPU adapter to use when using D3D11. Corresponding chromium CL: https://chromium-review.googlesource.com/c/chromium/src/+/2096778 Bug: chromium:792657 Change-Id: Iefebea221a4b7a20f150b445ae1adf375444726d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2096663 Commit-Queue: Rafael Cintron <rafael.cintron@microsoft.com> Reviewed-by: Zhenyao Mo <zmo@chromium.org>
Jamie Madill 930b2641 2020-03-23T14:47:03 Allow tests to run on native EGL. Adds support for Linux and Android native EGL testing. This can be useful for doing performance comparisons of ANGLE vs a native GL driver. Only enabled for the trace perf tests due to limitations in the test harness. Bug: angleproject:4596 Change-Id: Iba6d3ccd7c1275cf095893fab824a0ea33dc3a79 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2116254 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Jeff Vigil e20f36f4 2020-04-21T15:45:44 EGL: Implement EGL_ANDROID_native_fence_sync on vulkan Check the following - 1. Vulkan ICD supports VK_KHR_external_fence_fd 2. ExternalFenceProperties and ExternalSemaphoreProperties support Android FD. eglCreateSync - if FD was provided import to VkFence, else create VkFence with new FD and then flush and submit VkFence on next vkQueueSubmit. eglGetSyncAttrib - for status call vkGetFenceStatus. eglDupNativeFenceFdANDROID - return FD from vkGetFenceFD call. eglClientWaitSync - call vkWaitForFences. eglWaitSync - dup FD, create VkSemaphore and import FD, then flush() and add VkSemaphore to next vkQueueSubmit as a waiting semaphore. Extended end2end test suite with nativefence test cases. Bug: angleproject:2517 Test: angle_end2end_tests --gtest_filter=EGLSyncTest.AndroidNativeFence_* Change-Id: I8f6a6f4c3d71d83007f662b78377aa015a740035 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2026177 Commit-Queue: Mohan Maiya <m.maiya@samsung.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Geoff Lang dd29370c 2020-04-01T10:42:47 Include the fragment output locations in the program cache key. If the user rebinds the output locations and relinks a program, the wrong program may be loaded from the cache. TEST=gl_tests: TranslatorVariants/EXTBlendFuncExtended* BUG=angleproject:4535 Change-Id: If9a9c2ad935ea4d01c3fe4313810d221e9c9ce38 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2131252 Commit-Queue: Geoff Lang <geofflang@chromium.org> Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
Yuly Novikov 7d8c2f2e 2020-03-26T22:44:15 Hide SwiftShader OS Window in dEQP and end2end tests This prevents a race between starting Xvfb on test bots and X11 calls in X11Window::setVisible(), which used to cause flaky hangs on Linux SwANGLE bots. Unfortunately, in order to hide SwiftShader OS window, it must be a separate window from other backends, so it is no longer possible to have a single window for all backends, even if we don't reuse EGL Display. The only platform that still uses a single OS Window is Android, since there is only one system window per test application. In addition, all the tests that make OS Window visible explicitly, no longer do this for SwiftShader device. Bug: angleproject:4434 Change-Id: I1a067c22bfeee9288046b9d9566740731c0d627c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2125945 Commit-Queue: Yuly Novikov <ynovikov@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Yuly Novikov 05fa1a99 2020-03-30T22:02:16 Skip test flaky on SwANGLE bots dEQP.EGL/functional_sharing_gles2_multithread_random_egl_server_sync_shaders_compile_9 EGLSurfaceTest.ResizeWindow AttributeLayoutMemoryIndexed.Test Bug: angleproject:4495, angleproject:4453, angleproject:4502 Change-Id: Iad5097412372acc8ac36c742445763451c8122ad Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2129181 Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Jamie Madill ed0e932c 2020-03-23T16:46:38 Supress test failing with new Intel driver. EGLDirectCompositionTest.RenderSolidColor/ES2_D3D11_NoFixture failing with the 26.20.100.7870 driver. Bug: chromium:1063962 Change-Id: I48ef5915c67e05cc86a568c28115dae26dc78db2 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2116871 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Yuly Novikov 6b462120 2020-03-20T19:23:17 Skip flaky SwANGLE end2end tests. AttributeLayoutNonIndexed.Test AttributeLayoutBufferIndexed.Test EGLSurfaceTest.ResizeWindowWithDraw Bug: angleproject:4453, angleproject:4502 Change-Id: I6dbd333e428d61d84bb17bf0c4112fa66cff9846 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2113711 Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Ian Elliott 6125419c 2020-03-04T10:31:26 Vulkan: Suppress some flaky tests for Intel Linux driver Bug: angleproject:4453 Change-Id: I55475f85298a593597daa300effa828a6b0ed342 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2087896 Commit-Queue: Ian Elliott <ianelliott@google.com> Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Jamie Madill e45fe217 2020-02-29T23:28:33 Fix up EGLSurfaceTest. * removes the SwapInterval test. This test was not really based on spec language. SwapInterval is highly os-dependent so likely a robust test would include some OS-specific logic instead of timing. * give the pbuffer surface non-zero dimensions. this fixes an uncaught error on Windows and may give better results. * lifts a couple Android suppression possibly related to the pbuffer bug. a couple tests still fail. Bug: angleproject:3123 Bug: angleproject:3162 Change-Id: I68e4e943b94d17777704bbe3b8ae7e646fc9c54d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2082131 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Jamie Madill 4fb29948 2020-02-12T13:48:43 Split up EGLContextCompatibilityTest. Instead of attempting to run numConfigs^2 test permutations in a single test we now split up each config into its own test. Each permutation also gets a unique name based on the configs it is testing. Because there were so many tests on some back-ends (e.g. D3D11) this CL adds a way to hard limit the number of test permutations by discarding random tests to reach a specified maximum per back-end. Uses the GoogleTest "RegisterTests" API instead of using the GTEST macros. See online GTest docs for more info. This will allow more easily supporting test timeouts when running batches of tests multi-process. As a side effect we no longer need to restrict this test to Release builds or ignore some renderers. Bug: angleproject:4449 Change-Id: Ia7991e2a3906175413b77a876432061da527d03b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2050812 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Jamie Madill 49a68f18 2020-03-01T08:12:53 Add RegisterContextCompatibilityTests stub. We'll call this function from the Chromium angle_end2end_tests main. First this CL needs to roll into Chrome. Then we can make a second CL in ANGLE to change the way the EGLContextCompatibilityTests are set up. This is to break up the slow tests into smaller pieces. See the issue for more details. Bug: angleproject:4449 Change-Id: Icc10679c61fd2f7a5e396f7a310ffcfd0b45893b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2082133 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Xinyi He 4864413b 2020-02-17T15:34:33 Vulkan: Implement eglWaitNative function Implement eglWaitNative API. It will call XSync() on XCB and do nothing on other systems. Bug: angleproject:4281 Change-Id: I597b75124a380df519ab10af3cab9b6e26f3194f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2059620 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jamie Madill 25097b6c 2020-02-19T08:07:23 Vulkan: Lift failing test suppression. EGLContextSharingTest.DeleteReaderOfSharedTexture/ES2_Vulkan Passes with the new command graph linearization. Bug: angleproject:4130 Change-Id: Ic7233696d2c06303ddf46947610b793a1a9e8a65 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2063041 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Tim Van Patten 1a8b7758 2020-02-11T10:34:00 Fix assignment of CacheOpResult::EnumCount The special enum value 'EnumCount' is used by EnumSize() to determine how large to make the PackedEnumMap::mPrivateData array. However, that enum entry was being assigned an incorrect value, leading to the array being constructed too small and causing a crash in PackedEnumMap's std::initializer_list constructor when it went beyond the size of the array to assign each of the necessary values. The fix is to remove the assignment of CacheOpResult::EnumCount and let it indicate the real number of entries in the enum. Bug: angleproject:4393 Test: end2end Change-Id: If9635c61e72aadc6527d416f83be18add8b24572 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2050026 Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jamie Madill cd8167fb 2020-02-10T14:17:09 Vulkan: Fix EGLBlobCacheTest. Several runs of the same test in a row would cause a failure if the cache would get hit. Fix the flakiness by resetting the cache between runs. Also cleans up some of the variable naming and adds a stream output for pretty test errors. Fixed while working on the standalone test harness. Bug: angleproject:3162 Change-Id: I64da8a37eedf562860e3e5409cbf6fb08e81dfa4 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2047417 Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jonah Ryan-Davis 806ba566 2019-12-12T13:02:01 Extend ANGLE_iosurface_client_buffer to Vulkan backend for Swangle Implement an IOSurface-backed pBuffer surface for the Vulkan backend on Mac, through SwANGLE. ANGLE will pass a raw pointer to Swiftshader and handle locking/unlocking the IOSurface. Bug: chromium:1015454 Change-Id: Ia3ead55334736003d405b54ba8dcc7701706fbb2 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1965434 Commit-Queue: Jonah Ryan-Davis <jonahr@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tibor Dusnoki 4546c5ce 2020-01-31T15:05:35 Skip failing end2end tests on Windows on ARM There are multiple failing tests on Windows on ARM which are related to drawing differences. They seem to be similar to an already reported issue (anglebug.com/3748). Bug: angleproject:4356 Bug: angleproject:4357 Change-Id: Ide5cc2e6f42d4c4b6fb88352833d20e517005c14 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2033067 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Michael Spang f63fbcd5 2020-01-29T16:13:56 Fuchsia: Limit number of concurrent presents in ScenicWindow The test suite occasionally runs into the following error: [02036.794449][326733][326738][klog] INFO: [ERROR:src/ui/scenic/lib/scenic/session.cc(412)] Scenic session error (session_id: 1): Present2() called with no more present calls allowed. Terminating session. This is actually a problem with the test harness as resetting the window triggers a present with no fences and no OnFramePresentedCallback which means there is no way to know if we will exceed the limit. Add an OnFramePresentedCallback and count presents to stay under the limit. This blocks if there's more than 2 in flight presents. A dedicated async loop is used to avoid re-entering other code while waiting to present (there is no such case in the ANGLE test suite currently, but better safe than sorry). Typically if we run the whole suite there will be a failure in the middle, but re-trying the test that failed won't repro the issue. Add a test that reliably exhausts the limit by calling resetNativeWindow() in a loop. Bug: angleproject:4360 Change-Id: I24eb01fd72fc0be57c36e49b5875023a80d6ab91 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2027934 Commit-Queue: Michael Spang <spang@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Mohan Maiya df0203a9 2020-01-15T14:05:33 EGL: Add support for EGL_EXT_pixel_format_float extension Add support for floating point configs. On backends that support rendering to floating point formats, add them to EGL's frambuffer config list Bug: angleproject:3958 Tests: dEQP-EGL.functional.wide_color.*fp16* angle_end2end_tests --gtest_filter=EGLFloatSurfaceTest* Change-Id: Ie65f63013483267985c2b308567bf5025acf750e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1993686 Commit-Queue: Mohan Maiya <m.maiya@samsung.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
jchen10 b09d46cc 2020-01-13T10:56:46 Add P010 stream test Makes sure P010 stream can work correctly. Bug: chromium:1033416 Change-Id: I1b49568cd667697337335a0eca74504bd0e36f5c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1996912 Reviewed-by: Jie A Chen <jie.a.chen@intel.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jeff Vigil 8c0bbfbb 2019-11-25T14:48:11 EGL: Implement EGL_ANDROID_framebuffer_target Add attribute to configs. Add attribute matching logic. Does not set attribute in Vulkan configs, need solution to query Android for which formats are valid. anglebug.com/4208 New end2end test. Bug: angleproject:3961 Test: angle_end2end_tests --gtest_filter=EGLAndroidFramebufferTargetTest* Change-Id: I7e14c47b39e9539f6181c3c1d75c76fe63ca0f8c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1960508 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com> Commit-Queue: Mohan Maiya <m.maiya@samsung.com>
Xinyi He 36ab960e 2019-12-04T14:13:05 Vulkan: Resize the result vector in EGLChooseConfigTest end2end test Resize the defaultConfigs vector to its actual size to avoid using nullptr elements to get attributes. BUG=angleproject:4195 Change-Id: I3cbad9ee8c2c9faeaa30f72a04cf2c071f79db19 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1949985 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Shahbaz Youssefi 745999a9 2019-11-19T12:59:02 Add test for multithreaded shared-context resource The test does this: 1. Context 1: Read Texture 1 and draw into Framebuffer 1 2. Context 2: Read Texture 1 and draw into Framebuffer 2 3. Context 1: Delete Framebuffer 1 4. Context 1: Flush 5. Context 2: Modify Texture 1 Issue is Texture 1's mCurrentReadingNodes contains one node from each context's command graph, one of which is deleted at step 4. At step 5, a dependency is added from both nodes (one already deleted) to a new node, causing use-after-free. Bug: angleproject:4130 Change-Id: I06720aec20d0b49114937f1cd9b193a4f1df9d8d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1924790 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Jonah Ryan-Davis 2a72553d 2019-11-25T14:22:50 Add EGLSurfaceTest.ResizeWindowWithDraw This test will ensure the backbuffer is also properly resized when the window is resized. Bug: angleproject:4167 Change-Id: I1d73f07379b4f05e453520e22ef1369f51182197 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1934311 Commit-Queue: Jonah Ryan-Davis <jonahr@google.com> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Le Hoang Quyen b6148c3a 2019-11-21T10:13:44 Metal: re-enable end2end tests Bug: angleproject:4157 Change-Id: Ia7e29c32696c84556e9ea527fc48b086b1bc4766 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1940007 Commit-Queue: Geoff Lang <geofflang@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Brandon Schade b8e748be 2019-11-07T18:00:50 Vulkan: Add an end2end test to log GLES capabilities Logs information listed at: https://opengles.gpuinfo.org/listcapabilities.php in CSV format The list from gpuinfo doesn't include capabilities introduced by extensions Test: angle_end2end_tests.exe --gtest_filter=*PrintGLESCapabilities* Bug: angleproject:4093 Change-Id: I59c82879ee2e3486269aa0cb40e2ee6c6e646ec5 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1917443 Commit-Queue: Mohan Maiya <m.maiya@samsung.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Courtney Goeltzenleuchter 8392b118 2019-11-20T16:57:08 Revert "Metal: Enable end2end tests." This reverts commit 0bb42e091b77f174632434a05789b2ce632bd902. Reason for revert: https://bugs.chromium.org/p/chromium/issues/detail?id=1026633 Causing failures on Mac bots. Original change's description: > Metal: Enable end2end tests. > > Explicitly disabled tests: > - DifferentStencilMasksTest.DrawWithDifferentMask > - PointSpritesTest.PointSizeAboveMaxIsClamped > - WebGL2ReadOutsideFramebufferTest.CopyTexSubImage3D > > Bug: angleproject:2634 > Change-Id: I76ab450c06d0e1be1e7469a8b9c6497684c3ca54 > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1906607 > Commit-Queue: Jamie Madill <jmadill@chromium.org> > Reviewed-by: Jamie Madill <jmadill@chromium.org> > Reviewed-by: Geoff Lang <geofflang@chromium.org> TBR=geofflang@chromium.org,jonahr@google.com,jmadill@chromium.org,le.hoang.q@gmail.com Change-Id: Iaa4264834170a49c274f186d3d74f57714c84b32 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: angleproject:2634 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1926378 Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com> Commit-Queue: Courtney Goeltzenleuchter <courtneygo@google.com>
Le Hoang Quyen 0bb42e09 2019-11-19T23:04:00 Metal: Enable end2end tests. Explicitly disabled tests: - DifferentStencilMasksTest.DrawWithDifferentMask - PointSpritesTest.PointSizeAboveMaxIsClamped - WebGL2ReadOutsideFramebufferTest.CopyTexSubImage3D Bug: angleproject:2634 Change-Id: I76ab450c06d0e1be1e7469a8b9c6497684c3ca54 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1906607 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tobin Ehlis 1a01b4b3 2019-11-11T16:41:07 Refactor end2end test macros This is a foundational CL to enabling the end2end tests on swiftshader. Refactored infrastructure with new ANGLE_INSTANTIATE_TEST_ES* macros that will run tests over all various combinations of all platforms for different ES versions. Just skipping failing tests initially to get the refactor landed. Bug: angleproject:4081 Bug: angleproject:4092 Change-Id: I017f6c3267179e49b6ae08cc7488096b423dcdb5 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1904635 Commit-Queue: Tobin Ehlis <tobine@google.com> Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
Courtney Goeltzenleuchter 0e5d019e 2019-11-08T08:43:21 Vulkan: Enable 3.0 as default context version Now that 3.0 support is passing dEQP, always return that as the context version to use (unless app asks for 1.0). Test: angle_end2end --gtest_filter=EGLBackwardsCompatibleContextTest.BackwardsCompatibleEnabledES3/* Bug: angleproject:3750 Change-Id: I0402ac015acfc22e84a985fe75346999bcc47188 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1906202 Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Tobin Ehlis <tobine@google.com> Commit-Queue: Courtney Goeltzenleuchter <courtneygo@google.com>
Jeff Vigil 28b0c453 2019-10-11T15:22:02 New end2end test to print EGL information Print out EGL vendor, version, clients, clent extensions, display extensions Print GL vendor, version, renderer, shader, extensions Prints each EGL config ID and its attributes Just Vulkan based information. D3D and GL can be enabled. Bug: angleproject:4039 Test: angle_end2end_tests --gtest_filter=EGLPrintEGLinfoTest* Change-Id: I103a22eacb2eb14547d7908f93eeeca5434c5e66 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1879492 Commit-Queue: Jeff Vigil <j.vigil@samsung.com> Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill 1efcbdb6 2019-10-22T12:32:04 Vulkan: Fix sampler object lifetime. Using the same scheme as we do for VkImageViews we can track VkSampler lifetime using SharedResourceUse. This fixes the race condition that could occur when samplers are deleted in one Context while being used in another. This fixes the last known resource lifetime issue. The multithreading tests should now pass without validation errors. Also adds regression tests to angle_end2end_tests. Bug: angleproject:2464 Change-Id: I9dbed5062a0863b240ddf1a9b5d28560334934de Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1869548 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Ian Elliott <ianelliott@google.com> Reviewed-by: Tim Van Patten <timvp@google.com>
Kenneth Russell 8e7d9d6c 2019-10-04T18:19:32 Add EGL_ANGLE_device_cgl extension. Supports querying the CGLContextObj and CGLPixelFormatObj associated with ANGLE's underlying OpenGL context on macOS. Minor refactorings to implementation of device attribute queries on all platforms. Bug: angleproject:3973 Change-Id: I24341668be4cbfed0b7f2df4c1402df1effe275e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1846733 Commit-Queue: Kenneth Russell <kbr@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Jonah Ryan-Davis 7dd03446 2019-09-30T13:50:12 Ensure Features* descriptions stay up to date Created a macro to help keep Features' descriptions up to date. This will avoid confusion in the future when conditions change. Also update all descriptions to match current state. Bug: angleproject:3947 Change-Id: Ifc65e7789c916fab79f1323798dfb59d7a4efad2 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1829584 Commit-Queue: Jonah Ryan-Davis <jonahr@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill 57b37b6b 2019-09-25T18:29:28 Rename util/system_utils to util/test_utils. This removes a GN naming conflict between util/system_utils and common/system_utils. This conflict was preventing us from adding unit tests to utils' version of system_utils. Since these functions are only useful to tests and samples rename them test_utils for simplicity. Will enable further development of ANGLE's standalone testing harness. Bug: angleproject:3162 Change-Id: I9e34fb69f96c5de6dc2453fce4148a0f285e15ed Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1825268 Reviewed-by: Jonah Ryan-Davis <jonahr@google.com> Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jeff Vigil a7003d5f 2019-07-19T11:43:34 Reland "EGL: Implement EGL_KHR_no_config_context" Add extension string and flag to all renderers that pass Modify eglCreateContext to accept EGL_NO_CONFIG Modify eglQueryContext per specification Modify eglMakeCurrent to bypass surface-context config compatibility checks Add check for client API Create new end2end test EGLNoConfigContextTest Disable on most renderers to prevent possible fail with future configs Bug: angleproject:3635 Test: dEQP-EGL.functional.create_context.no_config* angle_end2end_tests --gtest_filter=EGLNoConfigContextTest* Change-Id: I88c1922a1e75afcc49922a9eccb4f1ae046c024a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1806140 Commit-Queue: Mohan Maiya <m.maiya@samsung.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Zhenyao Mo d32dae1b 2019-09-13T22:06:56 Revert "EGL: Implement EGL_KHR_no_config_context" This reverts commit c4b1fbd69b12c0af30a58d0810f88d1301b8dabd. Reason for revert: https://crbug.com/1003971 Original change's description: > EGL: Implement EGL_KHR_no_config_context > > Add extension string and flag to all renderers that pass > Modify eglCreateContext to accept EGL_NO_CONFIG > Modify eglQueryContext per specification > Modify eglMakeCurrent to bypass surface-context config compatibility checks > Add check for client API > Create new end2end test EGLNoConfigContextTest > Disable on most renderers to prevent possible fail with future configs > > Bug: angleproject:3635 > Test: dEQP-EGL.functional.create_context.no_config* > angle_end2end_tests --gtest_filter=EGLNoConfigContextTest* > Change-Id: I7fbb137f1222ae7eebff4192013b7d3c5fcf0436 > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1762709 > Commit-Queue: Mohan Maiya <m.maiya@samsung.com> > Reviewed-by: Geoff Lang <geofflang@chromium.org> TBR=geofflang@chromium.org,timvp@google.com,jmadill@chromium.org,m.maiya@samsung.com,j.vigil@samsung.com Change-Id: I849aa796803e3cda9b480a39be813ef9105325bb No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: angleproject:3635 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1803789 Reviewed-by: Zhenyao Mo <zmo@chromium.org> Commit-Queue: Zhenyao Mo <zmo@chromium.org>
Jeff Vigil c4b1fbd6 2019-07-19T11:43:34 EGL: Implement EGL_KHR_no_config_context Add extension string and flag to all renderers that pass Modify eglCreateContext to accept EGL_NO_CONFIG Modify eglQueryContext per specification Modify eglMakeCurrent to bypass surface-context config compatibility checks Add check for client API Create new end2end test EGLNoConfigContextTest Disable on most renderers to prevent possible fail with future configs Bug: angleproject:3635 Test: dEQP-EGL.functional.create_context.no_config* angle_end2end_tests --gtest_filter=EGLNoConfigContextTest* Change-Id: I7fbb137f1222ae7eebff4192013b7d3c5fcf0436 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1762709 Commit-Queue: Mohan Maiya <m.maiya@samsung.com> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Shahbaz Youssefi f0dd087e 2019-08-23T15:45:34 Move timer functionality from util/ to common/ The main timer functionality (get absolute time) is moved to common/ for use in ANGLE itself (in upcoming overlay change). util/Timer.h is no longer an abstract class and uses this functionality to implement the timer. Bug: angleproject:3757 Change-Id: I3fe418778d80d1089c9bfe43a9e8098e43236f18 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1769061 Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Tim Van Patten 56ba54cc 2019-08-08T13:03:34 Support separate read and draw surfaces in eglMakeCurrent Update ANGLE's default framebuffer implementation to support reading and writing to different surfaces within the same framebuffer. Bug: angleproject:2620 Test: EGLSurfaceTest[3] Change-Id: I4b1ea04ca87a751f80cf190bf3adec148fc4fce3 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1744746 Commit-Queue: Tim Van Patten <timvp@google.com> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Jeff Vigil 265fdf0c 2019-07-31T15:10:44 EGL: Set errors per spec for eglCreateContext Per spec, in eglCreateContext when client version attributes are invalid - set EGL_BAD_ATTRIBUTE. Set EGL_BAD_MATCH when config is not compatible. Rename config variables in ValidateCompatibleConfigs to distinguish context from surface configs. Context config handled differently when EGL_NO_CONFIG. Bug: angleproject:3755 Test: angle_end2end_tests --gtest_filter=EGLCreateContextAttribsTest* Change-Id: Iaea57653cf643ff60c8d4eabd3f022306bf1f4ca Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1747298 Reviewed-by: Mohan Maiya <m.maiya@samsung.com> Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Mohan Maiya <m.maiya@samsung.com>
Jamie Madill 188b679b 2019-08-15T09:02:43 Remove GL/EGL function pointers from tests. The auto-gen loader code should be able to handle all these cases. Bug: angleproject:3393 Change-Id: If0a90fb29d79f2892fdf76fe0cb91ed0036ee1e3 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1756083 Commit-Queue: Courtney Goeltzenleuchter <courtneygo@google.com> Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
Stuart Morgan 9d737966 2019-08-14T12:25:12 Standardize copyright notices to project style For all "ANGLE Project" copyrights, standardize to the format specified by the style guide. Changes: - "Copyright (c)" and "Copyright(c)" changed to just "Copyright". - Removed the second half of date ranges ("Y1Y1-Y2Y2"->"Y1Y1"). - Fixed a small number of files that had no copyright date using the initial commit year from the version control history. - Fixed one instance of copyright being "The ANGLE Project" rather than "The ANGLE Project Authors" These changes are applied both to the copyright of source file, and where applicable to copyright statements that are generated by templates. BUG=angleproject:3811 Change-Id: I973dd65e4ef9deeba232d5be74c768256a0eb2e5 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1754397 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Shahbaz Youssefi 4bb50faa 2019-08-14T11:23:57 Suppress flaky SwapInterval test Bug: angleproject:3807 Change-Id: If44223e39a30a93358392b22b98beaa31ef220d7 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1753587 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Geoff Lang b3eeb2a4 2019-08-05T17:02:43 Emulate RGB textures using BGRX IOSurfaces. When the user requests an IOSurface Pbuffer with an RGB format, emulate the missing alpha channel by clearing it to 1.0 and masking reads and writes in shaders. BUG=angleproject:3766 Change-Id: I58c992bf641d9ece0f923603f32640615150e4f3 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1737437 Commit-Queue: Geoff Lang <geofflang@chromium.org> Reviewed-by: Kenneth Russell <kbr@chromium.org>
Tim Van Patten 35f02850 2019-07-23T17:20:25 Vulkan: Reduce getMaxConformantESVersion() to 2.0 We are currently returning a 3.0 context for Vulkan backends (issue 3425). However, we aren't quite 3.0 conformant yet, so this bug will drop that back down to 2.0 in getMaxConformantESVersion(). Bug: angleproject:3734 Test: dEQP Change-Id: I2c5a6ee0ddb3bd52fdc92fdc9b12cf3c6d8e0510 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1716244 Commit-Queue: Tim Van Patten <timvp@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Geoff Lang 610f2388 2019-07-18T16:28:49 Return backwards compatible context versions in Vulkan, GL and D3D11. This allows us to pass some dEQP GLES 2.0 tests that require using an ES 3.0 context and matches native driver behaviour of returning a higher-than- requested context version when it's backwards compatible. BUG=angleproject:3425 BUG=angleproject:3300 BUG=angleproject:3715 BUG=angleproject:3243 BUG=angleproject:3240 BUG=angleproject:3716 Change-Id: I03dfd56deb6191c3363808717e0eea6fdcf5f3ac Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1709111 Commit-Queue: Geoff Lang <geofflang@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com>
Geoff Lang 6a02f06d 2019-07-18T16:27:14 Implement EGL_ANGLE_create_context_backwards_compatible This extension allows the user to specify if ANGLE should create a context of the exact requested version or a higher version context that is backwards compatible. BUG=angleproject:3425 Change-Id: I7d0b75cdd7e34a2fc888aa238e1eeb67af82ae0d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1601560 Commit-Queue: Geoff Lang <geofflang@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Jiacheng Lu a1754dc8 2019-06-26T13:36:43 Vulkan: Recycle vkFence This CL introduces a Recycler to reuse unreferenced vk::Fence, reducing CPU time spent on vk::Fence init&destroy. Save around 15% of CPU time for most glmark2 tests. Bug: angleproject:3556 Change-Id: Ice5054305321c466c5be3bc368d04091f074729c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1679239 Commit-Queue: Tobin Ehlis <tobine@google.com> Reviewed-by: Tobin Ehlis <tobine@google.com>
Kenneth Russell cbdf8616 2019-07-09T20:30:45 Support blitFramebuffer to and from IOSurface-backed textures. Extend validation to allow texture rectangle-backed textures as blitFramebuffer sources and destinations. Add end-to-end test covering this functionality, and run the IOSurfaceClientBufferTests against both ES2 and ES3. Bug: angleproject:3669 Change-Id: I7b8815a2c98072c12de45717afbba9e9b29ba253 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1694483 Commit-Queue: Kenneth Russell <kbr@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Yuly Novikov c26b7914 2019-07-04T16:52:21 Skip EGLSurfaceTest.SwapInterval on Linux NVIDIA Vulkan. Flaky hangs on Ubuntu 19.04 Bug: angleproject:3618 Change-Id: Iab85c94e90aec0f7b15fe0fbc14ae1a8d0734d48 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1689270 Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Jonah Ryan-Davis 35c847eb 2019-07-03T15:28:52 Skip EGLFeatureControlTest.InvalidDisplay on all Win/Intel Was skipped only on Vulkan, but it hangs on other backends too, like D3D11. Bug: angleproject:3629 Change-Id: I3a812d86e1765507fb03a58c6d10c6a48edc0f2f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1687124 Reviewed-by: Jonah Ryan-Davis <jonahr@google.com> Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
Jonah Ryan-Davis cb335463 2019-07-02T12:56:16 Skip EGLFeatureControlTest.InvalidDisplay on Win/Intel/Vulkan This tests has flaky timeouts on the Win10 Intel HD Graphics 630 bot. I can't reproduce them locally with Intel 530, so I'm going to skip the test since it's testing unrelated behavior. Bug: angleprojec:3629 Change-Id: I124d318a870a067f8d100275f9ab5f0a0d053bd4 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1682362 Commit-Queue: Jonah Ryan-Davis <jonahr@google.com> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Jiacheng Lu f116aa9c 2019-06-17T15:08:11 Vulkan: detect swapchain recreation passively Currently ANGLE vulkan query current window size every frame to detect whether a swapchain recreation is needed, however profiling shows some bottle neck on window size query on X11. So here removing the per frame window size query and only depend the result of vkAcquireImage and VkQueuePresent to detect a need for swapchain recreation. Bug: angleproject:3535 Change-Id: I4ddf70b973d78dfcd5f8fab28e29e802edad1b2d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1662759 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Ian Elliott <ianelliott@google.com> Commit-Queue: Ian Elliott <ianelliott@google.com>
Jonah Ryan-Davis fce1e2d1 2019-06-04T15:02:08 Extend eglGetPlatformDisplay to allow feature overrides. Add EGL_FEATURE_OVERRIDES_ENABLED_ANGLE and EGL_FEATURE_OVERRIDES_DISABLED_ANGLE to submit lists of strings naming the features that should be overridden (either enabled or disabled) on display creation. Bug: angleproject:1621 Change-Id: I4bb75c5dbab0e3b701a72069c38f8c60ecfffad2 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1646595 Commit-Queue: Jonah Ryan-Davis <jonahr@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>