src/tests


Log

Author Commit Date CI Message
Shahbaz Youssefi 8074061d 2022-04-09T01:03:53 Remove feature override platform methods Instead, the tests now use the enable() functions to override the feature at platform level. This fixes the forceFallbackFormat feature mistakenly not having been tested. Bug: angleproject:6435 Change-Id: I605e4133407282bd52232887b595af0d2c13575d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3577369 Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Shahbaz Youssefi a0b5299b 2022-04-12T00:38:50 Vulkan: Fix resolve with subpass into smaller framebuffer The condition to optimize resolve with subpass did not take into account that the resolve area must match the render pass are, neither did it disallow flipping and rotation. Bug: angleproject:7196 Bug: chromium:1314383 Change-Id: I57e50da4d6e04dfebcce3c0a5061015e5ee8773b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3581055 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Yuxin Hu 6768aff7 2022-04-07T23:25:08 Fix Geometry Shader Conformance Test Failure on Pixel6 Add code in shader linker stage to check the number of AtomicCounterBuffers against these values: GL_MAX_VERTEX_ATOMIC_COUNTER_BUFFERS GL_MAX_FRAGMENT_ATOMIC_COUNTER_BUFFERS GL_MAX_COMPUTE_ATOMIC_COUNTER_BUFFERS GL_MAX_GEOMETRY_ATOMIC_COUNTER_BUFFERS_EXT GL_MAX_COMBINED_ATOMIC_COUNTER_BUFFERS GL_MAX_TESS_CONTROL_ATOMIC_COUNTER_BUFFERS GL_MAX_TESS_EVALUATION_ATOMIC_COUNTER_BUFFERS Bug: angleproject:6918 Change-Id: If1c1d0dc2452f5aafc72d81f4f5523608810bba9 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3576629 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Ian Elliott <ianelliott@google.com> Commit-Queue: Yuxin Hu <yuxinhu@google.com>
Sunny Sachanandani d4cbd9bf 2022-04-11T16:55:39 vulkan: Mark external memory textures as preinitialized Textures initialized from external memory objects should be considered preinitialized so that they're not cleared on first access with robust resource init. This is essential for Vulkan-GL (WebGPU-WebGL) interop on Linux where Skia or Dawn could be first used to render into a VkImage backed by an external memory object, and a GL texture is created lazily on first GL access. This CL also includes an end-to-end test for such interop, and changes to support that test: 1) Add writePixels() to VulkanHelper to upload pixels to a VkImage 2) Detect external memory / semaphore extensions when VulkanHelper is initialized from ANGLE. 3) Allow importing external memory object that's larger than VkImage size requirements. Bug: angleproject:7188 Change-Id: I60c250b64df1766a179edd1cc67c3f0765e8aa0f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3582954 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Sunny Sachanandani <sunnyps@chromium.org>
Yuly Novikov 291be0b7 2022-04-12T14:31:35 Suppress multisample_interpolation dEQP failures on Pixel 6 Vulkan 16 tests started failing after upgrading phones to Android 13 DP2 Bug: angleproject:6876 Change-Id: I9b965bf6a835cda7fad82c27110cdf38b88c6cb9 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3584386 Auto-Submit: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Antonio Caggiano 510351f2 2021-12-09T16:52:35 Vulkan: Support Wayland Implement DisplayVkWayland and WindowSurfaceVkWayland. Get window size from native window and check egl config is just empty. Then add an EGL wayland test for testing rendering and buffers swapping. Bug: angleproject:6902 Change-Id: I8204a5cc99f26330b74caba241bebf14c5650c2d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3395898 Reviewed-by: mohan maiya <m.maiya@samsung.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Auto-Submit: Antonio Caggiano <antonio.caggiano@collabora.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Shahbaz Youssefi aed5951e 2022-03-29T16:29:58 Reland "Vulkan: Fix texture-after-framebuffer sync issues" This is a reland of commit 535cd538f3585b44855647339f04bae1c1acf63a Original change's description: > Vulkan: Fix texture-after-framebuffer sync issues > > In TextureVk::syncState, for various reasons, the underlying image may > need to be respecified. For example because base/max level changed, > usage/create flags have changed, the format needs modification to become > renderable, generate mipmap is adding levels, etc. > > Currently, ANGLE syncs FramebufferVk before TextureVk for the sake of > the deferred clear optimization. This means that if the texture needs > to recreate its underlying image, it needs to do so earlier than its own > syncState, and do so in FramebufferVk::syncState through the > TextureVk::getAttachmentRenderTarget function. > > Over time, TextureVk::getAttachmentRenderTarget was modified to do parts > of what TextureVk::syncState did for this matter as bugs were > discovered, and more continue to be discovered. The bug that prompted > this change is missing image recreation when usage/create flags change. > > In this change, the relevant code in TextureVk::syncState is refactored > in a helper that's called by TextureVk::getAttachmentRenderTarget. This > way, the two functions should always be in agreement, avoiding > TextureVk::syncState recreating the image after > FramebufferVk::syncState, leading to use-after-free bugs. > > Bug: angleproject:4418 > Bug: angleproject:6909 > Bug: chromium:1266094 > Bug: chromium:1296866 > Change-Id: I856a34ca5cf573578c771f5adbeb9208420a3f62 > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3557817 > Reviewed-by: Jamie Madill <jmadill@chromium.org> > Reviewed-by: Charlie Lao <cclao@google.com> > Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Bug: angleproject:4418 Bug: angleproject:6909 Bug: chromium:1266094 Bug: chromium:1296866 Change-Id: I0110eab88eb9d8f77e204b84a6e90308e2384fd7 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3572715 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Yuxin Hu <yuxinhu@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Shahbaz Youssefi 797e627e 2022-04-08T22:49:51 Autogenerate list of features as enum The WithX() and WithNoX() helpers are removed and replaced with enable() and disable() member functions that take the name of the feature (as a Feature::X enum constant). This has two benefits: - Adding tests that override a feature no longer requires additional helper functions to be written. - There's no mistaking the feature name. This change doesn't yet fix the main issue in anglebug.com/6435, but does fix the following helpers using an old feature name (so they were ineffective): - WithMetalForcedBufferGPUStorage - WithNoVulkanViewportFlip A follow up would remove the old way of overriding features in tests and replaces them with the new way. Bug: angleproject:6435 Change-Id: Ida02b26ec72bc40d7a8938c76a93815bb903ca05 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3580982 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Jamie Madill 5c85fd4e 2022-04-11T12:29:00 Add error check on resuming XFB with deleted buffer. Bug: chromium:1305190 Change-Id: I22c6f6400b05ca32c922fba9a3b9d4b5841ca8b8 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3578378 Auto-Submit: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jonah Ryan-Davis a947c5f5 2022-04-11T14:19:08 Skip BlitFramebufferTest.ScissoredMultisampleStencil This test started flaking recently on Mac/NVIDIA. Suppress the failures for now. Also update existing suppression to be in the main test expectations file. Bug: angleproject:7191 Bug: angleproject:3496 Change-Id: I54c4def7382bee4784dcfe8ffdc3c51db1cc91d5 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3582638 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Stephen White 6803a2d0 2022-04-01T16:52:49 D3D11: implement SSBOs in pixel and vertex shaders. Since the 'u' register space for UAVs in pixel shaders is shared with render targets, and the number of render targets may vary depending on GL state, this required deferring register allocation until draw-time output in DynamicHLSL. Since non-compute shaders aren't able to immediately output the SSBO declaration, initial register allocation was broken out from ResourcesHLSL::shaderStorageBlocksHeader() into ResourcesHLSL::allocateShaderStorageBlockRegisters() with the former only called for compute shaders. These initial allocations are offset by the number of RTs at draw time. Since Raw UAVs may now be created at draw time for non-compute shaders, call markRawBufferUsage() from the Renderer11::draw*() entry points as it is from dispatchCompute*(). Bug: angleproject:7156 Change-Id: I6ab65af1ff36df0313e3c1f8f79661b1547ab9a2 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3565562 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Stephen White <senorblanco@chromium.org>
Geoff Lang c458b5ad 2022-04-01T11:38:17 Fix CheckedNumeric using the wrong type. Validation for glBufferSubData checks that the buffer is large enough for size+offset but verifies they fit in a size_t which is a different type than the deduced type for size+offset on 32-bit systems. Use decltype to ensure that we always verify there is no overflow on the correct type. Bug: chromium:1298867 Change-Id: I82f534b2d227d3273a763e626ebeae068dc918dc Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3563515 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Jonah Ryan-Davis <jonahr@google.com> Commit-Queue: Geoff Lang <geofflang@chromium.org>
Amirali Abdolrashidi 3cea7fcc 2022-03-16T16:33:43 Split Context ResourceUseList to RP Commandbuffers * Added mResourceUseList to each command buffer helper in an effort to move mResourceUseList away from ContextVk. * submitFrameImpl() renamed to submitCommands() * Moved the functions acquireResourceUseList() and onRenderPassFinished() in submitCommands() to the submitFrame functions calling it. Bug: angleproject:7103 Change-Id: I2487d5b86ea0a4d504f283aa7128501651317fe0 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3531368 Reviewed-by: Charlie Lao <cclao@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
Shahbaz Youssefi a16491d9 2022-04-05T16:47:32 Vulkan: Fix invalidation of non-existing aspects If the app uses a stencil-only attachment but invalidates depth, UNREACHABLE was hit. If the app uses a depth-only attachment but invalidates stencil, ANGLE was proceeding with an attempt to invalidate it (with no side effect). Bug: angleproject:7178 Change-Id: Idc177bdb66b2d0b3b3c2d36f5cadc7b9126a42c4 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3573383 Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Kimmo Kinnunen ba04fcfd 2022-03-11T13:58:52 Support ANGLE_PREFERRED_DEVICE on CGL Add the possibility to test both integrated and discrete GPU with ANGLE tests. Previously it was using only discrete. The binaries need the NSSupportsAutomaticGraphicsSwitching bundle property. This is needed to test ANGLE_power_preference. Changes the behavior of test apps: Previously, ./angle_end2end_tests would use discrete GPU. After, ./angle_end2end_tests or ANGLE_PREFERRED_DEVICE=intel ./angle_end2end_tests will use integrated GPU. ANGLE_PREFERRED_DEVICE=amd ./angle_end2end_tests will use discrete GPU. Bug: angleproject:7093 Change-Id: Ia64f6024e3215e69c2a1bde3ba4f67c3ca595476 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3516114 Reviewed-by: Kenneth Russell <kbr@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Jamie Madill 23558369 2022-04-06T15:41:59 Update perf tests arguments. Bug: angleproject:6776 Change-Id: I3cf51cdf9ad05dc792126354c84e717574638408 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3566219 Reviewed-by: Charlie Lao <cclao@google.com> Reviewed-by: Yuxin Hu <yuxinhu@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Yuly Novikov 7a9856f6 2022-04-05T19:25:26 Report durations of all flaky retries in JSON test output Bug: angleproject:7184 Change-Id: I19295daed7b13919a2b528a43ebe8d9cbac9d0a1 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3572713 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Cody Northrop a1c9ba70 2022-04-04T11:29:13 Update validation of glFramebufferTextureLayer for cube maps The ES 3.2 spec explicitly mentions cube map parameters for the call: For cube map textures, layer is translated into a cube map face as described in table 8.24. For cube map array textures, layer is translated into an array layer and a cube map face as described for layer-face numbers in section 8.5.3 but does not list it when enumerating errors: An INVALID_OPERATION error is generated if texture is non-zero and is not the name of a three-dimensional, two-dimensional array, two-dimensional multisample array or cube map array texture. There is a bug filed about this: https://gitlab.khronos.org/opengl/API/-/issues/134 Per discussion, it should not be an error to use a cube map with glFramebufferTextureLayer. It will be fixed in the spec. Test: DrawBuffersTestES3.CubeMapTextures Test: DrawBuffersTestES3.CubeMapArrayTextures Bug: angleproject:7168 Bug: angleproject:7169 Change-Id: I6ef9af4b2bf05dc2dee841c68fb4f896c30c8c03 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3569337 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Cody Northrop 152616ee 2022-04-04T19:34:53 Tests: Add Aztec Ruins High trace Test: angle_perftests --gtest_filter="*aztec_ruins_high*" Bug: angleproject:7169 Change-Id: I3d30348f663a4b1c54df1179d471363ca4c244c1 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3570244 Auto-Submit: Cody Northrop <cnorthrop@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Amirali Abdolrashidi 607d398e 2022-03-14T16:32:21 Vulkan: Optimize resolve of multisample swapchains * Resolves the multisampled image if the last render pass draws into the default framebuffer. * Added test to check the number of resolves in the optimization subpass (credit: Xinyi He) * Added test to check the number of resolves outside the subpass. * Added disabled test to see if the subpass resolve works. Bug: angleproject:6762 Change-Id: I86a8db3387851ab97d5f7a3d8a0ff26961254c14 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3523062 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
Shahbaz Youssefi 0ffff9ed 2022-04-05T15:56:23 Vulkan: Perf counters test for glInvalidateSubFramebuffer Bug: angleproject:7183 Change-Id: Id07c6467c746de312d6ba9695bdc98c9460144ca Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3573182 Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Cody Northrop 3258477a 2022-04-05T16:08:09 Skip car_chase on all Intel Windows platforms The trace did not get its gold image assigned correctly due to some Intel platforms not running the trace on submission. Bug: angleproject:7173 Change-Id: I7891204ccba86bff1ee1cb5e16aa870a2122beb1 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3572973 Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Cody Northrop 8b84cf15 2022-03-30T13:42:38 Tests: Add GFXBench Car Chase trace Test: angle_perftests --gtest_filter="*car_chase*" Bug: angleproject:7125 Bug: angleproject:7173 Change-Id: I07069d46351718743e545fc056f41de2b6fe3820 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3561484 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Lubosz Sarnecki b3fff1aa 2022-03-31T16:03:11 retrace_restricted_traces: Check for json file. Validate trace upgrades by looking for existing json file instead context header, which was incorrect when traces did not contain a context == 1. Introduce get_trace_json_path function. Use python fstrings. Bug: angleproject:7107 Change-Id: Ib83acb646fb2d9c38d8ca99766170e6c9c7eeb06 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3571884 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Lubosz Sarnecki <lubosz.sarnecki@collabora.com>
Yuxin Hu a11bf0ed 2022-03-31T17:28:18 Fix Max Atomic Counter Conformance Test Failure on Pixel6 ARM does not support the VkPhysicalDeviceFeature vertexPipelineStoresAndAtomics. According to vulkan specs: we should disable the usage of atomic buffers in vertex, tessellation, and geomotry shader stages. Set maxShaderAtomicCounters to zero for all these shader stages if vertexPipelineStoresAndAtomics is not supported. Create two angle_end2end_test to check atomic buffer usage in tessellation control shader and tessellation evaluation shader. Bug: angleproject:6918 Change-Id: I566562f99672d50cfb3d75def81a18a613b26ca0 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3563501 Reviewed-by: Ian Elliott <ianelliott@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Yuxin Hu <yuxinhu@google.com>
Cody Northrop a555be4a 2022-04-02T19:46:22 Tests: Add Scary Teacher 3D trace Test: angle_perftests --gtest_filter="*scary_teacher_3d*" Bug: angleproject:7163 Change-Id: I305146c403288f9409637c0847af6c38b0cefa89 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3567125 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Lubosz Sarnecki e933df51 2022-03-31T15:12:43 retrace_restricted_traces: Remove unused code. Remove unused load_json_metadata, get_trace_metadata and replace_metadata functions. Remove unused re import and trace_path parameter from get_context. Bug: angleproject:7107 Change-Id: I203609ca45145cdced8295d5edf7faa0c8606ae6 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3571883 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Lubosz Sarnecki <lubosz.sarnecki@collabora.com>
Roman Lavrov 1a3411c7 2022-04-01T18:42:51 Set SKIPPED status on skipped tests, rely on it in Gold tests. Gold tests check for '[ SKIPPED ] {test_name}' notice in test output instead of assuming that missing screenshot means SKIP. Now missing screenshot raises an exception. Also log the reason why the test was skipped. Example: [ RUN ] TracePerfTest.Run/native_asphalt_8 ../../src/tests/perf_tests/ANGLEPerfTest.cpp:837: Skipped Test skipped due to missing extension: GL_KHR_texture_compression_astc_ldr [ SKIPPED ] TracePerfTest.Run/native_asphalt_8 (182 ms) Bug: angleproject:6854 Change-Id: I2d88e2063a68ae95399a7932700f74032737ec91 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3565561 Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Roman Lavrov <romanl@google.com>
Jamie Madill 34471fed 2022-04-05T09:14:37 Vulkan: Skip failing intel blend test. Bug: angleproject:7177 Change-Id: I2aafc681fac1329be5691498d5128e9306b62dd3 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3569487 Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Roman Lavrov 83d3a98c 2022-04-04T16:03:06 Remove commented out mSkipTest. mSkipTest = true was commented out in https://crrev.com/c/1456482 back in 2019 so presumably this is no longer needed. Bug: angleproject:3137 Change-Id: Ic2c4ca5e2bea939aee8cfb4e5386c7d526c39064 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3569586 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Roman Lavrov <romanl@google.com>
Roman Lavrov e7d44541 2022-04-01T16:48:55 Use GTEST_SKIP to set gTest status of skipped tests to SKIPPED. Example from: angle_end2end_tests_on_Android_device_Pixel_4 Before: [----------] 1 test from BlendMinMaxTest [ RUN ] BlendMinMaxTest.RGBA16F/ES3_Vulkan Test skipped: (IsAndroid() && IsVulkan()) || isSwiftshader(). [ OK ] BlendMinMaxTest.RGBA16F/ES3_Vulkan (116 ms) "num_failures_by_type": { "CRASH": 0, "FAIL": 1, "PASS": 16966, "SKIP": 313, "TIMEOUT": 0 }, After: [ RUN ] BlendMinMaxTest.RGBA16F/ES3_Vulkan ../../src/tests/gl_tests/BlendMinMaxTest.cpp:191: Skipped Test skipped: (IsAndroid() && IsVulkan()) || isSwiftshader(). [ SKIPPED ] BlendMinMaxTest.RGBA16F/ES3_Vulkan (117 ms) "num_failures_by_type": { "CRASH": 0, "FAIL": 1, "PASS": 12067, "SKIP": 5212, "TIMEOUT": 0 }, Bug: angleproject:6854 Change-Id: I3335e4e2ae941d43d6a974d9611252e0849bc2c7 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3566225 Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill b33767ec 2022-04-04T15:26:29 Revert "Vulkan: Fix texture-after-framebuffer sync issues" This reverts commit 535cd538f3585b44855647339f04bae1c1acf63a. Reason for revert: May fix Win/Intel blockman_go flakiness. Bug: angleproject:7167 Original change's description: > Vulkan: Fix texture-after-framebuffer sync issues > > In TextureVk::syncState, for various reasons, the underlying image may > need to be respecified. For example because base/max level changed, > usage/create flags have changed, the format needs modification to become > renderable, generate mipmap is adding levels, etc. > > Currently, ANGLE syncs FramebufferVk before TextureVk for the sake of > the deferred clear optimization. This means that if the texture needs > to recreate its underlying image, it needs to do so earlier than its own > syncState, and do so in FramebufferVk::syncState through the > TextureVk::getAttachmentRenderTarget function. > > Over time, TextureVk::getAttachmentRenderTarget was modified to do parts > of what TextureVk::syncState did for this matter as bugs were > discovered, and more continue to be discovered. The bug that prompted > this change is missing image recreation when usage/create flags change. > > In this change, the relevant code in TextureVk::syncState is refactored > in a helper that's called by TextureVk::getAttachmentRenderTarget. This > way, the two functions should always be in agreement, avoiding > TextureVk::syncState recreating the image after > FramebufferVk::syncState, leading to use-after-free bugs. > > Bug: angleproject:4418 > Bug: angleproject:6909 > Bug: chromium:1266094 > Bug: chromium:1296866 > Change-Id: I856a34ca5cf573578c771f5adbeb9208420a3f62 > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3557817 > Reviewed-by: Jamie Madill <jmadill@chromium.org> > Reviewed-by: Charlie Lao <cclao@google.com> > Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Bug: angleproject:4418 Bug: angleproject:6909 Bug: chromium:1266094 Bug: chromium:1296866 Change-Id: I26b6f644442e2875aba954d6417543b1d5121376 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3569801 Auto-Submit: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Yuly Novikov f41303cd 2022-04-02T19:23:11 Skip end2end tests timing out on TSAN and ASAN TSAN InstancingTestES3.LargeDivisor WIN ASAN GeometryShaderTest.LayeredFramebufferMidRenderClear3DColor Bug: angleproject:7159, angleproject:7160 Change-Id: I619669a70e3dbf215ebc8f43fb704ac284cd6a40 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3563547 Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Shahbaz Youssefi 535cd538 2022-03-29T16:29:58 Vulkan: Fix texture-after-framebuffer sync issues In TextureVk::syncState, for various reasons, the underlying image may need to be respecified. For example because base/max level changed, usage/create flags have changed, the format needs modification to become renderable, generate mipmap is adding levels, etc. Currently, ANGLE syncs FramebufferVk before TextureVk for the sake of the deferred clear optimization. This means that if the texture needs to recreate its underlying image, it needs to do so earlier than its own syncState, and do so in FramebufferVk::syncState through the TextureVk::getAttachmentRenderTarget function. Over time, TextureVk::getAttachmentRenderTarget was modified to do parts of what TextureVk::syncState did for this matter as bugs were discovered, and more continue to be discovered. The bug that prompted this change is missing image recreation when usage/create flags change. In this change, the relevant code in TextureVk::syncState is refactored in a helper that's called by TextureVk::getAttachmentRenderTarget. This way, the two functions should always be in agreement, avoiding TextureVk::syncState recreating the image after FramebufferVk::syncState, leading to use-after-free bugs. Bug: angleproject:4418 Bug: angleproject:6909 Bug: chromium:1266094 Bug: chromium:1296866 Change-Id: I856a34ca5cf573578c771f5adbeb9208420a3f62 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3557817 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Charlie Lao <cclao@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Shahbaz Youssefi 4615a035 2022-04-01T21:57:28 Skip failing tests on Pixel 6 Bug: angleproject:7158 Change-Id: I863a20c1a5b5b055bfad1f1060a21281222e4668 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3565564 Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Jamie Madill 6b94a71c 2022-04-01T10:12:07 Vulkan: Lift SwS suppressions. Bug: angleproject:4092 Change-Id: I0e72b95ba5ba2b60420d5b685349c405864c2e6e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3563513 Auto-Submit: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@google.com>
Amirali Abdolrashidi ba0eba20 2022-04-01T17:39:58 Remove the TODOs regarding multisample buffer age * Removed the TODOs regarding the buffer age for multisample images. Bug: angleproject:7149 Change-Id: I25100eaef774613e71c5f7afdaed5833c63b6343 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3566228 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
Amirali Abdolrashidi cd9e887a 2022-03-31T15:43:17 Vulkan: Add multisample buffer age tests * Added variations of VerifyContent for multisample images. * getBufferAge() now sets age to 0 when the image is multisampled. Bug: angleproject:7149 Change-Id: I11f6fc92f383fba180f118b29c799072ed0eb51c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3563510 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
Charlie Lao 8f904363 2022-03-31T12:30:19 Vulkan: Move memory allocation initialization code into function No functional change expected. This CL wraps all initialization code for VMA allocator and memory suballocation memoryType and alignment calculation into its own function. Bug: b/223428306 Change-Id: Id630bbae035912ad41c51c2bb1cd02c2e438b442 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3563506 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Charlie Lao <cclao@google.com>
Shahbaz Youssefi b169f6f9 2022-04-01T14:41:12 Vulkan: Fix no location decoration vs framebuffer fetch The input attachment index is identical to the location qualifier. If there's only one output, GLSL is allowed to not specify the location qualifier, in which case it would implicitly be at location 0. Bug: angleproject:6947 Change-Id: Ib8e31ab524f6f4d4fe1d3e49386a374724da06a1 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3566221 Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Lingfeng Yang <lfy@google.com>
Cody Northrop 5cffbe96 2022-03-08T14:51:11 Android: Track peak GPU memory in restricted_trace_perf We've noticed that the script reports higher memory usage than recorded with local runs with similar steps. We isolated this to ANGLE using much higher peak memory when the trace loads, but then evens out after some time, nearing parity with native. To track this for optimization, we are going to split the memory tracking into: - peak GPU memory usage - sustained GPU memory usage This CL changes the script to: * Measure peak GPU memory usage by tracking total GPU memory used throughout the trace, returning the highest. * Measure sustained GPU memory usage by tracking usage from the middle of the trace (based on run time), returning the average. * Update the frequency of memory sampling by reducing sleep to 0.25 seconds instead of 1.0 second. As a data point, here is what angry_birds_2_1500 reports on Pixel 6: Before: 602599651 bytes After: 672231424 bytes (peak) 360621537 bytes (sustained) Bug: angleproject:6970 Change-Id: I227e30abeb6a5f28fe7230a2979441c3693234f1 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3511314 Reviewed-by: Charlie Lao <cclao@google.com> Reviewed-by: Roman Lavrov <romanl@google.com> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Cody Northrop e10803f7 2022-01-20T09:03:55 Compiler: Allow deferred array sizing in geometry shaders Based on work by Brandon Schade <b.schade@samsung.com>. When a shader sets an array input size in a GS after declaring input variables, compilation would fail. Example shader - in vec3 normal[]; in vec3 view_dir[]; in float patch_dist[]; in float e_patch_wire_scale[]; ... layout(triangles) in; layout(triangle_strip, max_vertices=3) out; void main() { ... Update translator to handle such cases. Also add a new check that there are no remaining unsized arrays when compilation has completed. Test: GeometryShaderTest.DeferredSetOfArrayInputSize Bug: angleproject:3571 Bug: angleproject:7125 Change-Id: I4853832c27f9551284bcca92b98cbf5f3a63aaf5 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3564259 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Jamie Madill dd86dd15 2022-03-25T14:55:05 Cache outer array offset in linked uniforms. Our current tracking would only track one array dimension. For nested arrays the flattened parent index would be incorrect. Update this tracking so we can use it in the Vulkan descriptor set caching. Store this value as a separate integer member to avoid conflicting with other back-ends. Bug: angleproject:6776 Change-Id: Ie1a5dc3d64ccac23dffcc73684d619336cb0f0da Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3550824 Reviewed-by: Yuxin Hu <yuxinhu@google.com> Reviewed-by: Charlie Lao <cclao@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Charlie Lao fe28a429 2022-03-30T15:34:49 Vulkan: Create buffer for vertex array if robust enabled If robust access is enabled (i.e., chrome), we want to ensure vulkan driver never access beyond that OpenGL buffer boundary. But with suballocation from BufferPool, we are using the same VkBuffer for all suballocations from the same BufferBlock. this combined with the fact that there is no size information in the vkCmdBindVertexBuffers, it means vulkan driver can not properly ensure vertex access not go beyond the subrange. It can only guarantee not access beyond the entire VkBuffer size. This CL creates a dedicated vkBuffer object and bind it to the suballocation of the vkDeviceMemory so that vulkan driver will see the exact range of the subrange instead of entire buffer. Since we may allocated more memory than actual requested size and the extra paddings are not zero filled , user size is used to create this vkBuffer. This is only enabled when robust access is enabled. This CL also ported webgl conformance test out-of-bounds-index-buffers.html and out-of-bounds-array-buffers.html to end2end test. Bug: chromium:1310038 Change-Id: I3499ae600028149b1039082e5011232b3e4e5e80 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3553940 Reviewed-by: Yuxin Hu <yuxinhu@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Charlie Lao <cclao@google.com>
Alexey Knyazev d2a7db9d 2022-03-31T22:22:40 Metal: Remove DrawBaseVertexVariantsTest suppressions The issue was fixed in https://crrev.com/c/3472691 Bug: angleproject:6963 Bug: angleproject:7122 Change-Id: Iabdcf6fd9b538c19ad291fb7713186e314332f71 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3564558 Reviewed-by: Kyle Piddington <kpiddington@apple.com> Reviewed-by: Kenneth Russell <kbr@chromium.org> Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
Mohan Maiya 5aaa402c 2022-03-30T06:13:02 Fix Surface use-after-free bug In Display::destroyContext we would incorrectly destroy current surfaces while trying to makeCurrent the context to be destroyed. Introduce ScopedSurfaceRef, mirroring ScopedContextRef, to keep the surfaces alive while destroying the context. Bug: angleproject:7141 Test: EGLSurfaceTest.SurfaceUseAfterFreeBug* Change-Id: Ie9b3d7841e5ee561d96c13bfee9c7c87b40cc39d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3561354 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: mohan maiya <m.maiya@samsung.com>
Kyle Piddington 1670c6dd 2022-02-17T14:15:08 Metal: Buffer data is not correctly updated When using a dynamic draw buffer, Metal creates more buffers to avoid in-flight synchronization issues. However, without correctly rebinding the buffers from the VAO, we get missing data. This patch adds a fix and a test to reproduce the issue. Upstream of https://bugs.webkit.org/show_bug.cgi?id=236427 and https://bugs.webkit.org/show_bug.cgi?id=236733 Bug: angleproject:7122 Change-Id: I879ff688af04a8215df6134400d0aab582b92842 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3472691 Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Kenneth Russell <kbr@chromium.org> Commit-Queue: Kyle Piddington <kpiddington@apple.com>
Mohan Maiya 078da78f 2022-03-17T13:06:58 Vulkan: Support GL_EXT_EGL_image_storage extension This extension provides a mechanism for creating texture objects that are both EGLImage targets and immutable and removes the possibility of implicit orphaning. EGL images created from external sources now support types other than 2D. Tests covering the new feature were added to ImageTest.cpp. Bug: angleproject:6346 Change-Id: Id3e328f352deb1af47062be232384229a8b1c341 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3530489 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: mohan maiya <m.maiya@samsung.com>
Shahbaz Youssefi cd3c74af 2022-03-30T11:48:41 SPIR-V Gen: Fix aliasing out parameters In ANGLE, when an unindexed lvalue was passed as an out parameter to a function, SPIR-V was generated such that the lvalue is passed in directly. A Skia test revealed a difference in SPIR-V and GLSL semantics where aliasing out parameters are expected to work on local copies until the end of the function. Bug: b/226904235 Change-Id: I476af01eb7d065272825967111cd208faf88c275 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3561278 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
John Cunningham f5d20de8 2022-03-23T17:34:14 WebGL ReadPixels validation is incorrect. Remove GL_UNSIGNED_INT_24_8 from the supported types in ValidReadPixelsTypeEnum. Run the format/type validation before the check for missing attachment. Bug: angleproject:7119 Change-Id: Ie788084d0f41fef6847791de8c53be830eba7564 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3546723 Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Kenneth Russell <kbr@chromium.org> Commit-Queue: Kenneth Russell <kbr@chromium.org>
Shahbaz Youssefi 36a051d8 2022-03-28T22:53:38 Vulkan: Move mid-RP color clear to loadOp if content undefined Instead of using vkCmdClearAttachments, if the color attachment has not been written to, modify the loadOp of the currently open renderpass to CLEAR. This is an adaptation of commit cfe5a1735a934cc83133bb6c69d19aa27278a270 The difference with that commit is that, with the prior changes that added tracking of color attachment access in the render pass, this change is greatly simplified by being able to immediately know if clear can be moved to the beginning of the render pass. Bug: angleproject:5048 Change-Id: I72b3613ad08ff869b71aced7e1f4e9be916d7b49 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3557815 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Charlie Lao <cclao@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Lubosz Sarnecki aef440e6 2022-03-04T16:43:38 Tests: Add Super Mario Run trace. Test: angle_perftests --gtest_filter="*super_mario_run*" Bug: angleproject:7098 Change-Id: I48ede98096bcb82270007d59f219f48ff673c7f0 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3560602 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Lubosz Sarnecki <lubosz.sarnecki@collabora.com>
Arthur Eubanks 9a0b306d 2022-03-28T10:33:06 Remove set but otherwise unused variables Recent Clang versions have enhanced -Wunused-but-set-variable which now warns about these. Bug: chromium:1309955 Change-Id: If6a475e9f373b077fa3d9ef6f2274c8d115b5d24 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3553570 Reviewed-by: Charlie Lao <cclao@google.com> Auto-Submit: Arthur Eubanks <aeubanks@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Shahbaz Youssefi 2d54b68e 2022-03-22T17:32:06 Vulkan: Use storeOp=None more opportunistically Previously, storeOp=None was used when the attachment was in "read-only mode" and storeOp=Store. With this change, storeOp=None is used more opportunistically when it's deemed that the attachment was not written to, regardless of if it was put in "read-only mode" (a construct added to support read-only depth/stencil feedback loops). Bug: angleproject:5048 Change-Id: I10832d4e2b97793ea1347a47175cbf8ce9af57d6 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3556368 Reviewed-by: Charlie Lao <cclao@google.com> Reviewed-by: Yuxin Hu <yuxinhu@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Lubosz Sarnecki 39c50daf 2022-02-18T13:15:09 Tests: Add Shadowgun Legends trace. Test: angle_perftests --gtest_filter="*shadowgun_legends*" Bug: angleproject:7042 Change-Id: I65c7671584edda823998145b6c6558353c5fdbd9 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3497471 Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Geoff Lang be53aea8 2022-03-10T11:04:22 Reland: Emulate RGB10 (no alpha) on desktop OpenGL. The OpenGL ES extension GL_EXT_texture_type_2_10_10_10_REV requires RGB and RGBA formats to be supported but Desktop OpenGL does not support RGB. Emulate it with the existing emulatedAlphaChannel path in TextureGL. Bug: chromium:1300575 Change-Id: I5efea52d3da628cf82b43fece23894e6f47df650 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3533141 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org>
Steven Noonan a03ba732 2022-03-24T23:30:06 Vulkan: add tests for clearing/drawing after invalidate Two tests, to ensure that: - Clear gets treated as a LoadOp instead of as an out-of-renderpass clear, even if draws don't touch color buffers. - Invalidated image gets contents marked as defined after invalidate+clear, so draws to it get a renderpass with LoadOp=Load Bug: angleproject:7127 Change-Id: I78a8bd2100ba941a74755402649ae8edc7978026 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3552090 Reviewed-by: Jamie Madill <jmadill@chromium.org> Auto-Submit: Steven Noonan <steven@valvesoftware.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Shahbaz Youssefi 53e432fe 2022-03-28T15:18:51 Vulkan: Track LOAD/STORE_OP_NONE in perf counters Bug: angleproject:5048 Change-Id: I52ed67e7a5c173dd1a7202fd6d4a1c484e79ea75 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3556367 Reviewed-by: Charlie Lao <cclao@google.com> Reviewed-by: Yuxin Hu <yuxinhu@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Cody Northrop ce964d66 2022-03-26T18:56:50 Vulkan: Add tessellation to GetPipelineStage helper The tessellation stages were missing from a helper, which was silently returning an invalid value. Add a test and an assert, which fires before the fix. Test: GFXBench Car Chase Test: GLSLTest_ES31.TessellationTextureBufferAccess Bug: angleproject:7135 Bug: b/218314686 Change-Id: I2bc8d374300fc1470e52affabab7491698c99cee Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3554575 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Charlie Lao <cclao@google.com> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Steven Noonan a02fa8a0 2022-03-24T22:14:44 Vulkan: mark image contents defined on clear-invalidate-clear The backend was ignoring "repeated clears" with an Invalidate between them, which marked the image contents as undefined. When a clear happens after invalidate, verify that the clear parameters were the same, and simply mark the image contents defined if they aren't already. For example, in this scenario: - glBindFramebuffer(fbo) - glInvalidateFramebuffer(color + depth) - glClear(color + depth) - depth only render - glInvalidateFramebuffer(depth) - glBindFramebuffer(0) The color clear got skipped entirely because it was cleared with that color in a previous frame and no other color draws happened since. This caused sampling from the FBO's texture to return garbage data. Bug: angleproject:7127 Change-Id: I4ffe65c67375931ab63f07f27fa59ed0a4b90cd9 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3551297 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Ian Elliott 638557ac 2022-03-28T10:20:30 Add back another Pixel-6-specific FAIL expectation Passes on pre-release Android T drivers, but fails on the Android S drivers. Bug: b/224537784 Change-Id: Idc631d13b1666f0f0b4bf1c5bbfa9e9343af4d75 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3554360 Auto-Submit: Ian Elliott <ianelliott@google.com> Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Shahbaz Youssefi 7a85d114 2022-03-25T15:01:17 Use [[nodiscard]] on RAII classes Scoped* classes provide an RAII way of adding cleanup/restore state/etc in a robust way. Unfortunatley, it's very easy to mistakenly leave the variable name, leading to the destructor being called immediately instead of at the end of the scope: { ScopedX(parameters); // instead of ScopedX x(parameters); // Code here is run after destructor } The [[nodiscard]] attribute, if specified on the ScopedX class would lead to a warning (turned to error with -Werror). This change does that for classes named *Scoped* in ANGLE. Bug: chromium:1103817 Change-Id: I65c9922c9b4eba1f9c033e093fe8fe534648ab62 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3552092 Reviewed-by: Lingfeng Yang <lfy@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Gert Wollny bd173f0e 2022-03-14T09:59:47 Capture/Replay: limit per shader image uniforms when capturing The Caps::maxImageUnits are limited, but that's only the value that is checked when compiling shaders, we have also limit the values that are returned when using the GL interface. In addition print out the error log when compiling a shader fails in the Pipeline tests. Bug: angleproject:7094 Change-Id: I19f69afe2cece4841a395543c1e35785bc6bd698 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3516078 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Gert Wollny <gert.wollny@collabora.com>
Cody Northrop 32af258d 2022-03-22T16:44:14 Fix handling of incomplete CubeMapArray textures GFXBench Car Chase binds a cube map array as a default texture, then immediately samples from it without setting it up. This ends up treating the cube map array as incomplete. On the Vulkan backend, this is resulting in multiple validation errors, followed by a crash in the driver. There are a number of errors, but a telling one is this: vkCreateImage(): pCreateInfo->flags contains VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT, but pCreateInfo->arrayLayers (=1) is not greater than or equal to 6. The Vulkan spec states: If imageType is VK_IMAGE_TYPE_2D and flags contains VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT, extent.width and extent.height must be equal and arrayLayers must be greater than or equal to 6 This corresponds to language in the GLES 3.2 spec: 8.18. IMMUTABLE-FORMAT TEXTURE IMAGES TexStorage3D Errors An INVALID_OPERATION error is generated if any of the following conditions hold: * target is TEXTURE_CUBE_MAP_ARRAY and depth is not a multiple of 6 Since ANGLE treats incomplete textures as immutable, we need to update the dimensions of the backing image for CUBE_MAP_ARRAY. Also add a new test that exposes the problem. Test: IncompleteTextureTestES31.IncompleteTextureCubeMapArray Bug: b/218314686 Change-Id: Ibef41e15a7cfccb05e6039bfb8504d237bc42cd4 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3546290 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Shahbaz Youssefi 041c4c6d 2022-03-25T16:30:03 Vulkan: Track color attachment usage like D/S in render pass That is in preparation for optimizing mid-render-pass clears, which requires an answer to the following query: "has this color image been read from / written to so far in the render pass?" With this change, a future CL will also be able to optimize color attachment invalidates, which currently break the render pass unconditionally, the same way depth/stencil is optimized. Bug: angleproject:5048 Change-Id: I3d3ee40d8444e6861c06340d5d52b17f5ee895b4 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3542989 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Lingfeng Yang <lfy@google.com> Reviewed-by: Charlie Lao <cclao@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Ian Elliott b2c6e08e 2022-03-24T11:38:04 Reland Remove unnecessary suppressions for Pixel6 dEQP This is a reland of 0455f356eda37e98cbfaff6b4be3241a0743bdcd Original change's description: > Remove unnecessary suppressions for Pixel6 dEQP tests > > Bug: b/224537784 > Change-Id: If7befe0279a06cddb79c67fdd34a62b4cb51c6e0 > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3551658 > Reviewed-by: Yuxin Hu <yuxinhu@google.com> > Commit-Queue: Ian Elliott <ianelliott@google.com> The previous CL was based on the pre-release Android T Pixel 6 drivers. The Chromium bots are running released Android S Pixel 6 drivers. This CL updates the expectations with the observed status, and still removes some expectations that are now unnecessary. Bug: b/224537784 Change-Id: I4f4041e015824fd1d8211d6d7d0adedbccaa3ddb Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3552544 Reviewed-by: Roman Lavrov <romanl@google.com> Commit-Queue: Ian Elliott <ianelliott@google.com>
Shahbaz Youssefi 3f331fae 2022-03-22T15:23:38 Vulkan: Dirty bits for depth/stencil access and feedback loop In preparation for doing the same for color, the depth/stencil render pass access and feedback loop modes are now updated with ContextVk dirty bits. This change also fixes clear after read-only depth/stencil feedback loop. The render pass wasn't broken in that case. Bug: angleproject:5048 Change-Id: I40f9b49593f9e6f35f42408e41c9d6267edb375e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3542988 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Charlie Lao <cclao@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Ian Elliott 1d71f55f 2022-03-24T19:27:21 Remove unnecessary SKIPs for Pixel4* dEQP tests Bug: b/224537784 Change-Id: I81c6f18d72ea893341ad2aa8ca819893e7d53d26 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3551659 Reviewed-by: Roman Lavrov <romanl@google.com> Commit-Queue: Ian Elliott <ianelliott@google.com>
Ian Elliott 45543295 2022-03-25T04:36:49 Revert "Remove unnecessary suppressions for Pixel6 dEQP tests" This reverts commit 0455f356eda37e98cbfaff6b4be3241a0743bdcd. Reason for revert: Multiple tests that pass on my Pixel 6 fail on the bot Pixel 6's Original change's description: > Remove unnecessary suppressions for Pixel6 dEQP tests > > Bug: b/224537784 > Change-Id: If7befe0279a06cddb79c67fdd34a62b4cb51c6e0 > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3551658 > Reviewed-by: Yuxin Hu <yuxinhu@google.com> > Commit-Queue: Ian Elliott <ianelliott@google.com> Bug: b/224537784 Change-Id: Id3430a7632651b9b7b5e980f41678aebbdfc426c No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3552124 Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Reviewed-by: Ian Elliott <ianelliott@google.com> Commit-Queue: Ian Elliott <ianelliott@google.com> Auto-Submit: Ian Elliott <ianelliott@google.com>
Shahbaz Youssefi c8f86c21 2022-03-22T17:40:43 A handful of clear-related tests Credit Tim Van Patten <timvp@google.com> Bug: angleproject:5048 Bug: angleproject:5194 Change-Id: I00eccf1049118c3fba3c2c560c781cf09cf23362 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3543732 Reviewed-by: Ian Elliott <ianelliott@google.com> Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Yuxin Hu cdd97fb8 2022-03-24T17:41:30 Reland "Vulkan: Fix invalid access with display texture share group." This is a reland of 1099b5ef2279cfe1988a39c8e011aada59c650f1. Original change's description: > Vulkan: Fix invalid access with display texture share group. > Create bufferpool that owns by RendererVk. > If we are using EGL_ANGLE_display_texture_share_group > extension, use the bufferpool owned RendererVk, > otherwise, use the bufferpool owned by EGL::ShareGroup. > The bufferpool lifetime will remain consistent with > texture lifetime. > Bug: chromium:1299211 > Change-Id: Ie4e87cea1dfd20dabab24e2afed6ddd92e469888 > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3531155 > Reviewed-by: Charlie Lao <cclao@google.com> > Reviewed-by: Geoff Lang <geofflang@chromium.org> > Commit-Queue: Geoff Lang <geofflang@chromium.org> Bug: chromium:1299211 Change-Id: I4b8f5bcb30297f2c5f24e02404fd96011f9d843b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3550038 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Ian Elliott 0455f356 2022-03-24T11:38:04 Remove unnecessary suppressions for Pixel6 dEQP tests Bug: b/224537784 Change-Id: If7befe0279a06cddb79c67fdd34a62b4cb51c6e0 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3551658 Reviewed-by: Yuxin Hu <yuxinhu@google.com> Commit-Queue: Ian Elliott <ianelliott@google.com>
Alexey Knyazev 18c36f8a 2022-03-19T19:22:08 Metal: Fix transform feedback with base instance Added TransformFeedbackTest.BaseInstance test case. Bug: angleproject:6963 Change-Id: Ie7b2a5dd2be456172505f07ea60ca291075bf07e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3536660 Reviewed-by: Kenneth Russell <kbr@chromium.org> Reviewed-by: Kyle Piddington <kpiddington@apple.com> Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
Shrek Shao 73ec28af 2022-03-23T21:13:45 Revert "Vulkan: Fix invalid access with display texture share group." This reverts commit 1099b5ef2279cfe1988a39c8e011aada59c650f1. Reason for revert: suspect culprit of 1309304 Original change's description: > Vulkan: Fix invalid access with display texture share group. > > Create bufferpool that owns by RendererVk. > If we are using EGL_ANGLE_display_texture_share_group > extension, use the bufferpool owned RendererVk, > otherwise, use the bufferpool owned by EGL::ShareGroup. > The bufferpool lifetime will remain consistent with > texture lifetime. > > Bug: chromium:1299211 > Change-Id: Ie4e87cea1dfd20dabab24e2afed6ddd92e469888 > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3531155 > Reviewed-by: Charlie Lao <cclao@google.com> > Reviewed-by: Geoff Lang <geofflang@chromium.org> > Commit-Queue: Geoff Lang <geofflang@chromium.org> Bug: chromium:1299211, 1309304 Change-Id: Ibdc119ef6bb52352858114d72a0f1c0edcd4da5e No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3546288 Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Reviewed-by: Shrek Shao <shrekshao@google.com> Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Yuly Novikov b19e662a 2022-03-22T18:28:40 TransformFeedbackQueryPausedDrawThenResume flaky Suppression removed in crrev.com/c/3536652, but still flaky: https://ci.chromium.org/ui/p/angle/builders/ci/win-trace/1091/overview Bug: angleproject:6180 Change-Id: I447a173d9634c950debc3d4a16e9987ed360d522 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3542991 Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Yuxin Hu 1099b5ef 2022-03-17T17:20:44 Vulkan: Fix invalid access with display texture share group. Create bufferpool that owns by RendererVk. If we are using EGL_ANGLE_display_texture_share_group extension, use the bufferpool owned RendererVk, otherwise, use the bufferpool owned by EGL::ShareGroup. The bufferpool lifetime will remain consistent with texture lifetime. Bug: chromium:1299211 Change-Id: Ie4e87cea1dfd20dabab24e2afed6ddd92e469888 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3531155 Reviewed-by: Charlie Lao <cclao@google.com> Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org>
Ian Elliott 6bd11e28 2022-03-22T12:38:13 Add back Pixel 6-specific dEQP FAIL suppression Bug: b/224537784 Change-Id: Iddbd1cbd1aef6349dc1a4298febe74907bd126a8 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3543727 Reviewed-by: Ian Elliott <ianelliott@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Shahbaz Youssefi 20e7bbb7 2022-03-18T17:03:18 Vulkan: Fix invalidate of attachments with emulated format Some image formats may be emulated such that the emulated format has more channels than the original. ANGLE clears the image once so that these extra channels contain valid values, and carefully ensures they are never modified. For swapchain images with such formats, as they are automatically invalidated at the end of the frame, a workaroud was added to make sure they are re-cleared in the beginning of the next frame. This however doesn't fix the issue of glInvalidateFramebuffer resulting in the contents of attachments with such formats to be discarded (even if the following render pass clears it, the contents are invalid in between). This change instead makes sure invalidate of images with emulated formats that have extra channels are handled appropriately: - On IMR hardware, the invalidate is dropped altogether as it provides little to no benefit. - On TBR hardware, a clear is automatically staged on the invalidated image. The latter replaces the workaround that was added to make the following render pass use loadOp=CLEAR, by adding a clear that's respected regardless of what the future usage is. This change also paves the way for a future change where the invalidate of color attachments is tracked in render passes similarly to how depth/stencil currently is. With this change, the image is no longer in an inconsistent state where its contents are considered invalid, even though some channels are meant to remain valid. Bug: angleproject:6860 Change-Id: Iec5b4854dfbe3a0bf93cd5aa82c19fe116065744 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3536389 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Charlie Lao <cclao@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Ian Elliott e7f29440 2022-03-16T14:31:39 Remove dEQP FAIL expectations for passing tests Based on bot runs, a number of previously FAIL'ing dEQP tests are now passing. Need to separately test Pixel 6 and SKIP expectations. Bug: b/203826952 Change-Id: I8a2bdb44b9050d1b93e85082c5dd1e15420e6f3e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3531073 Reviewed-by: Roman Lavrov <romanl@google.com> Commit-Queue: Ian Elliott <ianelliott@google.com>
Gert Wollny ebf4c58f 2022-03-20T19:48:06 Capture/Replay: Enable test that no longer times out Bug: angleproject:6220 Change-Id: I170462fa384f06ead39bdfce64d324426ad47878 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3538364 Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Gert Wollny <gert.wollny@collabora.com>
Gert Wollny df06c945 2022-03-18T15:25:13 Capture/Replay: Skip binary IO test without binary formats Bug: angleproject:6631 Change-Id: I7093a5d71ada7b1982e7294a6a7e7b482f5037a5 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3536653 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Gert Wollny <gert.wollny@collabora.com>
Gert Wollny b9a83e14 2022-03-18T17:05:44 Capture/Replay: Recheck Flaky tests and update expectations Bug: angleproject:6180 Bug: angleproject:6286 Bug: angleproject:6373 Bug: angleproject:6511 Bug: angleproject:6538 Bug: angleproject:6543 Change-Id: I39c44f2552e3bbd7f47bf94c08f42b4ab342f7d7 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3536652 Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Gert Wollny <gert.wollny@collabora.com>
Amirali Abdolrashidi 730c1271 2022-01-07T13:41:08 Vulkan: Submit queue more often for texture data Outside command buffers should be flushed more often in order to prevent the texture data accumulation just before the first render pass when they are referenced. * Added a tracker next to copyBufferToImage() for texture size (in ContextVk). When its value passes kMaxBufferToImageCopySize, the outside command buffer operations should be submitted and the tracker would be reset. Currently, the threshold value is set to 1 << 28 = 256M. * Added a variation of submitFrame() to be used in outside command buffer submission. The main difference is that it copies mResourceUseList into GetShareGroupVk() rather than move it. * Refactored the two functions into submitFrameImpl(). * Added a helper function to submit the outside command buffer. * Added explicit copy functions for ResourceUseList and SharedResourceUse. The counter in the copied object is incremented by 1. * Added a test to make sure submitting the outside command buffer does not break the render pass. Bug: angleproject:6354 Change-Id: Ia1d4f857fcbd06934609c94622ccbf675b3b1c72 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3379231 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Charlie Lao <cclao@google.com> Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
Shahbaz Youssefi 40afbe4b 2022-03-20T23:39:57 Translator: Fix SimplifyLoopConditions producing dead code This causes the tree to fail validation. Dead code could be generated if the loop body ended in a branch. In such a case, no additional instructions are added to the transformed loop body after the original body. Bug: chromium:1300782 Change-Id: I4ec46c170ab5a45fa9b9b73d4e2b62c9c4fa24a3 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3539442 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Charlie Lao <cclao@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Jamie Madill b2c01ac4 2021-09-28T12:57:45 Report process memory in perf tests. Bug: angleproject:6440 Change-Id: Ifdd4389266e3ac55963a3069d437c631bf73f72a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3191194 Reviewed-by: Charlie Lao <cclao@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Yuxin Hu <yuxinhu@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Kimmo Kinnunen 9637185c 2022-03-10T15:38:13 Add ForceGPUSwitch to EGL_ANGLE_power_preference eglHandleGPUSwitch() does not work with WebKit sandbox profile. The root cause is that we do not know the primary display, and as such we do not know which GPU drives this. Add eglForceGPUSwitchANGLE(display, gpuIDHigh, gpuIDLow). This lets the caller figure out the GPU in another process. Then the caller can just set the GPU in the sandboxed process. Add tests that are disabled by default until the runner and the infrastructure supports running the tests with automatic switching enabled. Bug: angleproject:7092 Change-Id: I316ee431156596effbdb89659a5e24291719a204 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3516274 Reviewed-by: Jonah Ryan-Davis <jonahr@google.com> Reviewed-by: Kenneth Russell <kbr@chromium.org> Commit-Queue: Kenneth Russell <kbr@chromium.org>
Alexey Knyazev 7c616871 2022-02-01T15:12:53 Metal: Implement ANGLE_base_vertex_base_instance Includes command buffer and MSL translator updates. The DrawElementsInstancedBaseVertexBaseInstance tests from DrawBaseVertexVariantsTest suite fail for dynamic draw and stream draw buffer usages. Bug: angleproject:6963 Change-Id: I6caa144860356d5fc85948b72458bec282ea3a3b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3429819 Reviewed-by: Kyle Piddington <kpiddington@apple.com> Reviewed-by: Kenneth Russell <kbr@chromium.org> Commit-Queue: Kenneth Russell <kbr@chromium.org>
Shahbaz Youssefi f96d2d35 2022-03-18T10:54:07 Test RGB invalidate with user FBOs When an RGB image is invalidated and then used as attachment, the cleared alpha value was previously lost due to loadOp=DONT_CARE. This was fixed by making the following render pass use loadOp=CLEAR instead. The test for this relied on RGB backbuffers, which is not easily testable on many platforms. This change adds a similar test using user FBOs. Bug: b/180139027 Bug: angleproject:6860 Change-Id: I11f408d6cd925b45bc9bcec455563cd23a226fec Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3536387 Reviewed-by: Ian Elliott <ianelliott@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Constantine Shablya e74d0e81 2022-02-11T18:05:12 Vulkan: Implement EGL_KHR_partial_update This change provides a trivial implementation of partial update that does nothing, making apps that want this extension happy. A possible efficient Vulkan implementation would use the damage set to narrow down render area, but it appears to only be useful for only some TBDR hardware. Bug: angleproject:6960 Reviewed-by: Antonio Caggiano <antonio.caggiano@collabora.com> Change-Id: Ic553ac9590c336093f1bf25a6521574622599bf6 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3427640 Reviewed-by: Ian Elliott <ianelliott@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Auto-Submit: Constantine Shablya <constantine.shablya@collabora.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Geoff Lang 44e84661 2022-03-17T15:02:21 Revert "Emulate RGB10 (no alpha) on desktop OpenGL." This reverts commit 6404be2defd3ded3ff2f0437bb87fe515e10f2a7. Reason for revert: Extension was not fully enabled due to test bug. Original change's description: > Emulate RGB10 (no alpha) on desktop OpenGL. > > The OpenGL ES extension GL_EXT_texture_type_2_10_10_10_REV > requires RGB and RGBA formats to be supported but Desktop OpenGL > does not support RGB. Emulate it with the existing > emulatedAlphaChannel path in TextureGL. > > Bug: chromium:1300575 > Change-Id: I0e6d1044afbc55cf6d4f987cc98b357ff11ff006 > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3517346 > Reviewed-by: Jonah Ryan-Davis <jonahr@google.com> > Reviewed-by: Jamie Madill <jmadill@chromium.org> > Commit-Queue: Geoff Lang <geofflang@chromium.org> Bug: chromium:1300575 Change-Id: Ib3810a18888544f1700a1f648a5094c19973d86d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3533139 Reviewed-by: Geoff Lang <geofflang@chromium.org> Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Jamie Madill e8ee847d 2022-02-23T12:25:39 Vulkan: Add UpdateDescriptorSetsBuilder. This helper class encapsulates the vkUpdateDescriptorSets caching. As part of the refactor, we switch passing a ContextVk to passing a vk::Context with some mutable variables. This helps encapsulate ContextVk. Since we use the perf counters in many places, this CL moves the perf counters to vk::Context, so we can access them everywhere. Refactoring change only. Bug: angleproject:6776 Change-Id: Id529962b2f425bece6f9b3bd0cd1698c692e58cb Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3484980 Reviewed-by: Charlie Lao <cclao@google.com> Reviewed-by: Yuxin Hu <yuxinhu@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Shahbaz Youssefi 98bb4f32 2022-02-23T16:51:32 Vulkan: Implement advanced blend through extension This change exposes GL_KHR_blend_equation_advanced if VK_EXT_blend_operation_advanced is supported. No emulation is yet implemented. Bug: angleproject:3586 Change-Id: Ie7a442c22e028e3aa45ccef52db320e205664d49 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3487951 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Charlie Lao <cclao@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Brandon Schade 459bdc2f 2022-03-16T12:04:38 Reintroduce validation check only for D3D To avoid undefined behavior, D3D requires the base mip level to have multiple-of-4 dimensions. Add this validation check back in. Bug: angleproject:7099 Change-Id: Id51f6cd4c745455062b864c0d291b9857e985e35 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3530499 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Alexey Knyazev <lexa.knyazev@gmail.com> Commit-Queue: Brandon Schade <b.schade@samsung.com>
Steven Noonan 04460fe8 2022-03-15T19:04:39 end2end tests: add regression test for GL_LINE_LOOP drawing This was fixed by 349636a05a3577a127adb6c79a1e947890bbe462. Adding a regression test which I didn't have ready at the time. Bug: angleproject:7102 Change-Id: Icbb685c1ffad6725a278e5ed65f881f86c5688ef Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3527604 Reviewed-by: Charlie Lao <cclao@google.com> Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com> Commit-Queue: Charlie Lao <cclao@google.com>
Yuxin Hu 1dc9f126 2022-03-16T19:29:26 Revert "Flush the texture staged updates when destroying context share group" This reverts commit 5c29d795d1625f71ac6999f157b6f3bba79d5256. Reason for revert: this is causing some test failures on chromium and blocking the angle-chromium auto roller job: https://chromium-review.googlesource.com/c/chromium/src/+/3529771/ Original change's description: > Flush the texture staged updates when destroying context share group > > If we are using the extension EGL_ANGLE_display_texture_share_group, > flush the texture staged updates upon destroying the context. With the > extension enabled, the texture could still be alive when both context > and its' EGL::ShareGroup are destroyed. If we have staged updates not > yet flushed, the updates will keep the ShareGroupVk bufferpool occupied, > causing an error upon ShareGroupVk::onDestroy(). > > Bug: chromium:1299211 > Change-Id: I260de93c3a3099e023e31acbe017803e824459ad > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3495879 > Reviewed-by: Charlie Lao <cclao@google.com> > Reviewed-by: Jamie Madill <jmadill@chromium.org> > Commit-Queue: Yuxin Hu <yuxinhu@google.com> Bug: chromium:1299211 Change-Id: I214161d6a8aec834e1efc5fc9d2479e62e3bfae0 No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3530505 Auto-Submit: Yuxin Hu <yuxinhu@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Lubosz Sarnecki ed590dc8 2022-03-11T12:54:44 FrameCapture: Add override for Glsizei* types. Fix capturing glGetSynciv with null lengths on Linux. When calling the default WriteParamValueReplay handler with a nullptr, ostream on Linux will write `(nil)`. This fixes retracing all traces containing glGetSynciv calls with null lengths. Add a NullLength test to FenceSyncTests that used to fail in the capture_replay_tests. Test: capture_replay_tests.py --gtest_filter=FenceSyncTest.NullLength/* Bug: angleproject:7071 Bug: angleproject:6808 Change-Id: I0a2bd4db744ce2a026cd932ba0f2f4747672fcc8 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3526653 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Lubosz Sarnecki <lubosz.sarnecki@collabora.com>
Roman Lavrov f8a2229e 2022-03-16T10:58:07 angle_system_info_test also exports androidSdkLevel Value being non-zero would unambiguously indicate that target is Android, not sure if the actual value is really needed but it's probably good to have. Bug: angleproject:6854 Change-Id: I685e8e0ffbb666349801203e9d09b082135af17e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3529966 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Roman Lavrov <romanl@google.com>
Roman Lavrov 08e007dd 2022-03-15T18:23:54 angle_system_info_test passes json via file --render-test-output-dir is supported by Android test runner so the file is first written on the device then copied over to the host. Bug: angleproject:6854 Change-Id: Ia56fd9c36ab68a495459efa3b1014e871a615565 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3526855 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Roman Lavrov <romanl@google.com>
Yuxin Hu 5c29d795 2022-02-28T23:56:46 Flush the texture staged updates when destroying context share group If we are using the extension EGL_ANGLE_display_texture_share_group, flush the texture staged updates upon destroying the context. With the extension enabled, the texture could still be alive when both context and its' EGL::ShareGroup are destroyed. If we have staged updates not yet flushed, the updates will keep the ShareGroupVk bufferpool occupied, causing an error upon ShareGroupVk::onDestroy(). Bug: chromium:1299211 Change-Id: I260de93c3a3099e023e31acbe017803e824459ad Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3495879 Reviewed-by: Charlie Lao <cclao@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Yuxin Hu <yuxinhu@google.com>
Brandon Schade 6baf1675 2022-03-04T11:04:46 Remove invalid validation check on compressed texture formats Remove the ValidCompressedDimension() check for non-WebGL contexts of compressed formats. This is because compressed texture images can have dimensions that are neither multiples of four nor small values like one or two. Test: gtest_filter=*DXT1CompressedTextureTest.NonBlockSizesMipLevels* Bug: angleproject:7099 Change-Id: Ic86c15dd3187ffab0665f6db21434fffcbe04fef Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3526017 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Brandon Schade <b.schade@samsung.com>