src


Log

Author Commit Date CI Message
Kyle Piddington cfc4db34 2021-11-04T16:54:15 Metal: Provoking vertex support for Metal DrawArrays Add in provoking vertex rewrite support for drawArrays command, enabling 6 dEQP tests. GLES3/functional_rasterization_flatshading_line_loop GLES3/functional_rasterization_flatshading_line_strip GLES3/functional_rasterization_flatshading_lines GLES3/functional_rasterization_flatshading_triangle_fan GLES3/functional_rasterization_flatshading_triangle_strip GLES3/functional_rasterization_flatshading_triangles This patch adds a new shader to the Provoking Vertex helper that generates draw commands for all simple data types. Fix bug in provoking vertex helper that caused reused index buffers to suffer from allocation issues. Also fix Provoking vertex for triangle fan generation Bug: angleproject:5325 Change-Id: I7a1211dfcd99329868269ea0666eef1915d487b5 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3261635 Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Kenneth Russell <kbr@chromium.org> Commit-Queue: Kyle Piddington <kpiddington@apple.com>
Yuly Novikov aad7ddb2 2021-12-30T20:38:03 Skip VulkanPerformanceCounterTest.InvalidateDrawDisable on Linux Vulkan AMD Bug: angleproject:6857 Change-Id: I07484ae2253227d1abad8e554401b4e6da825cb3 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3359004 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Shahbaz Youssefi 4b3e3ed5 2022-01-01T09:57:12 Re-skip MSRTT tests on Linux/AMD/Vulkan They crash when vkCreateRenderPass2 is used, as if the RP2 extension is exposed but the entry points are missing. Bug: angleproject:6845 Change-Id: Ia21cf039b49d5ab2772c7ecddd03df6360449d20 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3363637 Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Jamie Madill 9aca4285 2021-12-30T09:18:32 Traces: Fix path in retrace script. This was accidentally regressed when removing the auto-generation. Bug: angleproject:5133 Change-Id: I44e88bd15c9baaca66c49b1e379b2e0dd7206b3f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3362295 Reviewed-by: Tim Van Patten <timvp@google.com> Reviewed-by: Jamie Madill <jmadill@google.com> Commit-Queue: Jamie Madill <jmadill@google.com>
Jamie Madill 0331738b 2021-12-29T14:47:32 Fix extension download script, and update data. This includes the update to the NV 1660s, and Intel driver update, and automatically gathered SwiftShader data. Bug: angleproject:6853 Change-Id: I481918105fd0e0224a2e2ddf5175b38e97918195 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3360784 Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Tim Van Patten <timvp@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jamie Madill 58aeec65 2021-12-29T14:00:00 Capture/Replay: GN cleanups. This adds a GN "angle_trace_library" template that will be used with capture replay tests and restricted trace tests to share code. It could also be theoretically used to fix the capture replay sample. Also changes the capture replay tests GN to make the test exe always build even without the defines. This is possible because of the switch to JSON from code autogen, and makes it easier to catch and fix compile errors in this test harness. Bug: angleproject:5133 Change-Id: Ia87b6bbb0ea6e1abb557f962ca16d074207325ef Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3360783 Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Tim Van Patten <timvp@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jamie Madill b6399ac9 2021-12-29T13:04:17 Traces: Finish writing restricted trace doc updates. Bug: angleproject:5133 Change-Id: I06e7da7d465cdc98e672bf87f54da2935eac557a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3360781 Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Tim Van Patten <timvp@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Shahbaz Youssefi a400e76d 2021-12-22T12:24:13 Vulkan: Don't expose MSRTT without VK_KHR_depth_stencil_resolve Previously, ANGLE exposed the EXT_multisampled_render_to_texture extension even if VK_KHR_depth_stencil_resolve was not available. This was due to scarcity of drivers on the bots with support for this extension and allowed partial testing. This is no longer true. Additionally, this cleans up the expectations because old and buggy drivers are now simultaneously filtered out. Bug: angleproject:6845 Change-Id: I8c285a5fa5d9beeb98b48d8b056cdc8779cce6fd Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3353895 Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Yuly Novikov 9f74ec61 2021-12-29T21:45:04 Skip angle_end2end_tests failing on Linux AMD RX 5500 XT On Ubuntu 18.04 with 5.4.0-91 kernel Bug: angleproject:6855 Change-Id: I679e3a222f432ed5fac6b1ac429534f713387159 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3360788 Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Lingfeng Yang 6f1c39b5 2021-12-16T16:10:49 Vulkan: Restore color attachment mask-related blend states When we end up resetting blend state such as when changing to a depth-only FBO and back, we can end up adding attachment states. They need to be updated with the current GL blend state. Bug: b/210543392 Bug: angleproject:6828 Change-Id: I3419acb8081eb7d662576a75382bb8684cc0d29f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3346320 Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Lingfeng Yang <lfy@google.com>
Gert Wollny 0a28c6c6 2021-12-15T15:49:33 Capture/Replay: Capture some MultiDrawIndirect parameters It seems some new tests were added that fail Capture/Replay. Bug: angleproject:6180 Change-Id: I26ccc1e9defc7b7d66c7e26538df286230b47def Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3340945 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Gert Wollny <gert.wollny@collabora.com>
Gert Wollny 5f53268c 2021-11-04T17:56:48 Capture/Replay: Gather Program sources directly from call With CreateShaderProgramv the sources were collected from the attached shaders, wich gave complications, because normally the the shaders were detached right after program linking and a different handling was needed when capture was enabled, handling that let the replay tests fail. To overcome this gather the shader source directly from the call parameters instead of pulling it from the attached shaders. Bug: angleproject:6180 Bug: angleproject:6659 Change-Id: I248c1aa0f58b61519b938fce1a77fb25dc0a7cfc Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3262133 Reviewed-by: Tim Van Patten <timvp@google.com> Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Gert Wollny <gert.wollny@collabora.com>
Jamie Madill 4d893a93 2021-09-07T11:47:23 Re-land: "Trace Tests: Remove auto-generated code." No significant changes in the re-land. Bug: angleproject:5133 Change-Id: Ib5bb8fba3e9e2f1f648d5af251b7b2319c9f37dd Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3352432 Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Tim Van Patten 542f7d80 2021-12-22T19:36:27 Vulkan: Copy buffer data to correct cube map face TextureVk::copyBufferDataToImage() was failing to set region.imageSubresource.baseArrayLayer to the correct cube map face value, causing every glTexSubImage2D()-type call using GL_PIXEL_UNPACK_BUFFER to only copy to the GL_TEXTURE_CUBE_MAP_POSITIVE_X face. In the case of PUBG Mobile, this left all other faces with "random" data, resulting in corrupted reflections on things like water, the airplane, etc. Bug: b/194140619 Test: TextureCubeTestES3.CubeMapPixelUnpackBuffer Change-Id: I93a9219ce098985f9f4b906f8fe2e05850fb8d43 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3354091 Reviewed-by: Ian Elliott <ianelliott@google.com> Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Tim Van Patten <timvp@google.com>
Cody Northrop 2ebd583e 2021-12-22T11:24:43 Android: Remove setenv from common path In Android production stress testing, the setenv call was causing a race condition. To fix, only use setenv in the paths that need it as a performance optimization. Specifically, FrameCapture makes use of it every frame. Bug: angleproject:6822 Change-Id: I452f1ef8607ca9baf15d69246932c47454a3ce46 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3353893 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Ian Elliott <ianelliott@google.com> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Yuly Novikov 14af7a8d 2021-12-22T15:17:26 Log subprocess output in run_perf_tests.py To aid with debugging a flaky hang listing tests on Android. Bug: chromium:1279512 Change-Id: Icbdf753e1e7c21ab766fdd5767ca05d07b66485b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3353760 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Charlie Lao 2f3e6cc0 2021-12-13T17:40:18 Vulkan: Remove mShadowBuffer from BufferVk class. The shadow buffer was initially designed to avoid synchronization in glMapBuffer call while buffer itself is still busy. There are many optimization done inside BufferVk::mapImpl that try to avoid wait for GPU as much as we can by distinguish GPU write versus read, by detecting map call read/write intention by checking access bit, and finally by allocating a staging buffer to return a CPU friendly copy of data to caller. This shadow buffer implementation also have known bugs that are not keeping data in sync. With all these optimization added after initial mShadowBuffer implementation, I believe we do not have a good reason to still keep mShadowBuffer. And this has been disabled for months in main branch. This CL removes this code path completely which makes code a lot simpler. Bug: b/208323792 Change-Id: Ie5999e38b6120a371ec2e969f196e4754ebd0f8d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3313333 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: mohan maiya <m.maiya@samsung.com> Reviewed-by: Tim Van Patten <timvp@google.com> Commit-Queue: Charlie Lao <cclao@google.com>
Yuly Novikov 7dfa69e6 2021-12-22T12:51:38 Unskip MRTSigned and MRTUnsigned BlendIntegerTest VVL rolled into Chromium, so they should pass now. Bug: angleproject:6841 Change-Id: Iff2dde0852b0261970bd5c59009f5412050862ff Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3353896 Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Yuly Novikov 0e9353f6 2021-12-21T16:48:48 Skip RenderbufferDrawStencilThenUnresolveStencil on Linux Vulkan AMD Bug: angleproject:6845 Change-Id: I465f185f45aad43be51de882cbfea43090045aa1 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3352427 Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Charlie Lao bc9d2d7d 2021-12-07T16:16:47 Vulkan: Consolidate BufferHelper's code paths into one There are cases that BufferHelper may not sub-allocate from the pool. For example, when buffer is created from external memory. Right now we have two different code paths in the BufferHelper object and checking if suballocation object is valid or not and pick different code path. This CL consolidates both code path into one by making non sub-allocated case also creates BufferSUbAllocation object and owns a BufferBlock object. Bug: b/205337962 Change-Id: Iac82bdb0b69d424e4147b52d458ced6274e106a1 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3322100 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com> Commit-Queue: Charlie Lao <cclao@google.com>
Shahbaz Youssefi 4114fe23 2021-11-20T22:05:56 Vulkan: Simplify transform feedback emulation logic In [1], the program is transformed to not output transform feedback logic when transform feedback is inactive. With that change, it's no longer necessary to dedicate a driver uniform to indicate if transform feedback is active. [1]: https://chromium-review.googlesource.com/c/angle/angle/+/3294661 Bug: chromium:1209285 Change-Id: Ica725d0da08e2676f442fe6307962d367b443535 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3294702 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Jamie Madill ab288fea 2021-07-09T13:02:08 Upgrade restricted traces. (Re-land) Includes removing capture to temporary ResourceMaps, and including all source files in the JSON. Bug: angleproject:5133 Change-Id: I0508dd46a9f613a96ca3635f82b6904c0f2523a7 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3345222 Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jamie Madill c1f478fe 2021-12-20T12:37:33 Frame Capture: Allow for no FBO when running MEC. Multi-context captures use the surfaceless context extension. That was crashing MEC because we were assuming the context would have a Framebuffer. Bug: angleproject:5133 Change-Id: I6be12d332f4754f80c088d88973219327eca251a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3352084 Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jamie Madill eba2e620 2021-12-15T12:29:12 Capture/Replay: Fix uniform program indexing. We were using the "native" version of the program ID in the update call, which could overflow the bounds of our fixed-size program maps. Instead use the captured (and upper-bounded) version of the ID and only get the mapped ID when calling GetUniformLocation. Bug: angleproject:6431 Bug: angleproject:6816 Change-Id: I807bd07c9dcff6ba5a50991e28b0a58d16f7bc63 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3345220 Reviewed-by: Tim Van Patten <timvp@google.com> Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jamie Madill 73e764dc 2021-12-21T13:41:37 Suppress capture/replay tests. BlendIntegerTest.MRTSigned/* = NOT_RUN BlendIntegerTest.MRTUnsigned/* = NOT_RUN These tests became skipped after an expectations change. This CL also updates our luci config to run the trace bots on expectations changes to prevent this happening again. Bug: angleproject:6840 Change-Id: Id40b11995fa9be4613bdbaaa1e3e44f9edfeb464 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3352426 Reviewed-by: Tim Van Patten <timvp@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jamie Madill 1da7e3af 2021-12-21T15:55:38 Revert "Metal: Fix Webkit warnings in ANGLE build" This reverts commit 6706799186683dd3733c4610de09d84721aa08c8. Reason for revert: Includes pragma that disables a warning. Original change's description: > Metal: Fix Webkit warnings in ANGLE build > > Fix nullable warnings, unused functions > > Bug: angleproject:6781 > Change-Id: I063331e60d31a55b3cc9df0b41ace014d7d13659 > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3343174 > Reviewed-by: Kenneth Russell <kbr@chromium.org> > Commit-Queue: Kenneth Russell <kbr@chromium.org> Bug: angleproject:6781 Change-Id: Id5fce2afd0381030a974871b99e8adf075677bd1 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3352086 Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Shahbaz Youssefi a7e0d520 2021-12-21T00:16:25 Temporarily skip failing tests on Chromium Bug: angleproject:6841 Change-Id: Ie911e09d7e070c5fcec16449fe3fb7c47c8f6417 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3349335 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Shahbaz Youssefi 171bc07e 2021-12-20T13:10:33 Don't silently drop out-of-range bits in BitSetT Notes: - std::bitset's constructor accepts out-of-range bits (and drops them) - std::bitset with initializer list doesn't exist and is a BitSetT feature - |=, &= and ^= with non-bitset is a BitSetT feature - std::bitset's set(pos), reset(pos) and flip(pos) throw an exception if pos is out of the range of the bitset. This change adds an ASSERT in the functions that std::bitset would throw an exception, as well as functions that are only in BitSetT. Bug: angleproject:6840 Change-Id: Iab5bac40b05d4f7f29e0242ea0baa093721e3339 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3349980 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Charlie Lao eca427b2 2021-12-20T10:55:41 Vulkan: Add mutex to protect mVirtualBlock mVirtualBlock could be accessed from multiple thread when asyncCommandQueue is enabled, where the free call could come from the submission thread. This CL adds a mVirtualBlockMutex in BufferBlock and always take the lock when mVirtualBlock is been accessed. This CL also adds ConditionalMutex class for the general usage that a mutex is only used based on a boolean. Bug: angleproject:6840 Change-Id: Ib647b4ff12ebfc08f2a70192d39f16e15a1fc5f5 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3350798 Reviewed-by: Ian Elliott <ianelliott@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com> Commit-Queue: Charlie Lao <cclao@google.com>
Shahbaz Youssefi c1598640 2021-11-30T23:44:30 Vulkan: Improve mid-RP clear warning message One app does: - Draw - Draw - Clear depth, then disable it - Draw In this case, the message generated for mid-RP clear, suggesting the clear be done earlier is not meaningful as the previous draw calls did use the depth/stencil image. The message now includes an alternative suggestion to invalidate the depth/stencil image instead of clearing it. Note that the app may still legitimately do multiple passes in one render pass where depth/stencil is cleared in between, so the warning is not applicable in all cases. It's still useful to notice issues in more common scenarios. Bug: angleproject:2472 Change-Id: I3abbecf8c83b7b856c2430675e69b1471e91c0c4 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3308920 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Ian Elliott <ianelliott@google.com>
Peng Huang 4a03668d 2021-12-20T20:58:17 Address comment in CL 3347143 Bug: chromium:1278515 Change-Id: I7d82d39ad94c6357b0df292fc716749cf610290f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3349938 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Peng Huang <penghuang@chromium.org>
Shahbaz Youssefi cf8ac00a 2021-12-20T11:57:25 Vulkan: Fix MSRTT w.r.t stencil-only unresolve The stencil bit was being silently masked out in a bitset in FramebufferDesc that tracked whether the framebuffer requires any unresolve. If only stencil needs unresolving, this mask was zero, leading to an incorrect framebuffer getting pulled from the cache. A follow up change will add an ASSERT in BitSetT to catch such errors in the future. This issue was only reproducible on SwiftShader and AMD as the only implementers of VK_EXT_shader_stencil_export. Bug: angleproject:6840 Bug: angleproject:6324 Change-Id: I4f055982ebd75f621ec1e34b0d60eaa497c27b17 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3349979 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Peng Huang c07df6fe 2021-12-17T20:11:52 Disable vulkan device select layer for msan build The vulkan device select layer is not built with chrome, so this layer is not built with msan. So loading this layer will cause MemorySanitizer errors. Those errors are false positive. So disable it for msan build. Bug: chromium:1259170 Change-Id: I513d6dd3d4fbc16c62aaa3aa1e7cf299e3e4144a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3347143 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Peng Huang <penghuang@chromium.org>
Kimmo Kinnunen aabfe874 2021-12-17T15:43:22 Metal: Use the context device to Texture::resize Makes the resized texture to be attributed to the owner. Bug: angleproject:6832 Change-Id: Ia1eae1bb6c9e83e23fae51121f88d9ce37dc948b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3347642 Reviewed-by: John Cunningham <johncunningham@apple.com> Reviewed-by: Kenneth Russell <kbr@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Shahbaz Youssefi 34ea8111 2021-10-28T11:07:53 Reland "Vulkan: Don't expose MSRTT on SwiftShader" This is a reland of fb77afd3c76301e11f5c7397d9a63d283f86036c Original change's description: > Vulkan: Don't expose MSRTT on SwiftShader > > Emulating this extension on SwiftShader is neither useful nor efficient > (on the contrary, it hurts performance (which is true for all non-tiling > architectures)). This extension was exposed purely to increase testing > coverage, but is being disabled now as OOMs resulting from allocating > the implict multisampled image is confusing Chrome. Note that > SwiftShader exposes only a limited amount of memory. > > Bug: chromium:1263046 > Change-Id: Ia69b7fc63804169431885352a8f637a95ab08bd0 > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3251581 > Reviewed-by: Geoff Lang <geofflang@chromium.org> > Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Bug: chromium:1263046 Change-Id: I88415f3c1a7532eda5473da6acbd22acf14ae11c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3260330 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Kimmo Kinnunen 624e3c3d 2021-12-17T15:30:54 Fix dangerous use of AutoObjCPtr after ownership identity change Metal new* methods create objects with +1 retain count. AutoObjCPtr is intended to adopt this reference. Otherwise, like before this patch, the AutoObjCPtr holds object with +2 count. Before this patch, some but not all call sites donated the extra retain count to autoreleasepool "out of band", and as such the code did not leak that much. Bug: angleproject:6831 Change-Id: I72bcbc712f2cadbcbc6148c6aedfa7e151314518 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3347641 Reviewed-by: John Cunningham <johncunningham@apple.com> Reviewed-by: Kenneth Russell <kbr@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Alexey Knyazev 4a148e9d 2021-12-20T13:39:48 Revert "Vulkan: Suppress VUID-vkCmdDraw-blendEnable" This reverts commit 797ebdde9894b4411ed304a83fdaeb8d8a91fe56. Reason for revert: The VVL bug has been fixed. Original change's description: > Vulkan: Suppress VUID-vkCmdDraw-blendEnable > > A new VVL causes failures in BlendIntegerTest.MRT* > > Bug: angleproject:6355 > Change-Id: If62b1a7934574acaeb95601d7fb0a61dc5d9c99a > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3140159 > Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> > Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Bug: angleproject:6355 Change-Id: I769d34fada1c2db00513f9912ef178dcd1eb4ee9 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3347648 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Kimmo Kinnunen ede0b8b7 2021-12-17T14:35:47 Avoid ANGLE_MTL_AUTORELEASE inside ASSERT, it leaks on Release Avoid ANGLE_MTL_AUTORELEASE inside ASSERT, it leaks on Release. The create functions already return retained, instead of autoreleasepool retained, so owning the reference via adopting AutoObjCObj is as efficient as autoreleasepool on possible future ARC. Thus use AutoObjCObj, that is safer than autoreleasepool with C++ and works towards being able to perhaps remove use of autoreleasepool. Bug: angleproject:6830 Change-Id: I80f523d9a6846097a593fe94b5ea9715fa88ea15 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3347640 Reviewed-by: Kenneth Russell <kbr@chromium.org> Reviewed-by: John Cunningham <johncunningham@apple.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Kenneth Russell 001221f0 2021-12-16T21:41:29 Metal: upstream fix from WebKit for texture leak. Upstream fix by Kimmo Kinnunen for a leak of MTLTexture instances for render targets from: REGRESSION (r287068): [macOS arm64] TestWebKitAPI.GraphicsContextGLCocoaTest. UnrecycledDisplayBuffersNoLeaks is failing https://bugs.webkit.org/show_bug.cgi?id=234356 The leak would happen through a temporary render pass descriptor that would ref the render target texture. The descriptor was created without an autoreleasepool in call stack. Also fixes the error string leaks. Bug: angleproject:6827 Bug: angleproject:6829 Change-Id: I07ec961886a9fb8caad6df334293358a175eaf15 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3346682 Reviewed-by: Kyle Piddington <kpiddington@apple.com> Commit-Queue: Kenneth Russell <kbr@chromium.org>
Gregg Tavares b9f2d9cc 2021-12-16T13:08:22 Use text expectations to skip a test This instead of exiting the test in C++. Bug: angleproject:6826 Change-Id: I1e91f38f0f581821178b3b54ba809e59570b440a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3345615 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Gregg Tavares <gman@chromium.org>
Charlie Lao 6c894e82 2021-11-04T14:49:41 Vulkan: Replace BufferVk::getBufferAndOffset() with getBuffer() Now BufferHelper class already keeps offset information. There is no reason for BufferVk to have that information any more. Bug: b/205337962 Change-Id: I6e014fb480bfcd5018ef9231b0fb87a50021f179 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3266147 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Charlie Lao <cclao@google.com>
Lubosz Sarnecki f2736f6d 2021-11-19T14:24:55 Tests: Add My Talking Tom Friends trace. Test: angle_perftests --gtest_filter="*my_talking_tom_friends*" Bug: angleproject:6749 Change-Id: I7d86e7ff0607841ab4bf999f0e986f4d324c5c44 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3310797 Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Lingfeng Yang a93a3930 2021-12-08T20:36:07 Vulkan: Track enabled in VertexArray Previously in sequences such as glEnableVertexAttribArray(0) glDrawElements() glDisableVertexAttribArray(0) glEnableVertexAttribArray(0) glDrawElements() the second glDrawElements() would always be called with dirty enable. On some backends like Vulkan this could result in unnecessary pipeline changes. Bug: angleproject:6796 Change-Id: Ib44877b6030e8d0acede7cf5c591936ba3844b69 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3325208 Reviewed-by: Charlie Lao <cclao@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Lingfeng Yang <lfy@google.com>
Charlie Lao 83a670ab 2021-10-29T09:12:26 Vulkan: Implement BufferPool using VMA's virtual allocator VMA's allocation calls used to be sub-allocating a pool of memory. What we really want is sub-allocate a VkBuffer object. VMA recently added support to expose the underlying range allocation algorithm via APIs, which user can use it to sub-allocate any object. This CL uses that new virtual allocation API to sub-allocate from a pool of VkBuffers. In this CL we only switched BufferVk::mBuffer to sub-allocate from the BufferPool object. Bug: b/205337962 Change-Id: Ia6ef00c22e58687e375b31bc12ac515fd89f3488 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3266146 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Charlie Lao <cclao@google.com>
Lingfeng Yang 83679716 2021-12-14T19:02:48 Vulkan: Dirty vertex buffers if default attrib values changed In the call_break_offline trace, attribute index 4 is disabled then enabled before a draw. This redundant operation is currently not blocked and makes it to the Vulkan backend, resulting in handleDirtyGraphicsVertexBuffers. However, at the same time, we change the default attrib value for index 3. Which makes handleDirtyGraphicsVertexBuffers not redundant. We'll need to take into account cases when other attribute indices are not dirty and yet the default attrib value changes. Bug: angleproject:6802 Change-Id: I4a3ec411aa42f73a209fd0f06976d7ef2d21e027 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3331412 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Charlie Lao <cclao@google.com> Commit-Queue: Lingfeng Yang <lfy@google.com>
Charlie Lao 543f5750 2021-12-15T16:58:46 Vulkan: Disable protected memory for ARM ARM driver reports protected memory feature support. But when we enable the feature, even if the feature is not been used (i.e., no memory or queue is created with protected bit), we still see quite large performance drop, mainly due to excessive load/store unit activity. This CL disables this feature on ARM platform until we can find a good solution for it. Bug: angleproject:6817 Change-Id: I57e8b3f568f3818080e56b5d6ae9d1623732d236 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3343671 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Charlie Lao <cclao@google.com>
Maksim Sisov c7446ac4 2021-12-16T16:00:08 Add support for GL_MESA_framebuffer_flip_y 1/* LaCrOS, which is same as ChromeOS, relies on this extension and uses that with WebGL content. However, when LaCrOS uses ANGLE, the extension is not exposed and the WebGL content is y-inverted as direct scanout is always used. There are two bugs - 1) ANGLE should expose the extension so that direct scanout is possible (this CL fixes the issue. 2) LaCrOS shouldn't rely on the extension if it's not available (a bug to be fixed in Chromium). This particular CL consists of autogen files with framebufferParameteriMESA && getFramebufferParameterivMESA in Context marked as UNIMPLEMENTED. And also unimplemented validation. Bug: chromium:1231934 Change-Id: Id617846b0412f579df5b4ace6cb33c1ec6d403df Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3343492 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Maksim Sisov <msisov@igalia.com>
Lubosz Sarnecki 60383b41 2021-12-07T14:33:13 Tests: Add Dota Underlords trace. Test: angle_perftests --gtest_filter="*dota_underlords*" Bug: angleproject:5857 Change-Id: I795fd36d8bb3b0f9aed76bbe60886fc489bef89d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3342566 Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Lubosz Sarnecki <lubosz.sarnecki@collabora.com>
Lubosz Sarnecki f26687a0 2021-11-19T14:17:26 Tests: Add My Talking Tom 2 trace. Test: angle_perftests --gtest_filter="*my_talking_tom2*" Bug: angleproject:6613 Change-Id: I8cddc4913bc3b5a621aa48e0651af0c47a31c4f3 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3309126 Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Lubosz Sarnecki <lubosz.sarnecki@collabora.com>
Lubosz Sarnecki e7413adf 2021-12-15T18:35:29 system_utils_posix: Check for SEGV_MAPERR si_code. Android 12 emits a SEGV_MAPERR for mprotect page faults on the handler. Treat these callbacks as in range. This fixes the memory protection implementation on Android 12. Test: angle_unittests --gtest_filter="SystemUtils.PageFaultHandler*" Bug: angleproject:5857 Change-Id: I346b04230e1389de9f0a80b7f704dd65acfa9d82 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3340950 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Lubosz Sarnecki <lubosz.sarnecki@collabora.com>
Peng Huang 6e5fd816 2021-12-15T18:31:13 Support more ImageLayout in ConvertImageLayoutToGLImageLayout Bug: chromium:1264439 Change-Id: I35938a65981edf495bd9aafb8bfb17aa3ec9a66c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3341640 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Peng Huang <penghuang@chromium.org>
Gregg Tavares b26bb13a 2021-12-15T15:46:00 Metal: Remove references to xfbActiveUnpaused uniform Metal chooses a shader with or without support for transformfeedback so there's no point in checking in the shader if it's enabled or not. Bug: angleproject:6823 Change-Id: Iacd26b1e55b311a7cc7987dcd8b2f8c0c8727d62 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3343179 Reviewed-by: Kenneth Russell <kbr@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Gregg Tavares <gman@chromium.org>
Alexey Knyazev c4d434b9 2021-12-15T22:57:13 Metal: Enable OES_fbo_render_mipmap Bug: angleproject:6813 Change-Id: I643c114d7b37ca0532d2dda1964090a15e470842 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3342568 Reviewed-by: Kyle Piddington <kpiddington@apple.com> Reviewed-by: Kenneth Russell <kbr@chromium.org> Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
Kyle Piddington 67067991 2021-12-15T15:11:05 Metal: Fix Webkit warnings in ANGLE build Fix nullable warnings, unused functions Bug: angleproject:6781 Change-Id: I063331e60d31a55b3cc9df0b41ace014d7d13659 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3343174 Reviewed-by: Kenneth Russell <kbr@chromium.org> Commit-Queue: Kenneth Russell <kbr@chromium.org>
Gregg Tavares bda49325 2021-12-10T16:11:15 Add guards for 64 bit types on 32bit systems Bug: angleproject:6785 Change-Id: Iff043a22d398f5a7a1a46ae3cc4d2de5a6e3797e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3331639 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Kenneth Russell <kbr@chromium.org> Commit-Queue: Gregg Tavares <gman@chromium.org>
Yuly Novikov e7c9dbb8 2021-12-15T19:35:27 Skip SimpleStateChangeTestES3.OutOfBoundsByteAttribute on Pixel4 GLES Flaky crashes. Already skipped on Vulkan Bug: angleproject:6744 Change-Id: Ifc470ac2cf7d607b676501980f0c38f28547ef30 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3343726 Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Amirali Abdolrashidi 89e11878 2021-12-06T09:42:46 Vulkan: Fix the UAF issue with BufferData * Fixed the use-after-free issue with stale buffer handles after calling BeginTransformFeedback. * Added an observer for TransformFeedbackVk to update the buffer handles when buffer's storage is changed and the buffer update type is StorageRedefined. * Added a function to TransformFeedbackVk::onDestroy() to release the counter buffers in order to avoid crash due to TransformFeedbackVk::end() not being called, e.g., as a result of no glEndTransformFeedback() calls. Bug: chromium:1274316 Change-Id: I8ed477f36e6ff89dd4764bb59af564c69efe33e2 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3321789 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
Gregg Tavares ee1d3cf7 2021-12-10T12:29:16 Metal: Integrate Metal Binary Shader generation Bug: angleproject:6801 Change-Id: I2eb7072ed342f2b4cb5d9ee50ca9db75c5c7df69 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3331206 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Kyle Piddington <kpiddington@apple.com> Commit-Queue: Gregg Tavares <gman@chromium.org>
Kyle Piddington 3e7e2758 2021-12-14T15:48:42 Metal: Fix macOS ANGLE build on Catalina (10.15) SDK macOS Catalina does not have an enum for AppleGPUFamily6 In addition, platform includes for macOS 11.0 should use 110000, not 101600 (10.16) Bug: angleproject:6814 Change-Id: I9c6a0587aa22fb2e58d02fcb1779060de2632963 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3340104 Reviewed-by: Alexey Knyazev <lexa.knyazev@gmail.com> Commit-Queue: Kyle Piddington <kpiddington@apple.com> Reviewed-by: Kenneth Russell <kbr@chromium.org>
Amirali Abdolrashidi 05a44dd2 2021-11-29T12:16:58 Vulkan: Set content undefined on eglSwapBuffers * Invalidate the swap buffer content if the swap behavior is EGL_BUFFER_DESTROYED. * In that event, WindowSurfaceVk::getBufferAge() sets `age` to 0 and returns with no errors. * Unit tests in EGLBufferAgeTest.cpp updated to reflect this. * Minor cleanup in the test file. Bug: angleproject:6363 Change-Id: Ibab7ccb99c1be149588e6aad16bcc2d6dd989295 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3307776 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
Cody Northrop 26fa0fe6 2021-12-15T10:44:40 Tests: Add Asphalt 9 trace Test: angle_perftests --gtest_filter="*asphalt_9*" Bug: angleproject:5883 Change-Id: I8d180e6bd865d04ccc5c5938d62d86d1293de901 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3308852 Reviewed-by: Tim Van Patten <timvp@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Shahbaz Youssefi 5275f487 2021-12-14T21:03:54 Vulkan: Disable async command queue with Vulkan SCBs There is currently a threading hazard with ContextVk::mCommandPool, where ContextVk records to command buffers allocated from the pool while the async command queue thread is using other command buffers allocated from the same pool. While experimenting with Vulkan SCBs, disable the async command queue feature when using Vulkan SCBs. It is unknown whether async command queue with Vulkan SCBs is even worthwhile; if it proves to be, we could make ContextVk maintain multiple pools and rotate between them. Bug: angleproject:6811 Change-Id: Iac2e9337b5b109b2c7cb359109afe6ee386e4c34 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3340018 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Mohan Maiya feb599ad 2021-12-09T20:17:14 Invalidate EGL handles during eglTerminate EGL 1.5 spec says - Termination marks all EGL-specific resources, such as contexts and surfaces, associated with the specified display for deletion. Handles to all such resources are invalid as soon as eglTerminate returns Move EGL object handles to another set, tracking invalid objects, during display terminate. Destroy these invalid objects during eglReleaseThread Bug: angleproject:6798 Test: EGLMultiContextTest.NegativeTestAfterEglTerminate* Test: EGLMultiContextTest.RepeatedEglInitAndTerminate* Test: Android CTS WrapperTest.testThreadCleanup Change-Id: Ie160212c98367493e645d9d1c8260e7a30649386 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3329273 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com> Commit-Queue: mohan maiya <m.maiya@samsung.com>
Alexey Knyazev 32e23bb9 2021-12-15T13:30:37 Expand WebGLCompressedTextureAvailabilityTest Added assertions for OpenGL on macOS and a new regression test for emulated ETC1. Bug: chromium:1279908 Bug: chromium:1048244 Change-Id: I522a8db32dacad0bca0fba09aed1bcbafa7e3c80 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3340934 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Kenneth Russell <kbr@chromium.org> Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
Jamie Madill d6b9a259 2021-12-14T16:32:14 end2end_tests: Add SwS + AsyncQueue testing. This covers a hole in sanitizer testing. Bug: angleproject:6746 Change-Id: I3c9569f94f0d51f771c57d1d72743849a1cbba33 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3337984 Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Alexis Hetu cac81f07 2021-12-14T22:56:15 Return full error info when opening a library with dlopen This CL adds a parameter to OpenSharedLibrary and OpenSharedLibraryWithExtension which is used to return the full path of the library which was opened. If dlopen failed, the string also contains the result of dlerror which explains what the error was. Bug: chromium:1246171 Change-Id: I374c7e2dfa18853c8137b4cbea06af8db3fdb501 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3340020 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Alexis Hétu <sugoi@chromium.org>
Shahbaz Youssefi 90c3038e 2021-12-14T16:46:13 Vulkan: Fix desc set updates with Vulkan SCBs Since Vulkan SCBs are a command buffer in their own, we cannot aggregate desc set updates to be done once after all the binds have been recorded. This change makes sure that desc set updates are issued before bind, but this problem could potentially also be solved with VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT, by actually issuing the writes at the end of the secondary CB, just before closing it. Bug: angleproject:6811 Change-Id: I18e150b73a5881258679ba53a2d84acd2fc44edd Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3338390 Reviewed-by: Tim Van Patten <timvp@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Cody Northrop bfc7f09a 2021-12-14T17:14:47 Revert "Upgrade restricted traces to new trace format." This reverts commit 9907d86e3dfdb33c60b4e1b87712728a2988654b. Reason for revert: Causing failures on Intel Linux with native driver. Original change's description: > Upgrade restricted traces to new trace format. > > The new traces are significantly smaller due to unused Program > trimming. The new trace archive is at least 30% smaller after > compression, which should have a positive impact on Android > transfer time. We also reduced the source file count by about > 4000 from replay function merging, which should benefit > developer compilation time. > > Bug: angleproject:5133 > Change-Id: If461875006c2b918197cab9323c3553966c46e88 > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3335060 > Reviewed-by: Cody Northrop <cnorthrop@google.com> > Reviewed-by: Tim Van Patten <timvp@google.com> > Commit-Queue: Jamie Madill <jmadill@chromium.org> Bug: angleproject:6816 Change-Id: Ia8cdf302bfd17a6226bfb2df4b0467d4dfeee44b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3340333 Commit-Queue: Cody Northrop <cnorthrop@google.com> Reviewed-by: Tim Van Patten <timvp@google.com> Commit-Queue: Tim Van Patten <timvp@google.com>
Yuxin Hu 800c6971 2021-12-08T01:08:17 Modified buffer fallback format to smaller storage format Bug: angleproject:6726 Change-Id: I475d99fc0143f265e66cc4f7aa13fa0de8745169 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3315916 Reviewed-by: Lingfeng Yang <lfy@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Yuxin Hu <yuxinhu@google.com>
Cody Northrop 709d8727 2021-12-14T16:11:33 Revert "Trace Tests: Remove auto-generated code." This reverts commit 1c0bb44862fbc6107d73d056c2e07c59bcfa8d09. Reason for revert: Causing failures on Intel Linux with native driver. Original change's description: > Trace Tests: Remove auto-generated code. > > Bug: angleproject:5133 > Change-Id: I71a82071b1c667475f7fefcd6c8766a9de71141d > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3144215 > Reviewed-by: Cody Northrop <cnorthrop@google.com> > Reviewed-by: Tim Van Patten <timvp@google.com> > Commit-Queue: Jamie Madill <jmadill@chromium.org> Bug: angleproject:6816 Change-Id: Ic35145c8c3bb23ccf196b86def42f4a82f07aad5 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3340332 Commit-Queue: Cody Northrop <cnorthrop@google.com> Reviewed-by: Tim Van Patten <timvp@google.com> Commit-Queue: Tim Van Patten <timvp@google.com>
Shrek Shao 3da54250 2021-12-14T16:23:47 Skip MultithreadingTest.MultiContextDrawWithSwapBuffers On Linux Vulkan TSAN Bug: angleproject:6804 Change-Id: I67dbbf94948ddc3042fa90eddc704b0becb45db0 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3340335 Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Shrek Shao <shrekshao@google.com>
Alexey Knyazev 9d49d843 2021-12-15T00:36:54 Add WebGLCompressedTextureAvailabilityTest Acts as a regression test for https://crrev.com/c/3338624 Has been verified to catch the earlier error in the include guards. Bug: angleproject:6809 Bug: chromium:1279908 Change-Id: I248aca46db26eea304044835ea35fc2400ed459d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3338748 Reviewed-by: Kenneth Russell <kbr@chromium.org> Commit-Queue: Kenneth Russell <kbr@chromium.org>
Shrek Shao 5ee7dfbd 2021-12-14T12:55:39 BufferSubDataTest.SmallIndexBufferUpdateAfterDraw testSetUp fix Failing on Linux FYI GPU TSAN Release, although already skipped. Changing SetUp/TearDown to testSetup/testTearDown to avoid assert failures before skipped. Bug: angleproject:6810 Change-Id: Ibc746293fd0ad823e5b82c2d3db2862751b90f99 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3339603 Commit-Queue: Shrek Shao <shrekshao@google.com> Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Mohan Maiya e70a81b9 2021-12-14T13:41:28 Vulkan: Rectify typo introduced in 36fcf80b1f2a99 The method should have been updateYcbcrConversionDesc Bug: angleproject:6732 Test: Texture2DTestES3.*Yuv*Vulkan Change-Id: I67ab35ac07a6d751cbe3c3c29bdde21a5a7f5834 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3339605 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: mohan maiya <m.maiya@samsung.com>
Jamie Madill 1c0bb448 2021-09-07T11:47:23 Trace Tests: Remove auto-generated code. Bug: angleproject:5133 Change-Id: I71a82071b1c667475f7fefcd6c8766a9de71141d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3144215 Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Tim Van Patten <timvp@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Kyle Piddington 76d42082 2021-12-14T09:30:24 Metal: ETC and ASTC are missing on M1 Platform guards are incorrect in mtl_utils.mm. We need to account for macOS post 10.15, which now supports the apple GPU family query. Bug: angleproject:6809 Change-Id: Iae219a11ffe0ef0715681009aa24cbbc6fd2c61e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3338624 Reviewed-by: Gregg Tavares <gman@chromium.org> Reviewed-by: Alexey Knyazev <lexa.knyazev@gmail.com> Reviewed-by: Kenneth Russell <kbr@chromium.org> Commit-Queue: Kenneth Russell <kbr@chromium.org>
Mohan Maiya 36fcf80b 2021-12-11T20:55:53 Vulkan: Consolidate SamplerYcbcrConversionCache Now that SamplerDesc and ImageHelper have the fully qualified description of a VkSamplerYcbcrConversion, we can lazy allocate the conversion handle along with streamlining the interface to the SamplerYcbcrConversionCache class. Bug: angleproject:6732 Test: Texture2DTestES3.*Yuv*Vulkan Change-Id: I7deaa0220031bc4c500d88021459017bf937218c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3333629 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: mohan maiya <m.maiya@samsung.com>
Jamie Madill 9907d86e 2021-12-13T14:15:09 Upgrade restricted traces to new trace format. The new traces are significantly smaller due to unused Program trimming. The new trace archive is at least 30% smaller after compression, which should have a positive impact on Android transfer time. We also reduced the source file count by about 4000 from replay function merging, which should benefit developer compilation time. Bug: angleproject:5133 Change-Id: If461875006c2b918197cab9323c3553966c46e88 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3335060 Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Tim Van Patten <timvp@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Hailin Zhang 7b13a9ac 2021-12-09T18:37:59 Vulkan: Fix dynamic partial update buffer data issue. add test case for dynamic update buffer data. Signed-off-by: Hailin Zhang<hailinzhang@google.com> Bug: b/207714894 Change-Id: I8c1e93d152847c3162c0e2dd49abe3d899c859a0 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3328869 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Charlie Lao <cclao@google.com> Commit-Queue: Hailin Zhang <hailinzhang@google.com>
Peng Huang 32f572b7 2021-12-03T17:58:51 Support creating EGLImage from VkImage Bug: chromium:1264439 Change-Id: I520182143e748f25b44d0725f3f171b7b33a85d8 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3311131 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Peng Huang <penghuang@chromium.org>
Jamie Madill 7fc6c07c 2021-09-29T14:02:29 Capture/Replay: Update process for trace upgrading. Includes changes to the retracing script. Also includes documentation on how the process works. Bug: angleproject:5133 Change-Id: I1acfe338f3fe0282a0461c314274c761ed04bd2f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3193418 Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Tim Van Patten <timvp@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Lubosz Sarnecki c56f29a2 2021-11-05T13:14:35 BufferDataTest: Add more coherent buffer storage tests. Add UniformBufferMapped and VertexBufferMapped in BufferStorageTestES3. Add a test that writes to a mapped coherent bufferstorage from multiple threads. Test: angle_end2end_tests --gtest_filter="BufferStorageTestES3.*" Bug: angleproject:5857 Change-Id: I434c2462fb7217ab77667a6ec038f21835beb0b7 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3275764 Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Lubosz Sarnecki <lubosz.sarnecki@collabora.com>
Lubosz Sarnecki 9df048ef 2021-11-09T11:31:36 BufferDataTest: Do not require GL_EXT_map_buffer_range. For tests where glMapBufferRange and glUnmapBuffer is used, which is part of core GLES 3. Keep it as requirement for tests where glMapBufferOES and glUnmapBufferOES is used. This enabled these tests in the capture/replay test suit, as they are not skipped anymore. GL_EXT_map_buffer_range and GL_OES_mapbuffer are disabled during capture. Test: angle_end2end_tests --gtest_filter="BufferStorageTestES3.*" Bug: angleproject:5857 Change-Id: I4acdb428479f5d0dbd64670107d4c59a0b10df7c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3275763 Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Lubosz Sarnecki <lubosz.sarnecki@collabora.com>
Lubosz Sarnecki d4b8cd5e 2021-09-14T16:34:31 FrameCapture: Implement capture of coherent bufferstorages. Track buffers with the GL_MAP_COHERENT_BIT_EXT access flag in a CoherentBufferTracker on a per page basis using the PageFaultHandler and protection functions from system_utils. Check for dirty memory and capture it on draw calls. Bug: angleproject:5857 Change-Id: Ib098f96952db7583d3e6517570c179e7754f54b2 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3168629 Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Lubosz Sarnecki <lubosz.sarnecki@collabora.com>
Amirali Abdolrashidi 5b858acf 2021-12-09T14:22:14 Vulkan: Fix the offset issue in multiDrawIndirect * In MultiDrawElementsIndirect, it resets the index buffer offset (mCurrentIndexBufferOffset) to 0. * Added a unit test for MultiDrawElementsIndirect to make sure that the index buffer offset is reset properly. * Updated the test program in MultiDrawIndirectTest to include a multi-colored mode. * D3D11 and Metal tests regarding the following functions are disabled so more test coverage can be added: * glMultiDrawElementsIndirectEXT * glMultiDrawElementsInstancedBaseVertexBaseInstanceANGLE Bug: angleproject:6751 Change-Id: I81bb7b3aa9b6ad8a9283dd50728ec6250c3668ad Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3330737 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
John Cunningham 42bd4fc2 2021-12-10T14:58:17 Metal: add ANGLE_metal_create_context_ownership_identity. This Metal-specific EGL extension allows a given context and the GPU resources it allocates to be associated with a particular task ID on the system, for system-level bookkeeping purposes. Bug: angleproject:6795 Change-Id: I19ee0993564169b01c4a450e63dcfacd339b98b5 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3335172 Reviewed-by: Jonah Ryan-Davis <jonahr@google.com> Reviewed-by: Kenneth Russell <kbr@chromium.org> Commit-Queue: Kenneth Russell <kbr@chromium.org>
Jeff Vigil 1fc9b7c6 2021-12-08T14:10:36 EGL: Add queries for EGL_KHR_protected_content Add surface and context query for EGL_PROTECTED_CONTENT_EXT attribute. Bug: angleproject:6693 Change-Id: Iad3d8d7e0db89414c44a0101c26cda6e60308e71 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3324963 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Brandon Schade <b.schade@samsung.com>
Gregg Tavares afca80a8 2021-12-09T17:48:49 Metal:Add debug info for shaders This should fix the WEBGL_debug_shader_info CTS test Bug: angleproject:6788 Change-Id: I89e18f94ea3199149c252355372648b5e328e1ed Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3329204 Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Reviewed-by: Kenneth Russell <kbr@chromium.org> Commit-Queue: Gregg Tavares <gman@chromium.org>
Jamie Madill f60b152c 2021-12-06T10:19:53 Frame Capture: Merge small frames into single sources. By buffering up the replay functions before writing them out into sources, we can reduce the number of replay files by a large margin. Bug: angleproject:5133 Change-Id: I0a556fd1a3a5f2dcc8a26b761e885c9b7e464cf5 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3316200 Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Tim Van Patten <timvp@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Shahbaz Youssefi b7a42c88 2021-12-13T15:53:07 Vulkan: Remove VK_EXT_swapchain_colorspace check We don't make use of this extension since https://chromium-review.googlesource.com/c/angle/angle/+/3208689. Bug: angleproject:2514 Change-Id: I8b8edf5006ac1c3eeeefcadbe77249a5a6a5dda7 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3335070 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Jamie Madill f40e83cb 2021-09-10T19:15:17 Reduced "rx::vk::kInFlightCommandsLimit" from "100" to "50". The "100" value is too high and causes "S21 Adreno" block in "vkQueueSubmit()". This is a temp solution. Patch authored by Igor Nazarov <i.nazarov@samsung.com> Bug: angleproject:6401 Change-Id: Ie7f9c8ef5311b17325640cae0f613ece768c0fa3 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3165666 Reviewed-by: Charlie Lao <cclao@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Lingfeng Yang ea03bf47 2021-12-03T08:48:50 Vulkan: fix crash when clearing stencil Previously, we cast the originally-32-bit mask to 8 bits, and then crashed ourselves in the assert. Also optimize away the stencil based on 8 bit explicitly in the frontend. Bug: chromium:1275858 Change-Id: I0b03a17e72f5a4540b5c4605353eb1fde898057d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3315158 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Charlie Lao <cclao@google.com> Commit-Queue: Lingfeng Yang <lfy@google.com>
Yuly Novikov a27be084 2021-12-13T14:18:33 Skip GLSLTest_ES31.StructAndArrayEqualOperator on Pixel 4 Flaky OOM. Bug: angleproject:6805 Change-Id: I50f42c6ce486f68563c08c4e9b3aab1b4876ca0b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3334877 Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Jamie Madill e8b186c9 2021-12-09T09:45:20 Frame Capture: Don't unmap regenned buffers in reset. These buffers are deleted and recreated, so unmapping them gives a "resource not mapped" error during replay. Found when working on the "world_war_doh" trace. Bug: angleproject:5133 Change-Id: Id1e6318c44a2a09fa643ef0a72f1d03d8396e5fb Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3327862 Reviewed-by: Tim Van Patten <timvp@google.com> Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jamie Madill a24919e7 2021-12-09T10:04:25 Frame Capture: Clear array buffer binding in MEC. This should allow us to properly reset buffer state when capturing vertex attribute pointer state in the per-context (not shared) setup function. Also adds a missing replay state buffer binding update. Fixes a state serialization difference in "badland". Bug: angleproject:5133 Change-Id: I8509dbf7211726ff47f4e7e5ff86a0eb8726d75c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3327861 Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Brian Sheedy a1e066db 2021-12-10T12:26:01 Suppress Mac 12 failure Suppresses a failure in PointSpritesTest.PointSizeAboveMaxIsClamped on Metal with Mac 12. Bug: angleproject:6800 Change-Id: Ib6646b31e7d0231e2cd1284301792216bd5c70d6 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3331200 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Gregg Tavares a1b9eb68 2021-12-10T16:36:46 Replace IOSurfaceSurfaceEAGL.mm table with less strict padding Bug: angleproject:6783 Change-Id: Id67f581af0742b47fc5ea38de616391e57b763de Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3331641 Reviewed-by: Kenneth Russell <kbr@chromium.org> Commit-Queue: Gregg Tavares <gman@chromium.org>
Kyle Piddington 194687e7 2021-12-06T13:40:24 Metal: Fix M1 and iOS synchronization for readPixels ReadPixels does not implicitly flush context before reading on iOS and macOS hardware due to shared memory. look for any pending GPU Work, and flush the command buffer if needed. Bug: angleproject:6803 Change-Id: I5688b031ecffcd7427263041d4e33ae256f68af6 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3318592 Reviewed-by: Kenneth Russell <kbr@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com> Commit-Queue: Kyle Piddington <kpiddington@apple.com>
Gregg Tavares 2d6caae4 2021-12-10T17:25:58 Metal: Add maximum render target size validation Bug: angleproject:6790 Change-Id: I4a7e7285e040cc68e4fc16bb653f6d1512f541c9 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3331671 Reviewed-by: Kenneth Russell <kbr@chromium.org> Commit-Queue: Gregg Tavares <gman@chromium.org>
Gregg Tavares cf9ab647 2021-12-10T15:42:36 Add early out validation in drawArraysCommon Bug: angleproject:6791 Change-Id: I60de6806dae9c917c6db24a18f586e3b0aa2154e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3331414 Reviewed-by: Kenneth Russell <kbr@chromium.org> Commit-Queue: Gregg Tavares <gman@chromium.org>