src/tests


Log

Author Commit Date CI Message
Gregg Tavares fca9de6f 2021-09-29T14:59:06 Fix Metal backend not clearing stencil buffer If you had a depthstencil buffer the stencil portion was not being cleared. Bug: angleproject:6389 Change-Id: Iad3f12ae627bc12625d959f9a52fdb1dcb8c9bc3 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3198800 Commit-Queue: Gregg Tavares <gman@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Kyle Piddington <kpiddington@apple.com>
Shahbaz Youssefi 32d6e806 2021-09-24T23:50:54 Vulkan: Fix rotation of interpolateAtOffset interpolateAtOffset's offset was multiplied by flipXY*rotationMatrix, which is a vector. This was unable to actually apply rotation to the offset. The multiplier is changed to a matrix. Can be tested by running interpolate_at_offset*default_framebuffer tests in deqp gles3.1 together with pre-rotation: ./angle_deqp_gles31_tests --deqp-case=dEQP.GLES31/functional_shaders_multisample_interpolation_interpolate_at_offset_no_qualifiers_default_framebuffer --emulated-pre-rotation=90 Bug: angleproject:5843 Change-Id: I9727371375e999f07463b69153df3fd8b28c2a71 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3183108 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Ian Elliott <ianelliott@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Kenneth Russell da3db87e 2021-07-06T14:00:58 Upstream latest changes to Metal backend from Apple to 7/1/2021 This CL merges in the ANGLE changes between these two WebKit commits: https://git.webkit.org/?p=WebKit.git;a=commit;h=8648b353ab1d7730438c2e08319e1a4d64982c31 https://git.webkit.org/?p=WebKit.git;a=commit;h=166e4924a52971d6a32ad48247a439b16c00e062 Include provoking vertex buffer out of bounds fix from https://bugs.webkit.org/show_bug.cgi?id=230107 Fix bad merge of resetting of dirty bits, breaking DepthStencilFormatsTest.DepthTextureRender test and perhaps others. Disable GL_APPLE_clip_distance when the direct-to-Metal compiler is active. It can not yet handle the gl_ClipDistance array. Disable use of rectangular textures for IOSurfaces. Metal can bind IOSurfaces to 2D textures, and this was passing all tests in the SPIR-V Metal backend. Introducing rectangular textures breaks the SPIR-V Metal backend, and the tests currently fail on the direct-to-Metal backend. Fix several bugs with ProvokingVertex, which was causing both the SpirV and Direct backends to incorrectly draw indices. (https://bugs.webkit.org/show_bug.cgi?id=230107) Skip the following tests on the Metal backend which is still failing RobustResourceInitTestES3.BlitDepthStencilAfterClearBuffer GLSLTest_ES3.GLVertexIDIntegerTextureDrawArrays/ES3_Metal With these changes, angle_end2end_tests again runs to completion. Bug: angleproject:6395 Change-Id: I3cc58f531426a95fc8f177a4ad87f56c1855a546 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3167010 Reviewed-by: Jonah Ryan-Davis <jonahr@google.com> Reviewed-by: Kenneth Russell <kbr@chromium.org> Commit-Queue: Kyle Piddington <kpiddington@apple.com>
Shahbaz Youssefi 2a8be9de 2021-10-01T01:26:19 Vulkan: OES_shader_multisample_interpolation is now conformant This extension was not conformant due to an imprecision in the GL spec which is now rectified. See: https://gitlab.khronos.org/opengl/API/-/issues/149 The OpenGL CTS has been fixed here: https://gerrit.khronos.org/c/vk-gl-cts/+/7862 Bug: angleproject:6190 Change-Id: I0c37332939f70291a5f76ca36fa9f24b179ce414 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3197513 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Shahbaz Youssefi a097ee2e 2021-09-27T15:18:02 Vulkan: Fix clearing external images with emulated format External images may already have data, and clearing them due to their format being emulated is incorrect. This change makes sure that only the emulated channels are cleared. The RGBXDataPreservedAHB test is based on one contributed by Jason Macnak <natsu@google.com>. Bug: b/192315789 Change-Id: Ibc8953fdac356f2a62a5b46512a51e1916b4a1b6 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3193416 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com>
Jamie Madill 0004ecc2 2021-09-22T13:39:55 Write GL info to test artifact in end2end_tests. These will show up as glinfo.json in the "cas outputs" of the shard that runs these tests. We currently have information for Pixel 4, NVIDIA and Intel Win/Linux, and SwiftShader Windows. GLES 1.x extensions are treated separately. Some WebGL/Mac-only/D3D-only extensions show as unsupported anywhere. In order to capture artifacts on Android, we use a render test output parameter. Bug: angleproject:6379 Change-Id: I560b219b5a586cdbb68d272090f38eedc76aba20 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3176780 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Ian Elliott <ianelliott@google.com> Reviewed-by: Tim Van Patten <timvp@google.com> Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Jamie Madill 3d429f59 2021-09-27T14:27:31 VertexArray: Don't syncState on Buffer map/unmap. Map/unmap calls are now treated like contents change events. Similar to BufferSubData calls. Bug: angleproject:6371 Change-Id: Ie0a4c521ffdedfa723d47eddd21c6f68dde044ac Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3187811 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com>
Jamie Madill cf8c5678 2021-09-17T13:16:36 Vulkan: Don't sync VAOs after BufferSubData calls. We still need to syncState after buffers that contain converted attributes are updated. Includes a perf regression test. Bug: angleproject:6371 Change-Id: I54227fc43e7b3fe79072da7783dab0177ccb0486 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3182706 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Jamie Madill b930b9d3 2021-09-08T09:08:28 Capture/Replay: Remove redundant "capture" from label old: trex_200_capture_context1_frame001.cpp new: trex_200_context1_frame001.cpp The 'capture' word wasn't really adding any useful information. Take it out so the filenames are a bit shorter. Bug: angleproject:5133 Change-Id: Ibd7d47df2aa1f24a641c5d5b2a6dd14d6ce240e1 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3149370 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Shahbaz Youssefi a78310ee 2021-09-29T12:37:42 Clean up ImageTest.cpp Removed manual gen/delete calls and replaced GLuints with RAII types. Bug: b/192315789 Change-Id: Ic2e7f3fcc3cefe83917d3b8dcc4ec2979c732b21 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3193415 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Ian Elliott <ianelliott@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Gregg Tavares 85de22fd 2021-09-29T13:27:42 Set the viewport missing from a few tests A few places seem like they should be setting the viewport. Bascially any place that creates a framebuffer that's different size than the backbuffer (defined as kWidth, kHeight) should probably be setting the viewport. Bug: angleproject:6394 Change-Id: Iee64f6700e3f93c236ab46d3d5debd47c49d2fa0 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3195054 Commit-Queue: Gregg Tavares <gman@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Alexis Hetu 4647e4c5 2021-09-27T17:03:05 SwANGLE copy to IOSurface This CL performs a buffer to image copy on bindTexImage and an image to buffer copy on a releaseTexImage on MacOS in order to copy from/to an IOSurface which has an arbitrary internal layout. It also changes the internal format used by GL_BGRX8_ANGLEX to GL_RGBX8_ANGLEX in order to have an internal format which accurately represents the {GL_RGB, GL_UNSIGNED_BYTE} format with the color channels in the correct order. Bug: chromium:1209250 Bug: angleproject:4369 Change-Id: I62b66c7055f8ba8a4c943abeb2e35a3825efc392 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3169472 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Jonah Ryan-Davis <jonahr@google.com> Commit-Queue: Alexis Hétu <sugoi@chromium.org>
Brandon Schade 84bf49a5 2021-09-27T15:20:22 Vulkan: Fixed an issue with primitives generated query The primitives generated query does not work with rasterizer discard, as such rasterizer discard is disabled with the beginQuery call and re-enabled with the endQuery call. The issue is that previously rasterizer discard was not being disabled until ContextVk::resumeRenderPassQueriesIfActive in some cases. This led to cases where primitives generated query did not work. The fix is to insure all beginQuery calls disable rasterizer discard when primitives generated query is active. Added the following end2end test to cover the failure: TransformFeedbackTestES32.MultiPrimitivesGeneratedVsRasterizerDiscard Bug: angleproject:5557 Tests: KHR-GLES32.core.tessellation_shader.tessellation_invariance.invariance_rule* Change-Id: I7e1a0a0bc4a3100349c2c5dbdbe6becd1e0dda29 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3193100 Commit-Queue: Brandon Schade <b.schade@samsung.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Jamie Madill 30878d2a 2021-09-24T09:23:56 Buffer: Notify contents changed in a separate observer list. Buffer contents changed will only notify VertexArray. Also this list is separated from the other observers because in the future most of the time we won't need to notify the VertexArrays when buffer contents changed, to avoid iterating over a large list of VertexArray observers on simple SubData calls. Bug: angleproject:6371 Change-Id: I6142a5757868caf33dc6594a1975f817f80553e8 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3182701 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com>
Gregg Tavares 696f8533 2021-09-28T15:21:51 fix GLSLTest_ES3.GLVertexIDIntegerTextureDrawArrays The test was using a gl_PointSize of 1000.0 but GL_POINTS are only required to support a max size of 1.0 Bug: angleproject:6463 Change-Id: I8a44607085583cbc7cef06f21b118121cc1fef24 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3192177 Reviewed-by: Kenneth Russell <kbr@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Gregg Tavares <gman@chromium.org>
Gregg Tavares 394dc64d 2021-09-27T14:07:32 Change this expectation to skip on AMD only This appears to be an AMD only issue Bug: angleproject:6387 Change-Id: I596341ed3d4b655312abfaa8b8e768fea742074b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3192173 Reviewed-by: Kenneth Russell <kbr@chromium.org> Commit-Queue: Gregg Tavares <gman@chromium.org>
Ian Elliott dff5c752 2021-09-28T11:27:06 Suppress VVL error: *InterfaceTypeMismatch Suppress VVL error: UNASSIGNED-CoreValidation-Shader-InterfaceTypeMismatch Bug: angleproject:6442 Change-Id: I1d5412a1be7cba0b3571225d3f3d94c72349742f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3191390 Reviewed-by: Ian Elliott <ianelliott@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Ian Elliott <ianelliott@google.com>
angle-autoroll 8f8ca06d 2021-09-06T10:01:37 Roll vulkan-deps from b1e5bf7dd9c3 to 788a2f62acbe (13 revisions) https://chromium.googlesource.com/vulkan-deps.git/+log/b1e5bf7dd9c3..788a2f62acbe Changed dependencies: * spirv-cross: https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Cross.git/+log/51d8e7be94..c2500e504d * spirv-tools: https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools.git/+log/789de0dc4b..7e860e3831 * vulkan-loader: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Loader.git/+log/ee4d7bb1bf..20cf221e72 * vulkan-tools: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Tools.git/+log/cf9d49e461..642da192c8 * vulkan-validation-layers: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-ValidationLayers.git/+log/2fdf7a587b..1e6ed74d5d If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/vulkan-deps-angle-autoroll Please CC timvp@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:6442 Tbr: ianelliott@google.com Change-Id: Id6bcd349462f7c0a61fcb3ccf831e5238334382d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3188612 Reviewed-by: Ian Elliott <ianelliott@google.com> Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Ian Elliott <ianelliott@google.com>
angle-autoroll 5b699b4b 2021-09-20T15:14:42 Roll VK-GL-CTS from 7103920041db to 8e89717bf4ed (52 revisions) https://chromium.googlesource.com/external/github.com/KhronosGroup/VK-GL-CTS.git/+log/7103920041db..8e89717bf4ed 2021-09-20 gleese@broadcom.com Add missing checking of integer dot product features 2021-09-20 gleese@broadcom.com Don't silently drop features that were requested 2021-09-20 gleese@broadcom.com Update checking of VulkanFeatures structs 2021-09-17 quic_mnetsch@quicinc.com Merge vk-gl-cts/opengl-es-cts-3.2.7 into vk-gl-cts/master 2021-09-17 mikko.tiusanen@siru.fi Tests for OpenGL ES 3.1 and 3.2 compressed formats 2021-09-17 siglesias@igalia.com dEQP-VK.subgroups.*ray_tracing* missing extension check 2021-09-17 ari.suonpaa@siru.fi Re-enable protected memory tests 2021-09-17 rgarcia@igalia.com Depth/Stencil descriptor tests 2021-09-17 piotr.byszewski@mobica.com Test multiview with different depth ranges 2021-09-17 quic_mnetsch@quicinc.com Merge vk-gl-cts/vulkan-cts-1.2.7 into vk-gl-cts/master 2021-09-16 root@qnegfx2.qualcomm.com Merge vk-gl-cts/vulkan-cts-1.2.7 into vk-gl-cts/master 2021-09-14 piotr.byszewski@mobica.com Test blitting from ASTC formats 2021-09-14 gleese@broadcom.com Fix workgroup memory tests for int16s 2021-09-14 ari.suonpaa@siru.fi Check support for EGL 1.5 or higher when using GLES3 2021-09-14 gleese@broadcom.com Accept NaN as valid in atan2 precision tests 2021-09-10 peter.kohaut@arm.com Update Vulkan headers 2021-09-08 mika.vainola@siru.fi Fix Clang -Wcomma warnings 2021-09-08 mika.vainola@siru.fi Fix qpReleaseInfo generation with non-ASCII paths 2021-09-08 ari.suonpaa@siru.fi Add tests for VK_EXT_load_store_op_none 2021-09-07 peter.kohaut@gmail.com Merge branch 'vulkan-cts-1.2.7' 2021-09-07 stuart.brady@arm.com Add tests for VK_KHR_shader_integer_dot_product 2021-09-03 peter.kohaut@arm.com Merge branch 'vulkan-cts-1.2.7' 2021-09-03 mika.vainola@siru.fi Remove unreachable breaks 2021-09-03 antto.makinen@siru.fi Add a batch of GraphicsFuzz coverage tests 2021-09-03 mika.vainola@siru.fi Fix GLES3 Clang UBSan errors 2021-09-02 antto.makinen@siru.fi Add a batch of GraphicsFuzz coverage tests 2021-09-02 juha.heiskanen@siru.fi Add test for finding unknown memory property flag sets 2021-09-02 mika.vainola@siru.fi Fix loop over cube map faces in GL4 2021-09-02 lionel.g.landwerlin@intel.com Fix fragment shading rate validation layer warning 2021-09-02 jari.komppa@siru.fi Add run mode that verifies amber requirements 2021-09-02 mika.vainola@siru.fi Remove extra semicolons 2021-08-30 gleese@broadcom.com Fix warning in gcc-8 2021-08-28 juha.heiskanen@siru.fi Enable Vulkan matrix determinant and inverse precision tests 2021-08-26 jasuarez@igalia.com Do not overflow when copy data 2021-08-26 Neslisah.Torosdagli@amd.com Issue in serial storage address computation 2021-08-26 antto.makinen@siru.fi Add coverage for sampling a cubemap that has been rendered to 2021-08-20 galazin@protonmail.com Merge vk-gl-cts/vulkan-cts-1.2.7 into vk-gl-cts/master 2021-08-20 venni.ihanakangas@siru.fi Check support in synchronization operation tests 2021-08-20 slawomir.cygan@intel.com Read stencil aspect from image in DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL layout 2021-08-20 ilkka.saarelainen@siru.fi Optimize image clearing tests 2021-08-20 venni.ihanakangas@siru.fi Ensure that destroying old swapchain has no effect 2021-08-20 marcin.zajac@mobica.com Conservative rasterization with SampleMask 2021-08-19 galazin@protonmail.com Update Vulkan headers 2021-08-19 italonicola@collabora.com Implement getProcAddress for surfaceless platform 2021-08-19 tapani.palli@intel.com Fix for the various multisample tests with GL 4.5 2021-08-19 tapani.palli@intel.com Fix to multisample texture test shaders with GL 4.5 2021-08-19 tapani.palli@intel.com Fix for the common function tests with GL 4.5 2021-08-13 alexander.galazin@arm.com Remove shaders.arrays from the Khronos mustpass 2021-08-13 ilkka.saarelainen@siru.fi Fix Android system memory requirements 2021-08-13 piotr.byszewski@mobica.com Test multiViewport with different depth ranges 2021-08-13 piotr.byszewski@mobica.com Test OpImageQueryLod when fwidth(UV) == 0 2021-08-13 alexander.galazin@arm.com Merge vk-gl-cts/github-master into vk-gl-cts/master 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 geofflang@google.com,angle-bots+autoroll-info@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:6441 Change-Id: Ifc95da798a2d6de0a794cef59ea61fb6a353f21d Tbr: geofflang@google.com,angle-bots+autoroll-info@google.com Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3188073 Reviewed-by: Ian Elliott <ianelliott@google.com> Commit-Queue: Ian Elliott <ianelliott@google.com>
Shahbaz Youssefi bc8fe7dd 2021-09-24T22:50:32 Translator: Fix removing inactive output vs SH_INIT_OUTPUT_VARIABLES The code that SH_INIT_OUTPUT_VARIABLES adds for inactive outputs is also removed with this change. Bug: chromium:1253016 Change-Id: I3caeb628487354de943f7b53f7462f58baa3eca8 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3183107 Reviewed-by: Tim Van Patten <timvp@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Jamie Madill 93911990 2021-09-24T12:14:33 Add regression test for PBO write to vertex buffer. There was no test coverage for the "packBuffer->onDataChanged()" call in Framebuffer::readPixels. Bug: angleproject:6371 Change-Id: Ib7ccf965a2375077046e21949dc26dc800abff09 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3182700 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Gert Wollny 55690b1c 2021-09-20T17:06:31 Capture/Replay: Updated expectations: one fixed, one skip Bug: angleproject:6324 Bug: angleproject:6180 Change-Id: I8537e684e63c2000bb877b585f9d8e9be42546f5 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3169657 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Gert Wollny <gert.wollny@collabora.com>
Gert Wollny 29c01d51 2021-09-20T20:49:29 Capture/Replay: Write the context serialization file correctly This is what was done before we switched to not changing the working directory, and what is expected by the test script. In addition, the captured contexts were also written to the wrong files, i.e. the replay context to the CapturedContext file, and the captured context to file ReplayedContext file, so fix that too. Bug: angleproject:6412 Change-Id: I81906e3f64b2caf0002ca6a28cfce2a3d552fc8f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3171354 Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Gert Wollny <gert.wollny@collabora.com>
Lubosz Sarnecki 9994110b 2021-09-09T15:29:13 Tests: Add Nier Reincarnation trace. Requires EGL_KHR_gl_colorspace and GL_KHR_texture_compression_astc_ldr. Test: angle_perftests --gtest_filter="*nier_reincarnation*" Bug: angleproject:6366 Change-Id: Ibb71520762cf9c0a17047324557e70215754bbbb Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3151818 Commit-Queue: Lubosz Sarnecki <lubosz.sarnecki@collabora.com> Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Lubosz Sarnecki e024635d 2021-09-10T13:56:28 ANGLEPerfTest: Skip tests when missing color space support. Make tests where a non-linear colorspace was requested on platforms that do not support EGL_KHR_gl_colorspace non-fatal. Add a initializeGLWithResult function to GLWindowBase, returning a new GLWindowResult enum and wrap it in EGLWindow and WGLWindow. Bug: angleproject:6366 Change-Id: Ib57327c4d988d82064272f229f8ad59287541623 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3151833 Commit-Queue: Lubosz Sarnecki <lubosz.sarnecki@collabora.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Shahbaz Youssefi eb1d5ca5 2021-01-29T15:34:49 Vulkan: Enable sync validation Based on a change by tobine@google.com Bug: angleproject:5290 Change-Id: Ieae1be5a29f0dcb3ea8aaa04e77fc402380a08b1 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3171432 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Charlie Lao <cclao@google.com>
Gregg Tavares d71dc819 2021-09-22T16:01:06 Fixes for RowMajor test failures row_major matrices get translated to column major matrices and the expressions rewritten. To do this temporary variables that contain the column and row index expressions are moved to separte statements before the matrix expression itself. When this happens it breaks side effects and short circuits in the expression. The solution is to call SeparateCompoundExpressions before calling RewriteRowMajorMatrices. Bug: angleproject:6386 Change-Id: I4d819ade959e2a875495f62733e11d86560d3fab Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3177337 Reviewed-by: Kenneth Russell <kbr@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Gregg Tavares <gman@chromium.org>
Peter Kasting 4f2b2995 2021-09-23T09:50:46 Fix -Wshadow. This still disables the warning for glmark2 instead of fixing it, to avoid needing to upstream a patch. Bug: chromium:794619 Change-Id: Ice602996041d6090c9b09ee81c8ed095c4fa6b2e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3179860 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Shahbaz Youssefi e1a9af6a 2021-09-20T10:42:03 Translator: Fix HLSL vs for loop's init not having initializer The handleExcessiveLoop code expected that if a for loop has an init expression that it must necessarily have an initializer as well. That is not true in (fuzzer-produced) code such as following: for (int i; ...; ...) Bug: chromium:1238182 Change-Id: Id761e937a34a6b2feac1266e22207350a3bd616c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3170114 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com>
Jamie Madill 3e234e24 2021-09-17T11:45:01 PerfTests: Updates to several tests. Bug: angleproject:6371 Change-Id: If71c79fd363f7463098b571550af6ceb0634c00d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3176440 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Tim Van Patten 92f1eb7b 2021-09-22T16:57:01 Skip Linux+AMD ComputeShaderTest test failures The following tests are failing on Linux w/ RX 5500 XT: ComputeShaderTest.ImageBufferMapWrite/ES3_1_OpenGL ComputeShaderTest.BufferImageBufferMapWrite/ES3_1_OpenGL These tests were added as part of: 3146319: Vulkan: Add ResourceWrite to track Read and Write Access https://chromium-review.googlesource.com/c/angle/angle/+/3146319 They are being suppressed since it's only the OpenGL backend that's failing this combination, and the ANGLE changes in the CL were only in the Vulkan backend. Bug: chromium:1252169 Test: ComputeShaderTest.ImageBufferMapWrite/ES3_1_OpenGL Test: ComputeShaderTest.BufferImageBufferMapWrite/ES3_1_OpenGL Change-Id: I607979979814327eda9f3823ae3c774b86e94c2f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3177071 Reviewed-by: Charlie Lao <cclao@google.com> Commit-Queue: Tim Van Patten <timvp@google.com>
Jamie Madill c3e0eafa 2021-09-22T13:35:04 Revert "Perf Tests: Split samples into sub-tests on desktop." This reverts commit 90c981dafc06d6bc0696749dface1337e37784d2. Reason for revert: Causing timeouts on perf bots. Original change's description: > Perf Tests: Split samples into sub-tests on desktop. > > This adds an option to the perf test runner to split each sample of > each test into a sub-test. The sub-tests then are split among the > shards like ordinary tests, and distributed across machines. The > intent is that running on different machines will reduce inter-build > variance because of differences between test machines. > > This sampling change is only added to desktop (Linux/Win) because > Android device variance seems to be lower. > > Bug: angleproject:6090 > Change-Id: I4046a012727baa8a0f2595de2349cc34257691f9 > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3152752 > Commit-Queue: Jamie Madill <jmadill@chromium.org> > Reviewed-by: Cody Northrop <cnorthrop@google.com> > Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Bug: angleproject:6090 Change-Id: I92bffb98999f35274ec31a3b7567d87453feff94 No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3174274 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Tim Van Patten 68c0da83 2021-09-15T12:00:08 Vulkan: Inform frontend when new buffer is allocated When a buffer is mapped with GL_MAP_INVALIDATE_BUFFER_BIT while it's currently in use, the Vulkan backend will allocate a new buffer, map it, and return the pointer to the new buffer. This was missing a call to inform the frontend that a new buffer was allocated, causing the old buffer data to be accessed in subsequent draw calls. The fix is to add a onStateChange(angle::SubjectMessage::SubjectGhosted) call when the new buffer is allocated, to inform the frontend. Bug: angleproject:5971 Bug: angleproject:6396 Test: TextureBufferTestES31.MapTextureBufferInvalidateThenWrite Change-Id: I9984d1049ab4d6a2066f4440fc710c9b93ff6ab8 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3163244 Commit-Queue: Tim Van Patten <timvp@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Charlie Lao <cclao@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Tim Van Patten 9158436e 2021-07-31T18:26:16 Vulkan: glMapBuffer(): Create new buffer (Buffer Ghosting) When glMapBuffer() is called, if the buffer is in use but not being written to by the GPU: 1.) Create a new buffer. 2.) Copy the contents of the old buffer into the new buffer. 3.) Map the new buffer and return the pointer. Creating a new buffer prevents ending the renderpass and flushing the commands to allow the in-use buffer to be mapped. This change increases Idle Heroes performance from 40FPS to 125FPS. Bug: angleproject:5971 Test: VulkanPerformanceCounterTest.MappingGpuReadOnlyBufferGhostsBuffer Test: BufferDataTest.MapWriteArrayBufferDataDrawQuad Test: BufferDataTest.MapWriteArrayBufferDataDrawArrays Change-Id: I1d433d179f9f5110a948f191c5aedda5397acac8 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3065799 Commit-Queue: Tim Van Patten <timvp@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Charlie Lao <cclao@google.com>
Tim Van Patten 57d59e83 2021-09-07T17:41:11 Vulkan: Add ResourceWrite to track Read and Write Access vk::Resource currently only tracks accesses in general, not which type of access is being performed. This CL adds the new class ResourceWrite to track whether the access is a Read or Read/Write access and when the access completes. This allows a follow-on CL to know when a buffer is being written to by the GPU or if the GPU is only reading from a buffer. Tracking write accesses to buffers is required when attempting to "Ghost" (duplicate) GPU-read-only buffers to prevent breaking the render pass when the CPU maps the buffer memory. Bug: angleproject:5971 Test: ComputeShaderTest.ImageBufferMapWrite Change-Id: I965e3e75730719ccce77334744ae4feae33c6101 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3146319 Commit-Queue: Tim Van Patten <timvp@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Charlie Lao <cclao@google.com>
Kyle Piddington 7dd2361b 2021-09-17T15:43:22 Metal: ANGLE Metal AutoObjCPtr == nullptr comparison is inverted Port the fix from Webkit for this inverted comparsion Unify the nullptr type throughout all functions Bug: angleproject:6351 Change-Id: Id856af31c9eea5cc79993c3454e452d1c14d0d0e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3169436 Commit-Queue: Kenneth Russell <kbr@chromium.org> Reviewed-by: Kenneth Russell <kbr@chromium.org> Reviewed-by: Le Hoang Quyen <le.hoang.q@gmail.com> Reviewed-by: Gregg Tavares <gman@chromium.org>
Kyle Piddington f6616c71 2021-09-14T17:42:22 Reimplement transform feedback on direct-to-Metal backend Connect the Transform Feedback code generation from Webkit ANGLE to the shader specialization code. Bug: angleproject:6393 Change-Id: I090c44c6ee97e8e0af8c38433bfb74c2080784f9 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3161455 Reviewed-by: Kenneth Russell <kbr@chromium.org> Reviewed-by: Jonah Ryan-Davis <jonahr@google.com> Reviewed-by: Gregg Tavares <gman@chromium.org> Commit-Queue: Kenneth Russell <kbr@chromium.org>
Jamie Madill 3666f00f 2021-09-20T16:20:50 GN: Remove the "no GTest" dEQP targets. These were unused and removing them cleans up the VS projects. Bug: None Change-Id: I1e1787ad1ceac15ecc88d9338e65b3072496066d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3173251 Reviewed-by: Jonah Ryan-Davis <jonahr@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Kyle Piddington 59d31ea6 2021-09-17T17:43:13 Metal Direct: TinyDepthStencilWorkaroundTest.DepthTexturesStick Change code to rewrite attributes by searching for both the standard, and rewritten name. We will match with any vertex attribute variables that experienced a renaming during shader processing Bug: angleproject:6388 Change-Id: Ia6f5b87092990e9df42f1dbb87a8bf393ba50c4c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3169438 Reviewed-by: Kenneth Russell <kbr@chromium.org> Reviewed-by: Jonah Ryan-Davis <jonahr@google.com> Commit-Queue: Kenneth Russell <kbr@chromium.org>
Jamie Madill 90c981da 2021-09-10T11:04:19 Perf Tests: Split samples into sub-tests on desktop. This adds an option to the perf test runner to split each sample of each test into a sub-test. The sub-tests then are split among the shards like ordinary tests, and distributed across machines. The intent is that running on different machines will reduce inter-build variance because of differences between test machines. This sampling change is only added to desktop (Linux/Win) because Android device variance seems to be lower. Bug: angleproject:6090 Change-Id: I4046a012727baa8a0f2595de2349cc34257691f9 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3152752 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Jamie Madill 9184973f 2021-07-21T08:28:30 Add GetCompressedTexImageANGLE to ANGLE_get_image Includes front-end support for reading back compressed texture images. Back-end support is incomplete and will be implemented in a future CL. CL authored by cnorthrop@google.com. Bug: angleproject:6177 Change-Id: I1482b15e5ffec6120f09f51b2718cdbef07c93c8 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3163359 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Shahbaz Youssefi 46149c0e 2021-09-17T15:38:47 Translator: Fix pruning functions that declare a struct When pruning unused functions, the entire declaration of the function is removed. If the function declares a struct as part of its return value, the declaration of that struct was lost. This change makes sure that declaration survives the pruning. For example: struct S { vec4 v; } unused_func() { ... } is now replaced with: struct S { vec4 v; }; This change also makes struct usage validation more stringent. Bug: chromium:1248753 Change-Id: Idd9a87fd2e785135775cfea62995fd33adaf3c09 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3169691 Reviewed-by: Tim Van Patten <timvp@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Gert Wollny 1ae79810 2021-09-16T08:47:20 Capture/Replay: Update expectations and add bugs Bug: angleproject:6314 Bug: angleproject:6334 Bug: angleproject:6399 Bug: angleproject:6400 Change-Id: Ibf1e747080bcbf482e399db18c1f14e8af61fd26 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3162438 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Gert Wollny <gert.wollny@collabora.com>
Tim Van Patten c85d9a19 2021-09-07T11:41:10 Destroy all unreferenced Contexts resources during terminate() When eglTerminate() is called, all of the Contexts that the Display owns need to be destroyed if they are not referenced by (current to) any Threads. This also requires a change to Display::releaseContext(), to remove the recursive call to Display::terminate() that could occur when releasing the Contexts during terminate(). Bug: skia:12413 Test: EGLContextSharingTestNoFixture.EglTerminateMultipleTimes Change-Id: Ibd0a3e22725d29875c4089bdaae47c98e5084f35 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3144146 Commit-Queue: Tim Van Patten <timvp@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Jamie Madill 1af5c46c 2021-09-14T14:40:49 Move JsonSerializer from libANGLE to common. This lets us use the serializer from outside of libANGLE. The plan is to use it to serialize a list of supported extensions from the tests. Bug: angleproject:6379 Change-Id: Ib7b64cca32e733e342b80f893d3752318089f0c2 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3163361 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jamie Madill 23b16743 2021-09-14T10:29:14 Fix compilation when disabling D3D back-ends. Common code areas weren't compiling when disabling combinations of the D3D9 and D3D11 back-ends. With manual testing this fixes various combinations of angle_enable_d3d9/d3d11/gl. Bug: angleproject:5925 Change-Id: Ie14f2b4c6169cf96c662e7ae6999751007d9adb0 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3162836 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Jonah Ryan-Davis <jonahr@google.com> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Jonah Ryan-Davis 14539cab 2021-09-16T12:06:09 Suppress failing end2end tests on direct-to-metal/M1 Two tests from UniformBlockWithOneLargeArrayMemberTest fail when using the direct-to-metal backend. Suppress until this is fixed. This CL also adds parsing for the Mac M1 chips to our end2end test expectations. Bug: angleproject:5505 Bug: angleproject:6390 Change-Id: Ia578e4c582f1522eec9e1cb2c499e3e717b67c87 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3164820 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
Alexis Hetu 158ef351 2021-09-15T13:40:28 Fix integer overflow in BlockLayoutEncoder BlockLayoutEncoder::mCurrentOffset's computation had the possibility of causing integer overflows in multiple places, so this CL adds CheckedNumeric variables in a number of these occurrences in order to prevent integer overflows and causing issues. The issue in this case was an integer overflow causing the code in ValidateTypeSizeLimitations.cpp to use an invalid result from "layoutEncoder.getCurrentOffset()", which ended up compiling a shader which would later cause an OOM error. Bug: chromium:1248665 Change-Id: I688d669f21c6dc2957e43bdf91f8f8f08180a6f7 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3163356 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Kenneth Russell <kbr@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Alexis Hétu <sugoi@chromium.org>
Gert Wollny 2eba872a 2021-09-15T12:33:34 Capture/Replay: Run binary save/load tests only when supported Bug: angleproject:6325 Change-Id: Ibd4a62f93030cd01b30e8636e7663176a1763119 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3162436 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Gert Wollny <gert.wollny@collabora.com>
Gert Wollny 9121a79d 2021-09-14T11:57:32 Capture/Replay: Don't set CWD and pass path information instead With that we avoid complication when evaluating the module path that is used to load the test modules. Fixes: 2f3e4db838068584a0c15653cb07893683a55300 Capture/Replay: Serialize trace metadata to a JSON file. Bug: angleproject:6385 Change-Id: If4e348237d9b0e99e404f49b28dddba1ac50ef92 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3157907 Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Gert Wollny <gert.wollny@collabora.com>
Tim Van Patten c78ebccd 2021-09-09T16:47:26 Perf: Add _many_tex_draw test Add a new perf test _many_tex_draw, which draws with 8 textures bound. The intent of this test is to stress calls like retain() with various implementations of vk::Resource. Additionally, this CL updates the textures to use format GL_RGBA, rather than GL_RGB, to avoid the emulation step that's required due to the lack of support for the 3 channel format. Bug: angleproject:5971 Test: DrawCallPerfBenchmark.Run/*_many_tex_draw Change-Id: Iffb39b76fab68cc2a76dfd2da38db7e77cb4dac0 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3152171 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Charlie Lao <cclao@google.com> Commit-Queue: Tim Van Patten <timvp@google.com>
Gregg Tavares 0cea3fe2 2021-09-15T14:02:47 Suppress more flaky tests Bug: angleproject:5505 Change-Id: I6e77769b36a2cccb22f4048ff4fe47258e58d7c5 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3163493 Reviewed-by: Kenneth Russell <kbr@chromium.org> Commit-Queue: Gregg Tavares <gman@chromium.org>
Gregg Tavares 085ab6e8 2021-09-09T10:22:04 Turn on Direct Metal tests Bug: angleproject:5505 Change-Id: I8de95f28698785e5467dd82d04cbc7636d6df042 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3152156 Commit-Queue: Gregg Tavares <gman@chromium.org> Reviewed-by: Kenneth Russell <kbr@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Gert Wollny 54e89a1b 2021-09-02T16:48:42 Capture/Replay: handle param reading of glGetUniformuiv Enable the test that was fixed by this. Bug: angleproject:6108 Change-Id: I0bd46a85c2337e3c1a236954c8f131df12c499b5 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3140155 Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Gert Wollny <gert.wollny@collabora.com>
Cheryl Wei e10a4031 2021-09-08T15:57:00 Vulkan: Add a test to triger large VAO dirty bit handling. Some traces bind one VBO to a large number of VAOs,this will cause glBufferData spending a lot of time doing VAO dirty bit handling,which leads to high cpu load in these traces.This test could triger this issue. Bug: angleproject:6371 Change-Id: Iedc6630b497cb0f62ea0129aefc19c717c3ef905 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3147173 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Sunny Sun <sunny.sun@arm.com> Reviewed-by: Tim Van Patten <timvp@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Shahbaz Youssefi 371542cd 2021-08-23T23:10:09 Vulkan: Use VK_EXT_load_store_op_none With read-only depth/stencil attachments, ANGLE utilizes storeOp=NONE to optimize memory bandwidth (by avoiding write back of tile memory at the end of the render pass). Simultaneoulsy, this avoids a synchronization hazard with the next write to that depth/stencil image. If a framebuffer contains a depth/stencil attachment but it's unused, ANGLE utilizes loadOp=NONE/storeOp=NONE to effectively remove any memory bandwidth wasted on the attachment. Bug: angleproject:5371 Change-Id: I76cbadbf1194041532ac4b690ffe087298f2de51 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3114232 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Charlie Lao <cclao@google.com>
Hailin Zhang 66886228 2021-09-13T11:58:31 delete a wrong comment delete a wrong comment for test DrawElementsElementArrayBufferMapped Signed-off-by: Hailin Zhang <hailinzhang@google.com> Change-Id: Idc95b50f3fd2ca2da65b090a20f5fdc36605b8e6 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3158291 Reviewed-by: Cody Northrop <cnorthrop@google.com>
Hailin Zhang e1befb35 2021-09-09T15:53:32 fix a EXT_buffer_storage issue. According to spec, GL_MAP_PERSISTENT_BIT_EXT indicates that it is not an error for the GL to read data from or write data to an immutable buffer while it is mapped. Bug: b/188685164 Change-Id: I899a978dbf9c1d1ad3489063028fd5500c4bd5e1 Signed-off-by: Hailin Zhang <hailinzhang@google.com> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3151278 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Charlie Lao <cclao@google.com>
Jamie Madill 5650273a 2021-09-07T09:41:59 Capture/Replay: Capture trace file list to JSON. Instead of using a text file, we can use a JSON file to store the list of files in a trace. We can use this list in the GN to pull the trace files directly instead of using auto-generated code. It also consolidates the trace metadata in a single location. Also captures the Windows Surface ID to the JSON file. Bug: angleproject:5133 Change-Id: I236b614f7d0c844e7c4a5276dd6ac5964e5c393d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3144214 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Tim Van Patten <timvp@google.com>
Jamie Madill 7e8fa429 2021-09-08T11:56:45 Capture/Replay Tests: Script cleanups. Minor cleanup changes and removes some outdated parameters. Includes logging information about how much time the script spends running each child process. Bug: angleproject:6102 Bug: angleproject:6299 Change-Id: I0b4da535b858ced3cdc21c341c2c001ffe9c8192 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3149190 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Tim Van Patten <timvp@google.com>
Jamie Madill 247ee1c3 2021-09-10T09:38:25 Perf Tests: Output results in "msBestFitFormat" again. The histogram bins for "ms" would cause excessive rounding for tests that run very quickly. For example, 0.0012354 ms would be rounded to 0.001 ms. This would produce very flat graphs that don't accurately represent the real results. Bug: angleproject:6090 Change-Id: I9293b2083d7e54dc2663648c361f4883278806ec Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3152746 Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jamie Madill 0e021199 2021-09-08T12:31:47 Gold Tests: Append "show all results" to triage links. This should allow for easier triage when CL authors run into new images that don't match the goldens. Bug: skia:12428 Change-Id: I60fee615f23f5a1b36ddbe6c6708498fb3def46e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3149571 Reviewed-by: Brian Sheedy <bsheedy@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Yuly Novikov 10d6e9b0 2021-09-09T20:39:50 Suppress dEQP GLES3 failures on Mac Intel UHD 630 Bug: angleproject:6376 Change-Id: I10338ca3ec35d301195a04fc15b2148c7b7a5f4a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3152858 Commit-Queue: Yuly Novikov <ynovikov@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Shahbaz Youssefi 13e9817b 2021-09-08T11:57:00 Translator: Fix assert in ScalarizeVecAndMatConstructorArgs This transformation assumed that precision can be derived for constants in every possible scenario, but that's not true. The fuzzer produced the following code: void main() { mat4 m; mat2(0, bvec3(m)); } In the above, the constant 0 legimitately has no precision. The assert was in a function that attempted to make a temporary out of the constant, which this commit changes to use the original constant as-is. Bug: chromium:1246781 Change-Id: I6f247264e5213cfd9449fdfb1dc312d02b99f2f1 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3149191 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Jamie Madill ac78d723 2021-09-08T12:19:40 Capture/Replay Tests: Allow 3 concurrent ninja processes. This is an attempt to fix the flaky ninja error when running multiple processes while still getting pretty good test times. The previous fix eliminated the flakiness but doubled the test time. In local testing this is a bit slower but not 2x slower. Bug: angleproject:6299 Change-Id: Ibcd462712d3eab759c5923ca229e009046783e9b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3149570 Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Tim Van Patten <timvp@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jamie Madill 44ab7a14 2021-09-09T10:05:19 Capture/Replay: Mark one test as flaky. WebGLCompatibilityTest.DrawArraysBufferOutOfBoundsNonInstanced Bug: angleproject:6373 Change-Id: I0c26511b3ab0cc4938fd7b7242a6ac033b22df42 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3149377 Reviewed-by: Tim Van Patten <timvp@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Tim Van Patten 1a6fd9d0 2021-09-09T10:32:26 Capture/Replay: Remove debug logging The debug logging is flooding the terminal with the following: Frame 0: x 0 y 0 (screen x 64, screen y 133) Frame 1: x 1 y 0 (screen x 74, screen y 133) Frame 2: x 2 y 0 (screen x 84, screen y 133) Frame 3: x 3 y 0 (screen x 94, screen y 133) Frame 4: x 4 y 0 (screen x 104, screen y 133) Frame 5: x 5 y 0 (screen x 114, screen y 133) Frame 6: x 0 y 1 (screen x 64, screen y 166) Frame 7: x 1 y 1 (screen x 74, screen y 166) Frame 8: x 2 y 1 (screen x 84, screen y 166) Frame 9: x 3 y 1 (screen x 94, screen y 166) This drowns out all over log statements, so it's being removed. Bug: b/186881553 Change-Id: Ib2235a18b56b993f16e7532249c488403383bd65 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3152155 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Tim Van Patten <timvp@google.com>
Lubosz Sarnecki 3dded466 2021-09-09T15:28:07 Tests: Add Blockman Go trace. Test: angle_perftests --gtest_filter="*blockman_go*" Bug: angleproject:6365 Change-Id: I5f1008288ff1b4ec049e721fbdf72e80902fe8fc Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3151816 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Lubosz Sarnecki <lubosz.sarnecki@collabora.com>
Brandon Schade a33d902b 2021-08-16T12:01:53 Add Entry points for GL_EXT_EGL_image_storage Code generation for GL_EXT_EGL_image_storage Bug: angleproject:6346 Change-Id: Ib918619205bfe7bd8fba0748ff6db593c858151f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3133763 Commit-Queue: Brandon Schade <b.schade@samsung.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Charlie Lao 8ea87a67 2021-08-17T18:46:36 Vulkan: Avoid texture format fallback when possible Some texture formats are not renderable on some hardware. For example, R4G4B4A4 are not renderable on nvidia and not blendable on ARM. R5G5B5A1 are also not blendable on nvidia. Right now when we generate format table, we are being most conservative, picking an actual format that is always renderable and blendable. This means when R4G4B4A4 is used on one of these GPUs, we are always falling back to R8G8B8A8 regardless if the texture is actually being used as color attachment or not. This CL adds a actualRenderableImageFormatID field in vk::Format. Initially we will pick actualImageFormatID which only ensures texture sample capability. If later on the texture is being attached to FBO, then we will switch to actualRenderableImageFormatID and do data copy if necessary. This way we save memory and reduce texture bandwidth for most usage of these textures. For renderBuffer and surfaces and EGLImages, we always pick the renderable textures. Bug: b/196456356 Change-Id: I02eec3365c2a317b0d1bad6dbdc3e741114c5bba Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3104514 Reviewed-by: Ian Elliott <ianelliott@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Charlie Lao <cclao@google.com>
Sunny Sachanandani 46555145 2021-09-02T14:55:02 d3d11: Allow binding R/RG texture to EGLImage Also allows GL_RED/RG/R16/RG16_EXT as well as GL_RGB10_A2_EXT which was left out previously by accidently to match Chromium behavior. Adapts the existing ClearTextureImage test to parameterize over a number of texture formats. Bug: angleproject:6369 Change-Id: I91110a06b08379a3067a2161e345258415cd5e16 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3140744 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Sunny Sachanandani <sunnyps@chromium.org>
Jamie Madill e1bc8de3 2021-09-08T07:59:37 Change links from 'master' to 'main' branch. Bug: chromium:1226949 Change-Id: Ie7b28b2fa094cf0c0a407968d681e580519cbb88 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3148210 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jamie Madill 5726158f 2021-09-08T13:31:40 Trace Tests: Fix test data path. A prior refactor was missing the path separator between the trace folders. This CL also makes the error more visible by forcing the test step to fail if there's a missing path. Previously it would print an error message but silently continue. Bug: angleproject:5133 Change-Id: I71e7c751662a08d6ff199f0f802310d0ef52ed5e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3149572 Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Tim Van Patten f1cbaac7 2021-09-08T10:21:40 Capture/Replay: Disable world_of_kings for Win+Intel The world_of_kings trace is flaky, particularly on Windows+Intel. In most instances (every?) it's off by 1: Left Pixel rgba(32, 105, 119, 255) #206977FF <<--- good Diff rgba(0, 0, 1, 0) Right Pixel rgba(32, 105, 118, 255) #206976FF <<--- bad Bug: angleproject:6372 Bug: b/198101940 Change-Id: I6be7138e050d63df3dd8a189882b64dadfe62740 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3149433 Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Tim Van Patten <timvp@google.com>
Jamie Madill 2f3e4db8 2021-09-02T10:31:13 Capture/Replay: Serialize trace metadata to a JSON file. This will allow us to remove more code auto-generation for the trace tests. The trace info now can be loaded directly from JSON instead of from the autogenerated information. Bug: angleproject:5133 Change-Id: I04e22b9279b19282df274bc8defcd363d0449111 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3140218 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Jamie Madill 9874be31 2021-09-02T10:25:21 Trace Tests: Load trace list from JSON file. Instead of using the auto-generated enum for the trace list, load directly from restricted_traces.json. This will lead to more CLs that entirely remove the auto-generated code from the trace tests. Bug: angleproject:5133 Change-Id: I6515624a2145319d097b43085741cf9c48f1792e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3140217 Reviewed-by: Tim Van Patten <timvp@google.com> Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Brandon Schade 5a7b8c61 2021-08-31T14:58:06 Vulkan: Removed size check when handling mismatched vertex attributes If locations are specified to be noncontiguous or out of order when there is a mismatch between the attribute type specified by glVertexAttribPointer and the shader, the program's attribute type from ProgramExecutable's getProgramInputs() method would fail. This is due to using attribIndex which refers to the attribute's location rather than the position in the vector returned from getProgramInputs(). This change removes the size check as it's not needed for GL_ANGLE_relaxed_vertex_attribute_type. Bug: angleproject:5762 Test: VertexAttributeTestES3.DrawWithMismatchedComponentCountLocationSpecified Change-Id: Ie15f2095e618e12403d1524273d1add74b00cdbd Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3137273 Reviewed-by: Tim Van Patten <timvp@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Brandon Schade <b.schade@samsung.com>
Brandon Schade d6afeadd 2021-08-30T14:44:59 Vulkan: Make descriptor set bindings consistent across shader stages Previously if a uniform or uniform block was used in a program's shader, a different descriptor set binding index would be used for each linked shader stage. Now, the bindings chosen for uniforms and blocks of the same name will be identical. This change also updates mActiveImagesMask in ProgramExecutable for separable programs. Bug: angleproject:4512 Tests: KHR-GLES3*.core.geometry_shader.api.max_image_uniforms ProgramPipelineTest31.MaxFragmentShaderStorageBufferObjects ProgramPipelineTest31.MaxFragmentUniformBufferObjects ProgramPipelineTest32.MaxGeometryImageUniforms GeometryShaderTestES32.MaxGeometryImageUniforms Change-Id: I3662d06b4dec284f4c51c6047e6b684b82925e3f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3068381 Commit-Queue: Brandon Schade <b.schade@samsung.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com>
Charlie Lao c5d11128 2021-09-02T18:18:02 Vulkan: Skip but keep incompatible updates. If texture has a level incompatibly specified, right now we are still oding the copy. This will trigger VVL and is incorrect. This CL skip the flush and keep it. Also Add various tests for 16 bit texture format in preparation for future CLs that may pick a more native format for 16 bit texture instead of always fallback to 32 bit. Test: VulkanFramebufferTest.R4G4B4A4TextureSampleOnlyActuallyUses444Format Bug: b/196456356 Change-Id: I9d53a97bb72208b52fb25e429abb49bbbc53c50c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3141030 Commit-Queue: Charlie Lao <cclao@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Jamie Madill c5a38976 2021-09-01T07:35:40 Capture/Replay: Add expression trigger validation calls. Setting the environment variable "ANGLE_CAPTURE_VALIDATION_EXPR" will make ANGLE's capture logic evaluate this expression every captured call to see if it should insert a validation checkpoint. The retracing script also accepts --validation-expr as an argument. For instance, the expression: ((frame == 2) && (call < 1189) && (call > 1100) && ((call % 5) == 0)) Will insert validation checkpoints on frame 2, between calls 1100 and 1189 and will validate every 5th call. The 'call' here is the count of captured calls, which are mostly GL calls with a few ANGLE replay calls in the mix. We add a small single-header library that can evaluate arthithmetic expressions in order to parse these expressions, as well as an option to the retracing script. Bug: angleproject:5133 Change-Id: Ic369e85d8e905a3a7a32fa098f7d8ebe7baf4ab9 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3136094 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Zequan Wu 178b8481 2021-09-03T23:30:52 Revert "Skip validation of stderr in TestSuiteTest.RunFlakyTests" This reverts commit 89dbbb2ac6875c92c99feb24353641142bbd49b1. Reason for revert: The test failure was gone in latest clang roll. Original change's description: > Skip validation of stderr in TestSuiteTest.RunFlakyTests > > There is a bug (crbug.com/1234124) causing the profile runtime to print > errors about failing to write the profraw file. Don't validate stderr in > these builds until that is fixed. > > Bug: chromium:1234124 > Change-Id: Ie1e3a3eaf7dc0e2c20064822f774cc85fe79d3bc > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3076479 > Reviewed-by: Jamie Madill <jmadill@chromium.org> > Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> > Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Bug: chromium:1234124 Change-Id: If33e92b533c99677d2b8f55de618ecf15e3f19d2 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3141973 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Jamie Madill 3ae1f336 2021-09-03T09:34:10 WebGL: Make unsuccessful links fail subsequent draw calls. This protects against incomplete state updates during a failed link call that can interfere with draw calls. Bug: angleproject:6358 Bug: chromium:1241123 Change-Id: Ie892654c3a58c69d6e35ba3c41758ab6269d8193 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3140496 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Gregg Tavares ab187c35 2021-09-02T14:46:29 Handle comparing arrays of scalars/vectors/matrices Fixes: UniformBlockWithOneLargeArrayMemberTest.MemberArrayOperations/ES3_Metal Bug: angleproject:5505 Change-Id: Ife35db2146ac8ce8c0880cdb98df57dc75cb35cb Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3140712 Commit-Queue: Gregg Tavares <gman@chromium.org> Reviewed-by: Kenneth Russell <kbr@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Gert Wollny b0dfd268 2021-09-02T10:53:57 Capture/Replay: Handle Gen/Delete ProgramPipelines Enable the test that failed compilation before. Bug: angleproject:6180 Change-Id: Id15a5b82c8ee5dab291090375d15ce93b8908535 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3139900 Commit-Queue: Gert Wollny <gert.wollny@collabora.com> Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Gert Wollny 066edc2b 2021-09-02T10:11:03 Capture/Replay: Handle glGetFragDataLocation Enable the test that is now passing Bug: angleproject:6180 Change-Id: I3aadc708ebf0b5d751af0a45713aaf4b72526188 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3139899 Commit-Queue: Gert Wollny <gert.wollny@collabora.com> Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Gert Wollny 349d555d 2021-09-02T10:07:26 Capture/Replay: handle glGetBooleani_v This also fixes a test. Bug: angleproject:6180 Change-Id: Icad2d089738f4458c90b87620337e9798adb9141 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3139898 Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Gert Wollny <gert.wollny@collabora.com>
Jamie Madill b6e99bb3 2021-09-02T13:47:34 Rename and expand shader variable init feature. This feature now forces both output and unitialized locals to be initialized by the shader translator. This feature is needed by the trace validator to ensure we get deterministic behaviour in traces that exhibit some undefined results. Bug: angleproject:5133 Change-Id: Id1242cd077a57e891eed217f7671976ce1631a58 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3140216 Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Tim Van Patten <timvp@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jamie Madill 9c05f55a 2021-07-15T10:58:10 Capture/Replay: Add replay state validation. We can use this to validate traces that have slight differences when retracing. The valdation works by embedding the "expected" JSON into a string at the end of each captured frame. The replay also embeds a callback which fires right before the swap in the replay harness. The harness then gets the "actual" JSON and runs a comparison. On a mismatch it calls "diff" externally. Currently the diff call is hard-coded to work on Linux only. Note that when running validation it's important to replay on SwiftShader since that's what we use to retrace. Bug: angleproject:5133 Change-Id: Icbf0031d07be8bd916607c537dec235f9a512c43 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3066008 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Tim Van Patten 8bb3c827 2021-07-22T19:06:40 Fix Multithreaded eglDestroyContext()/eglTerminate() The following EGL calls can lead to a crash in eglMakeCurrent(): Thread A: eglMakeCurrent(context A) Thread B: eglDestroyContext(context A) B: eglTerminate() <<--- this release context A Thread A: eglMakeCurrent(context B) The eglMakeCurrent(context B) call will assert when attempting to unMakeCurrent(), since thread A doesn't know that context A was already destroyed by thread B. To fix this: 1.) A Context will only be released once there are no Threads that currently have a reference to it (no longer have the Context current). - Context::mIsCurrent is being removed, since it was inaccurate and not thread-safe. For example, when eglTerminate() was called, the eglTerminate()'ing-Thread would "steal" the Context that was current on another Thread to destroy it. 2.) A Display will only be fully terminated and its resources released once all Contexts have been destroyed and are no longer current. Otherwise, Display::terminate() will return if any Contexts are still in use by a Thread. EGL 1.5 Specification 3.2 Initialization If contexts or surfaces, created with respect to dpy are current (see section 3.7.3) to any thread, then they are not actually destroyed while they remain current. If other resources created with respect to dpy are in use by any current context or surface, then they are also not destroyed until the corresponding context or surface is no longer current. With this fix, the app com.netmarble.sknightsmmo can start. This also exposed an issue with GlslangFinalize(), since glslang can only be initialized/finalized once per process. Otherwise, the following EGL commands will call GlslangFinalize() without ever being able to GlslangInitialize() again, leading to crashes since GlslangFinalize() cleans up glslang for the entire process. dpy1 = eglGetPlatformDisplay() | eglInitialize(dpy1) | GlslangInitialize() dpy2 = eglGetPlatformDisplay() | eglInitialize(dpy2) | GlslangInitialize() eglTerminate(dpy2) | GlslangFinalize() eglInitialize(dpy1) | isInitialized() == true Since Display::isInitialized() == true, the rest of Display::initialize() is skipped and GlslangInitialize() is not called. Later, the next test that attempts to compile a program will crash due to glslang no longer being initialized. Finally, this exposed the following tests leaking EGLContext handles: - EGLSurfaceTest::initializeContext() - EGLContextSharingTest.DisplayShareGroupContextCreation - EGLCreateContextAttribsTest.IMGContextPriorityExtension - EGLMultiContextTest.TestContextDestroySimple Other tests were failing to reset the context, preventing the Display from being terminated since there were still references to Contexts owned by the display: eglMakeCurrent(dpy, EGL_NO_SURFACE, EGL_NO_SURFACE, EGL_NO_CONTEXT); Bug: angleproject:6208 Bug: angleproject:6304 Bug: angleproject:6322 Test: EGLContextSharingTest.EglTerminateMultiThreaded Test: EGLContextSharingTestNoFixture.EglDestoryContextManyTimesSameContext Test: Load com.netmarble.sknightsmmo Change-Id: I160922af93db6cabe0ed396be77762fa8dfc7656 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3046961 Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Tim Van Patten <timvp@google.com>
Gert Wollny ea609fba 2021-08-30T10:43:29 Capture/Replay: Change workdir for debug runs and annotation Append "Debug" to the capture_replay_tests workdir if it wasn't overridden to avoid having to recompile everyithing when running with or without the --debug flag given. Also add annotation for test that only fail when run with the --debug flag. Bug: angleproject:6282 Change-Id: I7c5251d8a6b1a010f3c0950909db60feeb58c611 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3129360 Commit-Queue: Gert Wollny <gert.wollny@collabora.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Gert Wollny 3f4fc14f 2021-09-02T10:13:42 Capture/Replay: Update expectation for fixed test Bug: angleproject:6180 Change-Id: Ice84b0b104fe0e6b38e3830e9598f2c71efbc738 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3138511 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Gert Wollny <gert.wollny@collabora.com>
Gert Wollny 606de9b7 2021-09-01T12:22:08 Capture/Replay: Handle glInvalidateSubFramebuffer Enable tests that are fixed by this Bug: angleproject:6180 Change-Id: I1efa6c34babf729a22ff42fa0f2d745e75e3521f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3135316 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Gert Wollny <gert.wollny@collabora.com>
Shahbaz Youssefi 9d0e2851 2021-09-01T00:42:58 Fix SeparateDeclarations vs struct specifiers Bug: chromium:1237696 Change-Id: I3b00f3797800e814ca83226a8e4f25b2a43cc641 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3133824 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com>
Jamie Madill b8c50f39 2021-08-25T09:05:03 Support syncing traces to experimental CIPD prefix. This lets us test a retrace without first committing it to the immutable "angle" prefix. Bug: angleproject:5133 Change-Id: Ia52ccffe69faf099d6fc92eaf392610eefa549f1 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3118270 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Tim Van Patten <timvp@google.com>
Aditya Kushwah f015ae81 2021-08-02T12:47:32 Implement onLabelUpdate method. This change will implement the onLabelUpdate method by calling from every TextureStorage object. Instead of using setDebugName, introduced two new functions, setInternalName and setKHRDebugLabel, which will set the internal name and KHR label respectively that will further be sent to D3D string. Bug: chromium:1164111 Change-Id: I401ca9f6e8a2099a8807f0d7f321efe74269f9f0 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3067921 Reviewed-by: Rafael Cintron <rafael.cintron@microsoft.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Rafael Cintron <rafael.cintron@microsoft.com>
Jamie Madill 047e9833 2021-08-30T10:00:51 Traces: Move skia gold Python scripts. Moving this folder up one level allows us to enforce that every subdirectory in the restricted_traces folder is a trace folder. This makes it easier to batch delete or move traces. Bug: angleproject:5133 Change-Id: I5af24ce6c233f50dea2e6ffcaef6d489b03914c8 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3130441 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Tim Van Patten <timvp@google.com>
Gert Wollny 58f8c824 2021-09-01T12:36:31 Capture/Replay: Update expectation bugs, remove passing test Bug: angleproject:6334 Bug: angleproject:6180 Change-Id: I7ba4e7d19e394b43e59abbd7d5a89752b6098c10 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3136573 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Gert Wollny <gert.wollny@collabora.com>
Gert Wollny 8bb1df7d 2021-08-30T17:17:44 Capture/Replay: Clean up tests that pass and add new failures Bug: angleproject:6331 Bug: angleproject:6333 Bug: angleproject:6334 Bug: angleproject:6345 Change-Id: I9f6df69f50f6c8c21eaad09e476aac956c78517a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3129361 Commit-Queue: Gert Wollny <gert.wollny@collabora.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Tim Van Patten 6eeab192 2021-08-27T16:26:25 Vulkan: Don't defer clear for read render target We shouldn't collect deferred clears for the read render target because they get applied to the draw render target. This CL flushes stages updates to the read render target only if it's not the same as the draw render target. This can happen when the read render target is bound to another surface. Bug: b/192327017 Change-Id: I7c9e804f4eff10728aed7aeeaf41ef3869c9bdbd Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3125462 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Tim Van Patten <timvp@google.com>
Brandon Schade 10846073 2021-08-30T14:41:16 Allow image uniforms to be used in separable programs This change updates mActiveImagesMask in ProgramExecutable for separable programs. Previously image uniforms would only work in the first shader stage. Bug: angleproject:4512 Tests: ProgramPipelineTest31.ImageUniforms Change-Id: Ib35bed94bb8fac883fd67f8bfa052186926d0ce4 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3131582 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Brandon Schade <b.schade@samsung.com>