src


Log

Author Commit Date CI Message
Lubosz Sarnecki a7d53cb1 2021-03-30T13:05:43 formatutils: Add 8 unused bits to 24 bit depth formats. Add 8 unused bits to unsized GL_DEPTH_COMPONENT and sized GL_DEPTH_COMPONENT24. This results in the corresponding gl::InternalFormat exposing 4 bytes per pixel and fixes a crash when serializing frame buffer depth attachements in FrameCapture for GLES1 on Vulkan. This patch fixes all comparisions crashing in the capture/replay GLES1 tests on SwiftShader. Bug: angleproject:5799 Change-Id: I39c4309d5c7a1740dfd21c53f116b7e175b64847 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2794381 Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Lubosz Sarnecki <lubosz.sarnecki@collabora.com>
Gert Wollny 19b7815d 2021-04-27T13:10:36 Angle: drop ANGLE_serialized_context_string from requestable This extension is always needed for replay, and it should always be enabled. By adding the extension using esOnlyExtension it is no longer marked as requestable and WebGL compatibility will no longer disable the extension. Bug: angleproject:5851 Change-Id: I11c8f684b3bfe76c219a9210df0a2c5cccb706f3 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2853583 Commit-Queue: Gert Wollny <gert.wollny@collabora.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tim Van Patten 54e99d36 2021-04-23T13:02:43 Vulkan: Cleanup garbage when destroying EGL images SurfaceFlinger will optimistically create EGL images just in case it does need them in the future, since creating them can be slow and waiting until they're necessary can cause jank on 90hz+ devices. However, since the images are never actually used, ANGLE's garbage is never cleaned up so vkDestroyImage() and the memory is never freed. This can lead to exhausting the device's memory when many EGL images are allocated. For example, when running the CTS test CtsBiometricsTestCases. This CL adds a call to always cleanup the renderer's garbage when an EGL image is destroyed via eglDestroyImageKHR(), since we can't know if a draw will ever be performed in the future (which would normally cleanup the garbage). Bug: b/184388756 Test: atest CtsBiometricsTestCases Change-Id: I104c05c7be44f1e57123ac7eed23effaa982837a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2848131 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Jason Macnak <natsu@google.com> Reviewed-by: Charlie Lao <cclao@google.com> Commit-Queue: Tim Van Patten <timvp@google.com>
Geoff Lang ce89d99f 2021-04-29T12:03:30 GL: Flush after framebuffer change on Mac 9th gen Intel GPUs Speculative fix for crashes during flush on Mac. Mirrors the flush_on_framebuffer_change workaround in Chrome from http://crbug.com/783979 Bug: chromium:1181068 Change-Id: Ic84b1bfc44babf27016b306393da308d504d7fd9 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2859984 Reviewed-by: Peng Huang <penghuang@chromium.org> Reviewed-by: Jonah Ryan-Davis <jonahr@google.com> Commit-Queue: Geoff Lang <geofflang@chromium.org>
Jonah Ryan-Davis 9c66461c 2021-04-29T11:47:16 Suppress VUID-VkImageViewCreateInfo-pNext-01585 temporarily Vulkan validation failures are happening on ComputeShaderTest on Linux and Windows with AMD. Suppress for now while the issue is investigated Bug: angleproject:5912 Change-Id: If89f7c85bb311a68d6cab85e397112b4178e34d7 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2860044 Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Gert Wollny 422ec18a 2021-04-26T10:40:04 tests: Move DrawAfterFlushWithNoStateChange to ES3 The test uses Vertex Array Objects, and these are only supported from GLES 3.0 on, or by using the extension OES_vertex_array_object, so make it part of the StateChangeTestES3 set. With that we also enable the test. Bug: angleproject:5855 Change-Id: I0cfb5d23d19e3db8eefffd9d52b744d068666606 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2850642 Commit-Queue: Gert Wollny <gert.wollny@collabora.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Gert Wollny 078a2ba6 2021-04-19T11:52:38 Capture/Replay: Print capture and replay exe in verbose mode When running the test script to capture and replay it is helpful to know the locations of the executables that are run to make it simpler to locate them for debugging. Bug: None Change-Id: Ia43bd9863e94058515d9023981863ad6c711285e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2850640 Commit-Queue: Gert Wollny <gert.wollny@collabora.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Charlie Lao a766ab14 2021-04-20T09:29:29 Vulkan: minimize-gpu-work: Use 1x1 offscreen When minimize-gpu-work is requested, the idea is to have GPU work reduced to minimum. Without shrink the offscreen window to 1x1, the driver load/store op may still have to load entire surface which could be costly. This CL reduces the offscreen surface size to 1x1 when --minimize-gpu-work is specified. Bug: b/184766477 Change-Id: Ic8d9d4c2fe8295a0a5808dcee35120fdd20e0f56 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2840963 Commit-Queue: Charlie Lao <cclao@google.com> Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill ccc0fbaa 2021-03-24T17:56:38 Vulkan: Related fixes for buffer descriptor set cache. Includes some stats counter gathering and a few related refactors and cleanups. Also includes a new overlay widget. Bug: angleproject:5736 Change-Id: Ida8d2cd815c5b598c6a442dd9bbfdf51e9c05180 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2785431 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Charlie Lao <cclao@google.com> Reviewed-by: Tim Van Patten <timvp@google.com>
Alexey Knyazev 53b89b83 2021-04-24T13:26:02 Metal: Add ASTC HDR support ASTC HDR is a superset of ASTC LDR, so always use HDR enums on supported platforms because there is no such difference in OpenGL ES. Bug: angleproject:2634, angleproject:5672 Change-Id: I19a3212bcb949aa9cdeb682ab000aa03125f04a9 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2848509 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Le Hoang Quyen <le.hoang.q@gmail.com> Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
Cody Northrop 61288549 2021-04-27T17:42:21 Vulkan: Turn on cubemap arrays for Qualcomm The feature works on Pixel 3 and later, so only disable it on Pixel 2. Bug: angleproject:5143 Change-Id: I824fc9ea71cb612fd99e23b7f37a1a3c278d92aa Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2855218 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: Cody Northrop <cnorthrop@google.com>
Charlie Lao 939dc8d9 2021-04-21T18:33:00 Vulkan: minimize-gpu-work: Skip synchronization for glMapBufferRange glMapBufferRange call requires CPU and GPU synchronization. Different drivers implement this differently. Some may choose to keep multiple copies of data to reduce the synchronization overhead while others may choose to wait for GPU access to finish to save memory. While this behavior is important, it should be looked under the scope of overall game performance and we can write a standalone test for this. When --minimize-gpu-work is specified, we mainly care about CPU overhead of driver logic of state tracking. For this purpose, we should get this out of picture in order to expose the true picture of what we intended to see. This CL always adds GL_MAP_UNSYNCHRONIZED_BIT to the access bit to avoid driver to do synchronization or make COW. Bug: b/184766477 Change-Id: I36228a4ed9913e26aa9ad4e8446fb42ee0182c18 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2847101 Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Charlie Lao <cclao@google.com>
Tim Van Patten 7444466c 2021-04-19T18:44:13 Reland "Capture/Replay: Reset GL Fence Sync objects" This is a reland of 9b4fd5456e3cc8c5412af96212d2840b422208b5 This fixes the original CL by moving where setCaptureActive() is called to allow the first replay source file to be written. Original change's description: > Capture/Replay: Reset GL Fence Sync objects > > Asphalt 9 uses GL Fence Sync objects during rendering, which results in > Fence Sync objects being created during setup and deleted while > replaying frames. When the replay is restarted, the Fence Sync objects > that were created during setup and deleted during the replay need to be > recreated during the reset phase. > > Bug: angleproject:5883 > Bug: angleproject:4599 > Change-Id: I118f2b7208c4d512ab646b10f52b3a0936895089 > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2838237 > Commit-Queue: Tim Van Patten <timvp@google.com> > Reviewed-by: Cody Northrop <cnorthrop@google.com> > Reviewed-by: Jamie Madill <jmadill@chromium.org> Bug: angleproject:5883 Bug: angleproject:4599 Bug: angleproject:5900 Change-Id: I5e1d901d8875007691699b7b973f3fb7db027337 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2850758 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Tim Van Patten <timvp@google.com>
Alexis Hetu c02d5f12 2021-04-27T13:45:05 Fix using VK_EXT_provoking_vertex with VVL Vulkan Validation Layers (VVL) automatically rejects and removes any unknown pNext pointer in an pNext chain submitted to the driver. For this purpose, a mechanism was introduced by VVL in order to allow ANGLE to allow some of our custom pNext entries to go through VVL without being removed. This had been used for only 1 of the 3 entries in the VK_EXT_provoking_vertex extension, causing it to be properly exposed, but impossible to use. This CL corrects this by adding the missing entries. Bug: angleproject:5902 Change-Id: If6478b3aa776513b92420736fa1216b014320b02 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2854815 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Alexis Hétu <sugoi@chromium.org>
Charlie Lao 7b77dc5b 2021-04-22T09:58:33 Vulkan: minimize-gpu-work: Skip data copy when possible When --minimize-gpu-work is specified while replaying app traces, the goal is to avoid any GPU work when possible and focus on driver cpu logic overhead. Data copy can be lengthy and each driver optimize it differently for some real world usage scenario. This should be looked along with normal app trace playback performance. When --minimize-gpu-work is specified, we want to leave this out of picture. Previously I have fixed TexImage2D by overwriting pixel pointer with null. But there is a hole here when PBO is used. This CL fix the case that when data is sourced from PBO, we ensure to skip data copy as well. This CL also noops TexSubImage call instead of doing 1x1 copy. Again depends on driver implementation, some may use CPU others use GPU which will have different overhead. We can easily write a test to cover these performance optimizations. By skipping the subImage call here we will have less noise to deal with for CPU overhead investigation. Bug: b/184766477 Change-Id: I84a5d26d2f25f8f0a6c5c9da72737906d6356a53 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2847100 Commit-Queue: Charlie Lao <cclao@google.com> Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
John Plate 16a919b1 2021-04-27T11:36:11 Add stubs for CL platform layer back ends Bug: angleproject:5904 Change-Id: If23c7f76013a17c3c67c13194566438035beb3d1 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2853582 Commit-Queue: John Plate <jplate@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Jamie Madill be7049d7 2021-04-20T10:03:33 Vulkan: Redesign buffer descriptor set cache key. Instead of writing the bitset masks, iterate up until the last active buffer. Write zeros instead of skipping spaces. This is a bit simpler to implement and also fixes a bug where empty buffers could cause us to write invalid handles. Bug: angleproject:5736 Change-Id: I785ef18ef5ae45109ec7d6e0b079b79a9984a1f8 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2837848 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Charlie Lao <cclao@google.com> Reviewed-by: Tim Van Patten <timvp@google.com>
John Plate cddb2003 2021-04-23T18:26:51 Stubs for CL validation entry points Bug: angleproject:5775 Change-Id: Ic3b15efdf602bad8f5f170f03ba24b421a398ca8 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2848504 Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: John Plate <jplate@google.com>
Peng Huang 19f24ede 2021-04-26T18:05:31 Disable workderContext on Android Bug: chromium:1202928 Change-Id: I54c4c28c30714fea60b4b6f3dd3ec49101341602 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2851362 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Peng Huang <penghuang@chromium.org>
Mohan Maiya 904ac340 2021-04-26T15:54:25 Bug fix for WaitClient, WaitGL and WaitNative It is valid to call eglWaitClient, eglWaitGL and eglWaitNative when there is no active context in the current thread. Update code to account for that possibility. Bug: angleproject:5898 Test: EGLSyncTest.WaitClient* EGLSyncTest.WaitGL* EGLSyncTest.WaitNative* Change-Id: I81f05a27f1f641cf8986e2e6c05c183ea8471889 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2849587 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Mohan Maiya <m.maiya@samsung.com>
Shahbaz Youssefi cd4a63f5 2021-04-26T11:52:02 Vulkan: Fix ASSERT in CreateRenderPass2 RenderPass2 was used for when a depth/stencil attachment is needed, or the VK_EXT_multisampled_render_to_single_sampled extension. The logic that decided this was "has D/S resolve || has MSRTSS extension", but the function itself asserted that the render pass is using MSRTSS if not D/S resolve. This caused an assertion failure on platforms where MSRTSS is present, but a non-MSRTSS render pass is used. Bug: chromium:1201455 Change-Id: Iefd26a071303c703a322d946f82474f85f5bf767 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2849180 Reviewed-by: Tim Van Patten <timvp@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Mohan Maiya 61167d52 2021-04-24T09:50:31 Add EXT_primitive_bounding_box entry points Addition of the entry points for GL_EXT_primitive_bounding_box extension. Bug: angleproject:5896 Change-Id: I0dce407d2826ce3f730125d7c03f1233420f6780 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2849615 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Mohan Maiya <m.maiya@samsung.com>
Mohan Maiya 84b31c03 2021-04-25T08:30:14 Vulkan: Fix bug in VkImageFormatListCreateInfoKHR On some vendors VVL throws the following error, snippet only - [ VUID-VkImageViewCreateInfo-pNext-01585 ] Validation Error ... image was created with a VkImageFormatListCreateInfo in pNext of vkImageCreateInfo, but none of the formats match the VkImageViewCreateInfo::format ... The Vulkan spec states: If a VkImageFormatListCreateInfo structure was included in the pNext chain of the VkImageCreateInfo structure used when creating image and VkImageFormatListCreateInfo::viewFormatCount is not zero then format must be one of the formats in VkImageFormatListCreateInfo::pViewFormats. It looks like VkImageFormatListCreateInfoKHR::pViewFormats needs to contain all formats including the format of the VkImage itself. Bug: angleproject:5281 Change-Id: I93c6900d99791ef4f9f116cb114f068e0a318bf4 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2849566 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Mohan Maiya <m.maiya@samsung.com>
Jamie Madill 3839fa5b 2021-04-26T13:08:15 Revert "Capture/Replay: Reset GL Fence Sync objects" This reverts commit 9b4fd5456e3cc8c5412af96212d2840b422208b5. Reason for revert: Breaks capture: INFO:root:Passed: 0, Comparison Failed: 0, Crashed: 0, CompileFailed 0, Skipped: 745, Timeout: 0 Bug: angleproject:5900 Original change's description: > Capture/Replay: Reset GL Fence Sync objects > > Asphalt 9 uses GL Fence Sync objects during rendering, which results in > Fence Sync objects being created during setup and deleted while > replaying frames. When the replay is restarted, the Fence Sync objects > that were created during setup and deleted during the replay need to be > recreated during the reset phase. > > Bug: angleproject:5883 > Bug: angleproject:4599 > Change-Id: I118f2b7208c4d512ab646b10f52b3a0936895089 > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2838237 > Commit-Queue: Tim Van Patten <timvp@google.com> > Reviewed-by: Cody Northrop <cnorthrop@google.com> > Reviewed-by: Jamie Madill <jmadill@chromium.org> Bug: angleproject:5883 Bug: angleproject:4599 Change-Id: I56c682e1d90dcdde7b18c941aad976825de3af42 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2851057 Reviewed-by: Jamie Madill <jmadill@chromium.org> Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Cody Northrop a25f21ee 2021-04-25T19:54:32 Tests: Add Candy Crush Soda Saga trace Test: angle_perftests --gtest_filter="*candy_crush_soda_saga*" Tbr: jmadill@google.com,timvp@google.com Bug: b/186362192 Change-Id: I9a1f9663541e3b97d437a1803e8fe079a5dbd2b8 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2846187 Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Cody Northrop 3182095f 2021-04-23T17:51:23 Tests: Add Higgs Domino Island trace Test: angle_perftests --gtest_filter="*higgs_domino_island*" Tbr: jmadill@google.com,timvp@google.com Bug: b/186267543 Change-Id: Ic7154337724b075bcad1367a24ae7ebeaf65ce6c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2848133 Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Alexey Knyazev 8df3e5f2 2021-04-23T12:39:06 Metal: update format caps Added MTLGPUFamilyApple6 and MTLGPUFamilyApple7 caps. Bug: angleproject:2634, angleproject:5672 Change-Id: Icc35f823cdd018246a8ac3b1179adc81584fb204 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2846832 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Le Hoang Quyen <le.hoang.q@gmail.com> Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
Tim Van Patten 9b4fd545 2021-04-19T18:44:13 Capture/Replay: Reset GL Fence Sync objects Asphalt 9 uses GL Fence Sync objects during rendering, which results in Fence Sync objects being created during setup and deleted while replaying frames. When the replay is restarted, the Fence Sync objects that were created during setup and deleted during the replay need to be recreated during the reset phase. Bug: angleproject:5883 Bug: angleproject:4599 Change-Id: I118f2b7208c4d512ab646b10f52b3a0936895089 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2838237 Commit-Queue: Tim Van Patten <timvp@google.com> Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
John Plate ea76c5ad 2021-04-23T13:37:20 Add scrict type checking for reinterpret_cast Bug: angleproject:5891 Change-Id: I4077fea7fde91465fa71df843c313c4dd8e31e0a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2846835 Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: John Plate <jplate@google.com>
Cody Northrop 7a161a56 2021-04-23T13:54:18 Tests: Add Gardenscapes trace Test: angle_perftests --gtest_filter="*gardenscapes*" Tbr: jmadill@google.com,timvp@google.com Bug: b/186246356 Change-Id: Ie9395080ce1947b633b16c807aecbd52cb31c990 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2847984 Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Yuly Novikov d824908f 2021-04-23T16:31:44 Increase kMaxExtensionNames https://github.com/KhronosGroup/Vulkan-Tools/pull/502 adds new extensions, so 200 is no longer enough. Bumping up to 400. Bug: chromium:1201987 Change-Id: Icbad7637649c2236a8c46e577c1c0bd0dbccd633 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2848487 Commit-Queue: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Cody Northrop 7caff9d8 2021-04-23T09:05:34 Tests: Add Homescapes trace Test: angle_perftests --gtest_filter="*homescapes*" Tbr: timvp@google.com,jmadill@google.com Bug: b/186215022 Change-Id: I83949d4a5450d512d010b2d91c45da618fae0aac Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2848127 Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Mohan Maiya 2aa68eba 2021-04-20T10:37:45 Vulkan: Update unsized array error Update the error condition to reflect actual usecase - an unsized array is declared in a shader other than tessellation shader. Bug: angleproject:5557 Test: KHR-GLES32.core.texture_cube_map_array.texture_size_tesselation_con_sh Change-Id: I3547f52a26a5c450ac7b6df65d026c3c38f7c71d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2823576 Commit-Queue: Mohan Maiya <m.maiya@samsung.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Gert Wollny 3e1af85a 2021-04-19T18:12:30 Capture/Replay: Handle bindGeneratesResource in trace meta data Bug: angleproject:5844 Change-Id: I0243cab70b5833efd83b0d75a1801f68025ee291 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2835889 Commit-Queue: Gert Wollny <gert.wollny@collabora.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Gert Wollny c1da2794 2021-04-19T11:49:41 Capture/Replay: Handle ClientArraysEnabled in trace meta data Bug: angleproject:5848 Change-Id: Ieba325e2b5efa3242b24cafa8363e562c258546c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2835888 Commit-Queue: Gert Wollny <gert.wollny@collabora.com> Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Cody Northrop 1800d1d9 2021-04-22T12:09:31 Tests: Add Ludo King trace Test: angle_perftests --gtest_filter="*ludo_king*" Tbr: jmadill@google.com,timvp@google.com Bug: b/186121782 Bug: angleproject:5888 Change-Id: I41cd5924c109e4d9448227c535a9fb92a5b52cb3 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2845374 Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Geoff Lang da791e3e 2021-04-22T09:46:49 D3D11: Disable CompositorNativeWindow11 in Chromium builds. CompositorNativeWindow11's IsValidNativeWindow can only return true or crash. If a user passes in an invalid window handle, ANGLE's D3D11 backend will always crash. Ideally this window type would be exposed through an extension and the user passes in an enum telling ANGLE that the window is an ISpriteVisual instead of ANGLE trying to detect it from a void pointer. Bug: chromium:1176118 Change-Id: Ia7568adcd929dcd9200c7da2d0a991da55e1e89a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2846800 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org>
John Plate e25f3b10 2021-04-21T21:43:46 Generate empty CL object classes Bug: angleproject:5886 Change-Id: I01566f40e85bd7f5531536fdc1df42965622a939 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2844969 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: John Plate <jplate@google.com>
Alexey Knyazev f2b47418 2021-04-22T18:32:37 Align BPTC format names in angle::FormatID Use the same naming convention as other similar formats. Bug: angleproject:5731 Change-Id: I187881f4bc4691a0963502ed41f42ab0ebf4171c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2846824 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
Geoff Lang ccd984ff 2021-04-08T12:06:57 Reland "Add a Vulkan feature to compress float32 vertex formats." This reverts commit 8ace36f8c15877264fb58af7b54baad635899dca. Original change's description: > Revert "Add a Vulkan feature to compress float32 vertex formats." > > Bug: b/167404532 > Bug: b/161716126 > Change-Id: I95157a006d5c1fd2d3c0c2c2be37fa0403c07f93 > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2510011 > Reviewed-by: Tim Van Patten <timvp@google.com> > Reviewed-by: Jamie Madill <jmadill@chromium.org> > Commit-Queue: Geoff Lang <geofflang@chromium.org> Bug: b/167404532 Bug: b/161716126 Change-Id: Ic6811fe3a7124e6eb1efe7c72a1a03a120217753 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2815260 Commit-Queue: Geoff Lang <geofflang@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com> Reviewed-by: Charlie Lao <cclao@google.com>
Jamie Madill e0e5eb84 2021-04-21T20:58:12 Fix ScanReverse on posix/32-bit. The use of the __builtin_clz intrinsic and the associated math were incorrect. Bug: angleproject:5736 Change-Id: I9627c7fc179c0e1bffeecaee39f7a88d9c62d079 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2845232 Commit-Queue: Yuly Novikov <ynovikov@chromium.org> Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Ian Elliott e167d453 2021-04-21T14:14:33 Vulkan: Allow logging with VVL and/or AGI debug utils to be used A recent change allowed logging API commands on Android to be used with Vulkan Validation Layers (VVL). That broke debug utils for AGI (i.e. when the ANGLE-built VVL is not being used). This allows both use cases to be supported. Bug: b/183133198 Change-Id: Ide83ed63fad99d0eca97998365276a1ef365a4e4 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2842325 Commit-Queue: Ian Elliott <ianelliott@google.com> Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Tim Van Patten <timvp@google.com>
Jamie Madill cfc21345 2021-04-21T09:42:51 Add first() and last() to BitSetArray. These helper functions return the bounds of the 1 bits in the array. Also required implementing ScanReverse the same way we implemented ScanForward. Bug: angleproject:5736 Change-Id: Ied945c57cd85ca7bc91dcc7a1168a74b3a59fce4 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2842347 Reviewed-by: Mohan Maiya <m.maiya@samsung.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Charlie Lao <cclao@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jamie Madill f78927b0 2021-04-21T13:05:46 Remove libGLESv1_CM static. These entry points are already duplicated into libGLESv2. Including them in the static build causes a duplicate symbol error on Android. Bug: angleproject:2344 Change-Id: I56a2f2029e7da49215e64484c1d1316add6ff1c3 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2842354 Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Shahbaz Youssefi 718022e8 2021-04-16T20:50:34 Reland "Revert "Vulkan: Suppress draw-time push constant VVL warnings. "" This is a reland of b027dfeb83d028ae72ed1957ba81e6c5dc3baffa Original change's description: > Revert "Vulkan: Suppress draw-time push constant VVL warnings. > " > > This reverts commit f34b40dab0487bbabc37645918bed87048107e14. > > Reason for revert: VVL bug is fixed. > > Original change's description: > > Vulkan: Suppress draw-time push constant VVL warnings. > > > > > > > > VUID-vkCmdDraw-None-02698 > > > > VUID-vkCmdDrawIndexed-None-02698 > > > > VUID-vkCmdDrawIndirect-None-02698 > > > > VUID-vkCmdDrawIndirectCount-None-02698 > > > > VUID-vkCmdDrawIndexedIndirect-None-02698 > > > > VUID-vkCmdDrawIndexedIndirectCount-None-02698 > > > > VUID-vkCmdDispatch-None-02698 > > > > > > > > Bug: angleproject:5821 > > Change-Id: Ic8ca6178ce50b409ac8d256848654f43f91fae8e > > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2808854 > > Reviewed-by: Jamie Madill <jmadill@chromium.org> > > Commit-Queue: Jamie Madill <jmadill@chromium.org> > > Bug: angleproject:5821 > Change-Id: I771e81a46893f2875605e472273f1388587e042e > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2831997 > Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> > Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> > Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Bug: angleproject:5821 Change-Id: I56ccb80eb76c3cedca2a40b8cc0223a879ab1edf Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2842309 Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Lubosz Sarnecki e77e4d92 2021-04-09T16:29:36 tests: Add DepthStencilTestES3.ReadPixelsDepth24. Add a test that creates a framebuffer formatted GL_DEPTH_COMPONENT24 and read pixels from it using glReadPixels. This test uses a combination of the GL_OES_depth24 and GL_NV_read_depth extensions. This test can only run on GLES3 as the GL_DEPTH_COMPONENT24 internal format is not available on GLES2. Test: angle_end2end_tests --gtest_filter=DepthStencilTestES3.ReadPixelsDepth24/ES3_Vulkan_SwiftShader Bug: angleproject:5799 Change-Id: I4e898bf756498796df02ef41cc2b989df78f13df Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2817765 Commit-Queue: Lubosz Sarnecki <lubosz.sarnecki@collabora.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Le Hoang Quyen a878e814 2021-04-11T15:04:19 Metal: Distinguish Metal backend from OpenGL's Metal driver On macOS 11+ OpenGL is implemented on top of Metal internally. This CL changes ANGLE's Metal backend's renderer string to better differentiate it from the above OpenGL renderer. Bug: angleproject:5841 Change-Id: I0d5466594e385cb663d537db034c82b006b6e907 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2820179 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Peng Huang be2f7b1c 2021-04-20T13:54:47 Unbind fbo before context switching for PowerVR GPUs Imagination GL drivers are buggy with context switching. We need to ubind fbo to workaround a crash in the driver. Bug: chromium:1187513 Change-Id: Ie5142b5f43a3f23a9743ba7af0d90567fedd00d3 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2841083 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Peng Huang <penghuang@chromium.org>
Yuly Novikov a3d52a4d 2021-04-20T17:52:17 Skip dEQP-EGL.functional.resize.surface_size.stretch_width on Linix Vulkan NVIDIA Bug: angleproject:5884 Change-Id: I46c330b2dc78b2271999315aa2b28930aee490f3 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2842305 Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Tim Van Patten 39c33f34 2021-04-19T17:53:19 Tests: Add "Command and Conquer: Rivals" trace Bug: angleproject:5830 Tests: TracePerfTest.Run/*command_and_conquer_rivals Change-Id: I0b5fedfdeab3c0729bac706ceb7ce98f66b41986 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2838231 Reviewed-by: Tim Van Patten <timvp@google.com> Commit-Queue: Tim Van Patten <timvp@google.com>
Yuly Novikov c275ce14 2021-04-19T14:06:53 Skip Texture2DBaseMaxTestES3.GenerateMipmapAfterRebase* on Mac ARM GL Bug: angleproject:5880 Change-Id: I18698e0603938c43878ad4d28379d6976952c561 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2836787 Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Mohan Maiya 2d741b43 2021-04-20T07:33:02 Add KHR_blend_equation_advanced entry points Addition of the entry points for GL_KHR_blend_equation_advanced extension. Bug: angleproject:3586 Change-Id: I7a651c19a4b3d0a7cfe4af7813f1530d27704bc1 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2830140 Commit-Queue: Mohan Maiya <m.maiya@samsung.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Amy Liu 95935176 2021-03-26T17:38:21 Handle the compression of big pipeline cache. Big pipeline cache will cost much time to compress. Regarding the perfomance, handle the compression of big pipeline cache in this way: 1)Return when the pipeline cache data is larger than 10M. 2)Use worker thread to complete compression. Bug: angleproject:4722 Change-Id: I62eb69d8c46729261f0502af01450ec301c258f3 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2788169 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Jamie Madill 2f808349 2021-04-16T19:21:15 Add standalone Android build. Includes necessary DEPS and GN build changes. Some folders are copied directly from Chromium because they don't exist as source mirrors or aren't available for other reasons. Bug: angleproject:2344 Change-Id: Ibb7f8a3e2288048b7aed2b0e277ca63b5a932c57 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2826480 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Mohan Maiya bdf5f084 2021-04-16T11:29:29 Add EXT_texture_border_clamp entry points Addition of the entry points for EXT_texture_border_clamp extension. Bug: angleproject:3586 Change-Id: I366c2748213d7fdde815543129320278937000e0 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2830146 Commit-Queue: Mohan Maiya <m.maiya@samsung.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Geoff Lang b574643e 2021-04-19T12:47:05 D3D11: Skip blits if there is no intersection of dest areas Blit11 would clip the destination rectangle with the destination size but ignore the result. gl::ClipRectangle returns false when the rectangles do not intersect at all, indicating the blit can be skipped. This could lead to an out-of-bounds write to the GPU memory for the destination texture. Mark ClipRectangle as nodiscard to prevent future issues. Bug: chromium:1199402 Change-Id: I260e82d0917b8aa7e7887f2c9f7ed4b1a03ba785 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2836786 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org>
Mohan Maiya 5aa5de76 2021-04-16T11:22:15 Vulkan: Keep the output variable of TCS active for barrier OpControlBarrier implicitly synchronizes 'Output' storage class. If TCS has an out varying it should be considered active because TCS invocations themselves can read each others' outputs. Bug: angleproject:5557 Tests: KHR-GLES32.core.tessellation_shader.tessellation_shader_tc_barriers.barrier_guarded_*_calls Change-Id: Ic252c0afff43a68828ee4cf5f4ba890b1b67731e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2770679 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Mohan Maiya <m.maiya@samsung.com>
Jamie Madill 39d8dde8 2021-04-19T15:02:02 Revert "Revert "Vulkan: Suppress draw-time push constant VVL warnings." This reverts commit b027dfeb83d028ae72ed1957ba81e6c5dc3baffa. Reason for revert: Breaking win-trace-rel b/c of missing VVL roll. Original change's description: > Revert "Vulkan: Suppress draw-time push constant VVL warnings. > " > > This reverts commit f34b40dab0487bbabc37645918bed87048107e14. > > Reason for revert: VVL bug is fixed. > > Original change's description: > > Vulkan: Suppress draw-time push constant VVL warnings. > > > > > > > > VUID-vkCmdDraw-None-02698 > > > > VUID-vkCmdDrawIndexed-None-02698 > > > > VUID-vkCmdDrawIndirect-None-02698 > > > > VUID-vkCmdDrawIndirectCount-None-02698 > > > > VUID-vkCmdDrawIndexedIndirect-None-02698 > > > > VUID-vkCmdDrawIndexedIndirectCount-None-02698 > > > > VUID-vkCmdDispatch-None-02698 > > > > > > > > Bug: angleproject:5821 > > Change-Id: Ic8ca6178ce50b409ac8d256848654f43f91fae8e > > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2808854 > > Reviewed-by: Jamie Madill <jmadill@chromium.org> > > Commit-Queue: Jamie Madill <jmadill@chromium.org> > > Bug: angleproject:5821 > Change-Id: I771e81a46893f2875605e472273f1388587e042e > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2831997 > Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> > Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> > Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Bug: angleproject:5821 Change-Id: If9f80d052736e40c4c6d3e9a1cd629205901ba49 No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2836285 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Shahbaz Youssefi b027dfeb 2021-04-16T20:50:34 Revert "Vulkan: Suppress draw-time push constant VVL warnings. " This reverts commit f34b40dab0487bbabc37645918bed87048107e14. Reason for revert: VVL bug is fixed. Original change's description: > Vulkan: Suppress draw-time push constant VVL warnings. > > > > VUID-vkCmdDraw-None-02698 > > VUID-vkCmdDrawIndexed-None-02698 > > VUID-vkCmdDrawIndirect-None-02698 > > VUID-vkCmdDrawIndirectCount-None-02698 > > VUID-vkCmdDrawIndexedIndirect-None-02698 > > VUID-vkCmdDrawIndexedIndirectCount-None-02698 > > VUID-vkCmdDispatch-None-02698 > > > > Bug: angleproject:5821 > Change-Id: Ic8ca6178ce50b409ac8d256848654f43f91fae8e > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2808854 > Reviewed-by: Jamie Madill <jmadill@chromium.org> > Commit-Queue: Jamie Madill <jmadill@chromium.org> Bug: angleproject:5821 Change-Id: I771e81a46893f2875605e472273f1388587e042e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2831997 Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Shahbaz Youssefi 6d8e2f87 2021-04-17T02:03:03 Suppress fifa mobile on intel/windows Flakily renders black. Bug: angleproject:5875 Change-Id: I16805278e00d431bf81e531d5b0b17868ee8f476 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2833011 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Cody Northrop da0a1ee9 2021-04-16T22:55:00 Tests: Add 3DMark Slingshot Test 2 trace This trace is ES 3.0 based and shader heavy. Test: angle_perftests --gtest_filter="*slingshot_test2*" Tbr: jmadill@google.com,timvp@google.com Bug: b/185595371 Bug: angleproject:5877 Change-Id: I3d66a5f818b33581b4237e8a9efc56af5666d98b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2832657 Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Cody Northrop fc136cf8 2021-04-15T18:06:31 Tests: Add 3DMark Slingshot Test 1 trace This trace is ES 3.0 based and geometry heavy. Test: angle_perftests --gtest_filter="*slingshot_test1*" Tbr: jmadill@google.com,timvp@google.com Bug: b/185595371 Bug: angleproject:5877 Change-Id: I8528d399fedbe6ea3a07297a869f33de4605c946 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2832672 Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Shahbaz Youssefi c750129e 2021-04-16T16:59:25 Vulkan: Remove inappropriate use of VK_NULL_HANDLE A change in Vulkan-Headers changes the value of VK_NULL_HANDLE, exposing an invalid usage in ANGLE, which is fixed in this change. Bug: angleproject:5879 Change-Id: I136fdc9e707650a060eaee062c7cf8cf24d9e8b2 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2831998 Reviewed-by: Tim Van Patten <timvp@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Charlie Lao a37d9748 2021-04-13T14:52:31 Vulkan: Add support for FBO with unequal sized attachments OpenGLES 3.0 allows FBO with unequal sized attachments. This CL removes assertion that all attachment must have equal size from vulkan backend, and uses common intersect area to create VkFramebuffer object. Bug: b/181800403 Change-Id: Icbb12a26784b184ebd91740855672013f64b889d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2824760 Commit-Queue: Charlie Lao <cclao@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com>
Charlie Lao aa2d400a 2021-04-12T17:21:37 Vulkan: Add test for FBO with unequal sized attachments Before OpenGLES3.0, framebuffer object with unequal sized attachment is considered incomplete. That restriction has been removed in ARB version of spec and is legit use in OpenGLES 3.0. This adds a test for this specific usage. Bug: b/181800403 Test: FramebufferTest_ES3.AttachmentWithUnequalDimensions Change-Id: I79608bfd8f10855c6fc47511e080ba3ca4e46c59 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2824366 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com> Commit-Queue: Charlie Lao <cclao@google.com>
Shahbaz Youssefi e8b18e79 2021-04-16T11:57:53 Skip failing test on AMD/Linux This test was suppressed on AMD/Windows already. Bug: angleproject:5687 Bug: angleproject:5874 Change-Id: I9b6bac81adc017f80634271063d53f3d4eebba0b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2831993 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Xiaoxuan Liu ed4f7cb6 2021-03-03T17:56:07 Reland "Reland "Add support for Linux GPU info with Vulkan backend"" This is a reland of 9a8397327f9aac278f4bd1f5ab9094eec7e7798b Chrome Linux crash issue could be fixed in 0615bbde39ca42e27eb764b2b4986b21ab602ce9, let's reland this now. Original change's description: > Reland "Add support for Linux GPU info with Vulkan backend" > > This is a reland of 5c09c1f882f15e1a77577f1a62d861355aac90a4 > > Extra change: Add new ANGLE_HAS_VULKAN_SYSTEM_INFO compile > variable for GetSystemInfoVulkan() in linux platform. > > Original change's description: > > Add support for Linux GPU info with Vulkan backend > > > > 1. Add support for Linux GPU info with vulkan backend: for > > dev board without PCI support, try vulkan backend to get > > GPU info. > > 2. Fix getVulkanInstance() issue when loading non-exist lib: > > return NULL instance if open lib failed. > > > > Bug: angleproject:5717 > > Change-Id: I03c11da25a8787496d098f6c9d6b4c53701383e4 > > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2734375 > > Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> > > Reviewed-by: Jamie Madill <jmadill@chromium.org> > > Commit-Queue: Jamie Madill <jmadill@chromium.org> > > Bug: angleproject:5717 > Change-Id: Iaaab8f512b6ec1d524d7ebb3b4252fec3cfe7dc3 > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2739097 > Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> > Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> > Reviewed-by: Jamie Madill <jmadill@chromium.org> Bug: angleproject:5717 Change-Id: Iad6736f9137b7e9640c97fa2b9eded3fd37ac88f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2821410 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Cody Northrop 14f8918c 2021-04-16T09:17:29 Migrate more scripts to python3 Test: python3 scripts/run_code_generation.py Bug: angleproject:5707 Change-Id: I5abae69c1c6bf03cc418f10beaabc80288fa1c94 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2828979 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Mohan Maiya 2561c646 2021-03-19T14:09:52 Vulkan: Handle non array type varying error case in TS Tessellation control, tessellation evaluation and geometry shader per-vertex input variables and blocks are required to be declared as arrays. Ensure these variables meet the requirements and error out if they don't. Bug: angleproject:5557 Test: KHR-GLES32.core.tessellation_shader.compilation_and_linking_errors.te_non_arrayed_per_vertex_input_blocks Change-Id: I0213fcc6fab90dea7597462a65cbbb7777e67108 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2774759 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Le Hoang Quyen f2aa9d5d 2021-04-11T14:55:19 Reland: Metal: Support importing external metal textures This relands I4d4a88cfbb77d8b7508b787c7fec44073d3b11b0. Fixes: - uninstantiated ImageTestMetal error - failed ImageTest.ANGLEExtensionAvailability on ARM mac. Bug: angleproject:5763 Bug: angleproject:5814 Change-Id: I906fe52baefd6be3c6e00f594795bd527df01616 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2820178 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Le Hoang Quyen <le.hoang.q@gmail.com>
Jamie Madill 0c77f3ad 2021-03-10T15:58:00 Vulkan: Implement shader buffers descriptor cache. Implements a descriptor set cache for UBOs, SSBOs, and atomic counter buffers. Storage Images and framebuffer fetch input attachments are not yet included. Requires moving the buffer barrier handling into ContextVk, similarly to how we handle the barriers for Textures. The packed description key for the descriptors uses a "fast" vector with a basic minimum size. For most cases of a few buffers this will fit easily in stack memory, but for larger programs with many buffers we fit this into heap memory. The key has a large upper bound due to the high ES 3.2 requirements and the need to index several values such as the offset and binding size. We use dynamic offsets for uniform buffers when possible. This ensures applications like Manhattan 3.1 that use sets of common buffers with changing offsets hit the cache most of the time. Because of resource limits we pick at compilation time whether to use dynamic or static descriptor sets. Mostly this applies to tests that use a large number of uniform buffers. A future implementation could be smart and would recompile the program with heuristics to use a minimal number of dynamic indices. Reduces the number of descriptor set updates from ~300 -> ~30 per frame in Manhattan 3.1 and in Asphalt 9 from 900+ to as low as 0 per frame. Bug: angleproject:5736 Change-Id: I5c2a3881bec90d301dab15cc86c8a70e60674ad7 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2757515 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
John Plate 8226dc23 2021-04-15T19:25:31 Generate CL enums in libGLESv2 Bug: angleproject:5869 Change-Id: Ie547d415bed37accef6cb62d28bc6b088a1eb810 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2829370 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: John Plate <jplate@google.com>
Tim Van Patten fbfecbe2 2021-04-07T11:26:13 Capture/Replay: Add PPO/glProgramUniform support Command and Conquer: Rivals requires additional frame capture API support: - Program Pipeline Objects - glProgramUniform* Bug: angleproject:5830 Change-Id: I159086f92d2dfead0a513cd17fadeda7df92f408 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2809891 Commit-Queue: Tim Van Patten <timvp@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Shahbaz Youssefi 4f68a4ee 2021-04-06T12:46:02 Remove suppression for fixed CTS tests CTS bugs are fixed in [1] and [2]. [1]: https://gerrit.khronos.org/c/vk-gl-cts/+/7062 [2]: https://gerrit.khronos.org/c/vk-gl-cts/+/7049 Bug: angleproject:5673 Change-Id: I2d86f53a6a83bab143f89896d4d5dab3cc7b2334 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2808053 Reviewed-by: Charlie Lao <cclao@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Charlie Lao fb288312 2021-04-12T12:38:03 Vulkan: Consolidate mReadOnlyDepthStencilMode to mRenderPassUsageFlags Since now ImageHelper object has a mRenderPassUsageFlags tracking how it is been used by current RenderPassCommands, we can consolidate mReadOnlyDepthStencilMode into a bit in the mRenderPassUsageFlags. The read only mode is just a special attachment mode, so this makes code more consistent and able to get rid of the extra dword for mReadOnlyDepthStencilMode. Bug: b/181797383 Change-Id: Ie9b7be1c18c392e5b2712bdae6ab6506de8d6d34 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2821942 Commit-Queue: Charlie Lao <cclao@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Charlie Lao 5eac3169 2021-04-09T15:54:11 Vulkan: Support sample/render to depth texture with different LOD Previously we supported read only depth attachment that attachment and sample are using the same texture. It was always assuming it will be read only if the same texture is attached to FBO and same time bound to texture unit. But we never supported if it actually writing to depth texture, but at the different level with sampling. This is supported OpenGL operation as long as the levels render to is outside [base_level, max_level]. Later on, we added support of the above operation, but limited to color buffers. This CL extends the same support of render and sample to the same depth texture with non-overlapping levels. Android game black desert mobile is running into this usage case. Bug: b/181797383 Change-Id: I7ee1d52f27603f933102ad1b098684309449c406 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2819487 Commit-Queue: Charlie Lao <cclao@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Ian Elliott <ianelliott@google.com>
Charlie Lao e55462b9 2021-04-09T18:27:16 Vulkan: Add test for render+sample depth texture with non-overlap LOD Render and sample from the same texture and then bind to another FBO without trigger texture bind should still detect the condition that it is render and sample same texture. Render to depth texture and sample form the same depth texture but with non-overlapping levels should work. Bug: b/181797383 Test: FramebufferTest_ES3.SampleFromAttachedTextureWithDifferentLODAndFBOSwitch Test: FramebufferTest_ES3.RenderSampleImmutableDepthTextureWithExcludedLevel Change-Id: I0d330d6f9530eb4fea417019a627890c4a5c1154 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2819486 Commit-Queue: Charlie Lao <cclao@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Ian Elliott <ianelliott@google.com>
Shahbaz Youssefi 1a146f07 2021-04-06T15:40:27 Roll VK-GL-CTS from c4e6dbe68e04 to ededa67cb12a (76 revisions) https://chromium.googlesource.com/external/github.com/KhronosGroup/VK-GL-CTS.git/+log/c4e6dbe68e04..ededa67cb12a 2021-04-13 timvp@google.com Always include sys/system_properties.h for Android 2021-04-09 juha.heiskanen@siru.fi Add primitive topologies for XFB query tests 2021-04-09 alexander.galazin@arm.com Merge vk-gl-cts/github-master into vk-gl-cts/master 2021-04-09 s.fricke@samsung.com Add OpImageQuerySamples with Storage Image test 2021-04-09 jdarpinian@chromium.org EXT_multisampled_render_to_texture test using ReadPixels 2021-04-08 alexander.galazin@arm.com Merge vk-gl-cts/opengl-es-cts-3.2.7 into vk-gl-cts/master 2021-04-08 alexander.galazin@arm.com Merge vk-gl-cts/opengl-cts-4.6.0 into vk-gl-cts/master 2021-04-07 alexander.galazin@arm.com Merge vk-gl-cts/vulkan-cts-1.2.6 into vk-gl-cts/master 2021-04-07 jajones@nvidia.com Add CMake detection logic for libdrm include files 2021-04-02 juha.heiskanen@siru.fi Add early fragment tests 2021-04-02 michal.jakubek@mobica.com Add tests for multisample resolve to level != 0 2021-04-02 boris.zanin@mobica.com Add coverage for 1D, 1D array and Cube array shadow images 2021-04-02 boris.zanin@mobica.com Add subgroup testing for ray tracing pipelines 2021-04-02 caio.oliveira@intel.com Test interaction between Workgroup explicit layout and zero initialization 2021-04-02 Alexander.Galazin@arm.com Merge "Merge vk-gl-cts/vulkan-cts-1.2.6 into vk-gl-cts/master" 2021-04-02 cheryl.wei@arm.com Add waived tests support for cts tools 2021-04-01 rgarcia@igalia.com Remove duplicate dataSafe function from deSTLUtil 2021-04-01 boris.zanin@mobica.com Add keys deqp-log-decompiled-spirv and deqp-log-empty-loginfo 2021-04-01 apinheiro@igalia.com Check for drawIndirectFirstInstance should only affect indirect draw calls 2021-03-31 alexander.galazin@arm.com Support GL 4.5 in the uniform location tests 2021-03-31 alexander.galazin@arm.com Support GL 4.5 in the multisample texture tests 2021-03-31 alexander.galazin@arm.com Support GL 4.5 in the EXT_texture_border_clamp tests 2021-03-30 alexander.galazin@arm.com Update Vulkan headers 2021-03-30 alexander.galazin@arm.com Support GL 4.5 in the geometry shading tests 2021-03-30 alexander.galazin@arm.com Support GL 4.5 in the tessellation tests 2021-03-30 alexander.galazin@arm.com Merge vk-gl-cts/opengl-es-cts-3.2.7 into vk-gl-cts/master 2021-03-30 alexander.galazin@arm.com Merge vk-gl-cts/vulkan-cts-1.2.6 into vk-gl-cts/master 2021-03-30 alexander.galazin@arm.com Support GL 4.5 in the copy image tests 2021-03-26 michal.jakubek@mobica.com Added tests for most-negative snorm values in images 2021-03-26 alexander.galazin@arm.com Notice of withdrawal of Vulkan CTS 1.2.2.x 2021-03-25 timvp@google.com Include sys/system_properties.h in teglAndroidUtil.cpp 2021-03-25 afdx@google.com Add a batch of GraphicsFuzz tests 2021-03-25 alexander.galazin@arm.com Merge vk-gl-cts/opengl-es-cts-3.2.7 into vk-gl-cts/master 2021-03-25 rgarcia@igalia.com QPA image viewer updates 2021-03-25 boris.zanin@mobica.com Fulfill OpControlBarrier requirement 2021-03-25 slawomir.cygan@intel.com Add an option to terminate after first failure, update READMEs 2021-03-25 slawomir.cygan@intel.com Terminate with an error if unrecognized arguments are passed to dEQP executable 2021-03-25 venni.ihanakangas@siru.fi Ensure only Unix paths are added to deqp.apk 2021-03-19 alexander.galazin@arm.com Merge vk-gl-cts/github-master into vk-gl-cts/master 2021-03-19 jbolz@nvidia.com Add tests to exercise 'readonly' SSBOs 2021-03-18 alexander.galazin@arm.com Merge vk-gl-cts/vulkan-cts-1.2.5 into vk-gl-cts/master 2021-03-18 slawomir.cygan@intel.com Fix required features checks in shaderRecordExplicitScalarOffset_6 test case 2021-03-18 tom.cooper@arm.com Add VK_EXT_headless_surface surface tests 2021-03-18 Junda.Liu@amd.com Fix robust buffer access result checking for partially out of bound cases 2021-03-18 tapani.palli@intel.com Use linear tiling with external_memory_host tests 2021-03-18 ancheng.qiao@arm.com Fix precision issue in NearestEdgeTests shaders 2021-03-17 alexander.galazin@arm.com Merge vk-gl-cts/vulkan-cts-1.2.5 into vk-gl-cts/master 2021-03-17 gleese@broadcom.com Enable shadow filtering tests for non-filterable formats 2021-03-17 rgarcia@igalia.com Add BGR and BGRA formats to image view tests 2021-03-17 alexander.galazin@arm.com Merge vk-gl-cts/opengl-es-cts-3.2.7 into vk-gl-cts/master 2021-03-17 jari.komppa@siru.fi Add tests for standard multisample positions 2021-03-17 rgarcia@igalia.com Push constant overwrite tests 2021-03-17 rgarcia@igalia.com Test large command buffers with many draw commands 2021-03-17 rgarcia@igalia.com Test barycentric coordinates in ray tracing hits 2021-03-17 rgarcia@igalia.com Add missing mandatory features 2021-03-17 venni.ihanakangas@siru.fi Ensure WSI colorspace has no effect on image contents 2021-03-17 tapani.palli@intel.com reset minSampleShading only with OpenGL Core 4.0+ 2021-03-16 alexander.galazin@arm.com Merge vk-gl-cts/opengl-es-cts-3.2.7 into vk-gl-cts/master 2021-03-16 alexander.galazin@arm.com Merge vk-gl-cts/vulkan-cts-1.2.5 into vk-gl-cts/master 2021-03-16 alexander.galazin@arm.com Merge vk-gl-cts/opengl-cts-4.6.0 into vk-gl-cts/master 2021-03-15 rgarcia@igalia.com Enable validation for all custom devices 2021-03-15 rgarcia@igalia.com Remove multiview requirement in extended dyn state tests 2021-03-15 boris.zanin@mobica.com Fix recursion depth requirement in complexcontrolflow 2021-03-15 rgarcia@igalia.com Check image extent support in watertightness tests 2021-03-15 boris.zanin@mobica.com Read deserealization size from stream 2021-03-15 gleese@broadcom.com Fix flush/invalidate in mismatched_write_op tests 2021-03-15 gleese@broadcom.com Fix sync validation for mismatched_write_op tests 2021-03-15 tapani.palli@intel.com Check if image sample count supported by VkSampleCountFlags 2021-03-15 rgarcia@igalia.com Always accumulate errors in desc set random tests 2021-03-15 syoussefi@google.com Fix missing barrier in compute test 2021-03-15 syoussefi@google.com Fix missing barrier in texture buffer test 2021-03-15 ari.suonpaa@siru.fi Replace libUI with native Android AHB API 2021-03-10 gleese@broadcom.com Add a waiver for depth bias on some Broadcom GPUs 2021-03-10 alexander.galazin@arm.com Update Vulkan/GL Readme 2021-03-10 ari.suonpaa@siru.fi Update Amber 2021-03-08 toni.salmivalli@siru.fi Add a batch of Graphicsfuzz tests If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/vk-gl-cts-angle-autoroll Please CC syoussefi@google.com,angle-bots+autoroll-info@google.com on the revert to ensure that a human is aware of the problem. To report a problem with the AutoRoller itself, please file a bug: https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug Documentation for the AutoRoller is here: https://skia.googlesource.com/buildbot/+doc/master/autoroll/README.md Bug: angleproject:5816 Change-Id: I324ce9596a62771726dc4504b2341e049818f7de Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2807533 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Shahbaz Youssefi c782ef19 2021-04-15T10:08:34 Skip TracePerfTest.Run/*_idle_heroes on Pixel 2 The test crashes both with the native and Vulkan drivers. Bug: angleproject:5867 Change-Id: I6fe3acd7050b0cb2d6f735de684b897aca0a6bb8 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2826402 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
John Plate a2ade894 2021-04-13T21:12:26 Clear macros 'NEAR' and 'FAR' Bug: angleproject:5861 Change-Id: Id4cccf5e06dd39c37bd4fa23965edd31633b0fef Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2824429 Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: John Plate <jplate@google.com>
Lubosz Sarnecki ea6dd8b3 2021-04-14T13:45:14 Tests: Add Idle Heroes trace. Test: angle_perftests --gtest_filter="*idle_heroes*" Bug: b/180419827 Bug: angleproject:5865 Change-Id: Ia121c9c76b67c130534a06e5dc09ac8bd7d2efe9 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2826125 Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Lubosz Sarnecki <lubosz.sarnecki@collabora.com>
Gert Wollny 6f3bd395 2021-04-13T23:53:53 Capture/Replay: Enable InstancingTest.LineLoop/* tests Bug: angleproject:5853 Change-Id: Ia1a7a1cec781dca22ab49a9189dd3560ac148216 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2824435 Commit-Queue: Gert Wollny <gert.wollny@collabora.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Gert Wollny 6362dcf1 2021-04-14T22:47:31 JsonSerializer: Add tests for sorting and non-unique keys Bug: angleproject:5853 Change-Id: I85e64900a58a2706087b71769470bb33fb4e8522 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2824434 Commit-Queue: Gert Wollny <gert.wollny@collabora.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Gert Wollny 212849e9 2021-04-13T22:54:10 Capture: store some array values as vector This reduces the number of values that are added with the same key. Bug: angleproject:5853 Change-Id: Ie13408cc7ad419dec06746dc38b753f76292fae6 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2824433 Commit-Queue: Gert Wollny <gert.wollny@collabora.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Gert Wollny 3116c91c 2021-04-13T18:02:49 JsonSerializer: Sort group members before writing them out Use a multimap to accumulate the values added to a group and then add them to the Json group when it is finished. Bug: angleproject:5853 Change-Id: Idbe82acc5f9a9671063f02bd1af039575aa52e87 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2824432 Commit-Queue: Gert Wollny <gert.wollny@collabora.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Alexey Knyazev 90d18b03 2021-03-10T10:31:39 Upgrade overlay fonts generator to Python 3 Bug: angleproject:5707 Change-Id: I809669d7a7de16ed2e098f59067c8e1d9c44a75c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2773292 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
Gert Wollny 9254eb8e 2021-04-13T18:00:49 Capture: Fix storing strings instead of scalars Bug: angleproject:5853 Change-Id: Id63922d881ce7778236e4ab3417bf9414fc0e59b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2824431 Commit-Queue: Gert Wollny <gert.wollny@collabora.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Cody Northrop fdfb2b82 2021-04-09T15:42:12 Capture/Replay: Support non-binary GLboolean This CL contains two changes. One to how we print out GLboolean values, and another to how we capture GLbooleans. According to the spec, anything non-zero can be considered GL_TRUE when setting state: When the type of internal state is boolean, zero integer or floating-point values are converted to FALSE and non-zero values are converted to TRUE. Dota Underlords is using 0xFF for GL_TRUE. Before the change, this manifested as: // logcat glColorMask(context = 4, red = kUnknownGLenumString, green = kUnknownGLenumString, blue = kUnknownGLenumString, alpha = GL_FALSE) // trace glColorMask(GL_INVALID_ENUM, GL_INVALID_ENUM, GL_INVALID_ENUM, GL_FALSE); After: // logcat glColorMask(context = 4, red = 0x00FF, green = 0x00FF, blue = 0x00FF, alpha = GL_FALSE) // trace glColorMask(0xFF, 0xFF, 0xFF, GL_FALSE); Test: MEC for Dota Underlords Bug: b/185192780 Bug: angleproject:5857 Change-Id: Ie53aeba8d8a40f91ee375467b325d8e6be053a98 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2821947 Commit-Queue: Cody Northrop <cnorthrop@google.com> Reviewed-by: Tim Van Patten <timvp@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Cody Northrop 7a95a620 2021-04-09T16:00:26 Capture/Replay: Support glGetQueryiv Test: MEC for Dota Underlords Bug: b/185192780 Bug: angleproject:5857 Change-Id: I59ced20117bde50b5b734a82cb2e5966d1b27227 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2821946 Commit-Queue: Cody Northrop <cnorthrop@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com>
Cody Northrop 4f723d2c 2021-04-09T15:42:36 Capture/Replay: Support glBufferStorageEXT Add the entrypoint, and when a buffer is immutable, recreate it with glBufferStorageEXT. Test: MEC for Dota Underlords Bug: b/185192780 Bug: angleproject:5857 Change-Id: I29b934bdff4185d19594e49e9387dd79c6031aa5 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2821945 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Ian Elliott 9c51f93d 2021-04-12T16:49:53 Don't call {begin|end}DebugUtilsLabelEXT() when not enabled The ContextVk::handleDirtyEventLogImpl() and ContextVk::endEventLog() methods called the {begin|end}DebugUtilsLabelEXT() methods when the VK_EXT_debug_utils extension is not enabled. This manifests when enabling/using VVL stand-alone (i.e. when the the debug-utils extension is not also present). Bug: b/183133198 Change-Id: I043b174d457a8796831184c092661f24b33c1db4 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2821943 Commit-Queue: Ian Elliott <ianelliott@google.com> Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Tim Van Patten <timvp@google.com>
Jamie Madill bf6e074f 2021-04-13T13:23:26 Add gclient variable to checkout traces. 'checkout_angle_restricted_traces' controls if we should check out the trace tests. We can give restricted access to partners for these traces. Defaults to the same setting as 'checkout_angle_internal'. Bug: angleproject:5860 Change-Id: I36efffb180b35e11e104e2c99bc89fb4be4e0708 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2822232 Reviewed-by: Tim Van Patten <timvp@google.com> Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Gert Wollny fb3173b9 2021-04-13T15:05:44 FrameCapture: write the float values with high precision Because values might be the result of calculations that require some accuracy, writing the float values with the default formatting may not be sufficient to replay correctly, therefore format the values so that they carry more digits. In addition, enable the test that are now passing. Bug: angleproject:5846 Bug: angleproject:5847 Change-Id: I305552a1ffa3cded6326df59883912e14c95f5f5 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2822257 Commit-Queue: Gert Wollny <gert.wollny@collabora.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Jonah Ryan-Davis 2d873e0c 2021-03-01T14:38:39 GL: Workaround to sanitize amdgpu renderer strings. On Linux with the amdgpu driver, the GL_RENDERER string contains precise kernel and DRM version info. We should sanitize this info before using these strings for user privacy. Bug: chromium:1181193 Change-Id: I047d1abf5b51412b4258a021761cc450385ef0fe Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2727658 Commit-Queue: Jonah Ryan-Davis <jonahr@google.com> Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
John Plate 8994fc7b 2021-04-12T19:46:11 Migrate CL entry points to libGLESv2 Bug: angleproject:5759 Change-Id: I79644e7bda3ad0a15eb041b2805b8765c0d22029 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2822258 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: John Plate <jplate@google.com>
Mohan Maiya c8ee13c7 2021-04-02T12:19:33 Vulkan: Fix a validation bug in glBeginTransformFeedback Add logic to check the program or the pipeline before erroring out when validating glBeginTransformFeedeback. Bug: angleproject:5557 Test: ProgramPipelineXFBTest31.VaryingIOBlockSeparableProgramWithXFB* Change-Id: I0df8a8d87b3632745bc91dc2673f2fac31c6cdb1 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2743440 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com> Commit-Queue: Mohan Maiya <m.maiya@samsung.com>
Shahbaz Youssefi cc56e1aa 2021-04-09T23:35:07 Vulkan: Remove special output of structs and keep them in AST The code that separated out declaration of nameless structs from uniform variable declarations is generalized to separate out declaration of all structs from uniform variable declarations. As a result, a pass that outputs the struct types at the top of the shader is no longer necessary. The struct declarations are kept in the AST to be output to GLSL as they normally would when not used in conjunction with uniform variables. After this change, the Vulkan and Metal translators no longer intermix transformations and code generation; transformations are done first entirely in AST, and code generation is done at the end. Bug: angleproject:2461 Bug: angleproject:4889 Change-Id: Ieb4d3f7091845e50c3dc399603ab01182692521d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2818153 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com>
Geoff Lang 18c6d628 2021-03-09T13:46:13 GL: Support VAOs without native VAOs. Share the default VAO state between all frontend VAO when there is no native VAO support. Forcefully sync state every time a new frontend VAO is bound. Bug: angleproject:5577, chromium:1167179 Change-Id: Ieaedb5108ad28fc78e7e58b74495639c5246bb05 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2665266 Reviewed-by: Jonah Ryan-Davis <jonahr@google.com> Reviewed-by: Peng Huang <penghuang@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org>
Geoff Lang 065c2329 2021-04-08T11:59:43 Reland "Vulkan: Add features to modify sampling parameters" This reverts commit a51b57fa2dc73f8bc8acdf0b818cc0315fb23d75. Original change's description: > Revert "Vulkan: Add features to modify sampling parameters" > > Bug: b/167404532 > Change-Id: Iae19dfe165074e8c01216312bddd744c4fb504a4 > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2510012 > Commit-Queue: Geoff Lang <geofflang@chromium.org> > Reviewed-by: Tim Van Patten <timvp@google.com> > Reviewed-by: Jamie Madill <jmadill@chromium.org> Bug: b/167404532 Change-Id: I2c756b8eb0f61701ef6e33275e557bc199a4d3b4 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2815259 Reviewed-by: Tim Van Patten <timvp@google.com> Reviewed-by: Charlie Lao <cclao@google.com> Commit-Queue: Geoff Lang <geofflang@chromium.org>
Shahbaz Youssefi c2d1a464 2021-04-09T16:53:30 Translator: Track nameless interface block field indices in type Fields of nameless interface blocks are stored as TVariables and referenced through a TIntermSymbols (unlike named blocks which use EOpIndexDirectInterfaceBlock with a constant field indices). With this change, the field index is stored in the variable's type which let's the TField of the TInterfaceBlock be directly accessible (and not need a search by name). This will be helpful in translation to SPIR-V as interface block members are accessed by field index. Bug: angleproject:4889 Change-Id: If3ab45b1e5f5f9576721dc52e2bdf1161882514f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2818242 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com>