src


Log

Author Commit Date CI Message
Courtney Goeltzenleuchter ef315fdc 2020-09-10T14:56:35 Vulkan: Use current commandBuffer pointer We were using a passed in commandBuffer in ImageHelper::flushStagedUpdates which became invalid during the process of handling the flush upon which subsequent uses could cause problems when threading is enabled (and maybe when it's not as well, just harder to see.) Have ImageHelper::flushStagedUpdates use the current OutsideRenderPassCommandBuffer and the code will use the proper one. Bug: b/168144059 Change-Id: Ib9849efe9366cf61df5e68fd25d17df165dbd3a0 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2402354 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Courtney Goeltzenleuchter <courtneygo@google.com>
Courtney Goeltzenleuchter 19b4dfc6 2020-08-11T15:53:49 Enable precision qualifiers. This enables precision qualifiers to be included in the translated GLSL and the generated SPIR-V. We do not enable precision qualifiers on Pixel 2 with Android Q due to bugs in the Vulkan driver. Issues appear to be fixed with later Android releases and later devices. Bug: angleproject:3078 Change-Id: Ia5f40befc7ec80fbb63fb6bbe88600301967f9c9 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2350583 Commit-Queue: Courtney Goeltzenleuchter <courtneygo@google.com> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Jiawei Shao 0c8f66c7 2020-09-04T11:01:55 OpenGL: Get VendorID and DeviceID with angle::GetSystemInfo() Previously on the OpenGL backend we get the device ID with funtion GetDeviceID() which just supports a few types of devices. This patch fixes this issue by using angle::GetSystemInfo() instead. Bug: angleproject:5011 Change-Id: Ief0e1228bb1871a73755f05f2debd3a8e5c75597 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2392634 Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Jiajia Qin <jiajia.qin@intel.com> Reviewed-by: Jonah Ryan-Davis <jonahr@google.com> Commit-Queue: Jiawei Shao <jiawei.shao@intel.com>
Jamie Madill 3486ec96 2020-09-10T17:55:28 Enable -Wweak-template-vtables. Needs one suppression due to Clang warning about multiple vtables in a cpp file. Bug: skia:7647 Change-Id: If7f318b7539d23f783b0ef6d6478ce24a0b72bc7 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2404746 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Courtney Goeltzenleuchter ae09e889 2020-09-10T17:00:13 Fix mismatch issue with precision qualifiers. GLSL allows varyings passed from one stage to another to not match in precision (e.g. float & half-float). Vulkan doesn't allow that so adjust those mismatches to use the higher precision. To fix we keep track of the precision of varyings and in the Vulkan backend if we see they are different patch up the SPIR-V to make them match. Bug: angleproject:3078 Change-Id: I385d31e082da46ccdd4817b6612f5f9d9cbce17c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2337755 Commit-Queue: Courtney Goeltzenleuchter <courtneygo@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com>
Courtney Goeltzenleuchter c5b5cf6c 2020-09-10T16:58:18 Refactor to pass ProgramMergedVaryings to link impl Follow-on CL needs the ProgramMergedVaryings in the Vulkan backend to generate valid SPIRV. Bug: angleproject:3078 Change-Id: Ic442a3e0bd713fec36bd6b9420f67f3b1118e5ad Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2404336 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Courtney Goeltzenleuchter <courtneygo@google.com>
Jamie Madill a4ef812c 2020-09-10T17:06:53 De-templatize ResourceManagerBase. Bug: skia:7647 Change-Id: I568cb63118c944c7eca7efcd2445718dc7fda350 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2404745 Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jonah Ryan-Davis 1ab73f0f 2020-09-10T14:32:58 Cleanup disable_program_binary workaround This workaround should also clear the shader binary formats. Also, we can use this workaround when disabling program binaries for capture/replay. Bug: angleproject:5007 Change-Id: I57c78e2cc95e7148cb8a1e7fb9bf3ed958fa69c8 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2404383 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Hidehiko Abe 90a9cf96 2020-09-11T02:40:34 Expand is_linux to is_linux || is_chromeos. Currently is_linux is set to true on Chrome OS build, but it is planned to set to false. This CL is the preparation to keep the current behavior. Bug: chromium:1110266 Test: Built locally. Tryjob. Change-Id: I4124dfb251d68a519fed3e08555d1aa5a694c77c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2404500 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Alexis Hetu e99a9df2 2020-09-10T13:21:39 Added integer overflow detection to ClipRectangle Used angle::CheckedNumeric to make sure none of the additions in ClipRectangle produces an integer overflow. Bug: chromium:1091364 Change-Id: I23b7943259010bb6bfde3d8ebc41e87a04f5b4f6 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2404441 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Alexis Hétu <sugoi@chromium.org>
Shahbaz Youssefi 1bd71b48 2020-09-08T13:54:33 Make gl::DrawBufferMask a BitSet8 This shrinks the size of the mask for use in cache key classes. Bug: angleproject:4881 Change-Id: I87c234832c61e6a663c609b7f6da5d69977b21c7 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2399182 Reviewed-by: Jonah Ryan-Davis <jonahr@google.com> Reviewed-by: Tim Van Patten <timvp@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Maksim Ivanov fe822457 2020-09-10T03:33:26 Fix useless move() in SizedMRUCache_unittest.cpp Drop std::move() calls in places where there's no actual moving happing, and only the "bugprone-use-after-move" clang-tidy warning is triggered. Bug: chromium:1122844 Change-Id: I692da5af4f96305f09008d1c7fd18f9be7f6273f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2401241 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tim Van Patten d29d4c6b 2020-08-25T12:40:06 Vulkan: Avoid linking to SPIR-V validation if possible We unconditionally link to $angle_spirv_tools_dir:spvtools_val, but we only use SPIR-V validation with ASSERTs. This CL removes this dependency when ASSERTs are disabled. Bug: angleproject:4887 Test: CQ Change-Id: Ic403b78196ecd895e4a0cdefb54ab4497651ccac Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2375872 Commit-Queue: Tim Van Patten <timvp@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
Shahbaz Youssefi 29b1f07f 2020-09-08T13:52:49 Vulkan: Boilerplate for vkCmdNextSubpass Bug: angleproject:4881 Change-Id: I5c46c07e8c7865ef2bfd8aff0d3f8b5ba3ecd750 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2399181 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Courtney Goeltzenleuchter cbbf9587 2020-09-09T17:01:00 Fix ASAN issue with accessing application name ASAN caught reference outside scope issue regarding RendererVk::initialize. Need to have a local copy of the string so that it stays alive for the Vulkan call. Bug: b/168145220 Change-Id: I13d751a48fe86a5a3d603d892c86c5a7186f2606 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2402353 Reviewed-by: Ian Elliott <ianelliott@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Jonah Ryan-Davis 9a7b0a2d 2020-09-01T15:46:02 Workaround bogus MscRate reported by some XWayland drivers. XWayland defaults to a 1hz refresh rate when the surface is not visible, but this can sometimes cause issues in Chrome. If we see a bogus rate like that, ANGLE can just report 30hz. Bug: chromium:1042393 Change-Id: I554b05b4107cea528525ced6e95a5ce529eec3b1 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2388700 Commit-Queue: Jonah Ryan-Davis <jonahr@google.com> Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Shrek Shao a3bf9092 2020-09-09T12:16:54 Suppress AtomicCounterBufferRangeRead failure on Nexus6P TBR=syoussefi@chromium.org Bug: angleproject:3726 Change-Id: I8e4eb420ef43ee50b7e4df563148ed296f260adb Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2401545 Commit-Queue: Shrek Shao <shrekshao@google.com> Reviewed-by: Shrek Shao <shrekshao@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Jose Dapena Paz cee57483 2020-09-09T18:18:07 GCC: init kImageMemoryBarrierData with initializer constructor GCC fails to automatically map the initializer assignment for initializing the angle::PackedEnumMap. So this change adds the type hint ImageMemoryBarrierData to the second part of the pairs passed to construct the PackedEnumMap. GCC error: ./../third_party/angle/src/libANGLE/renderer/vulkan/vk_helpers.cpp:387:1: error: could not convert ‘{{rx::vk::ImageLayout::Undefined, {"Undefined", ...}}}’ from ‘<brace-enclosed initializer list>’ to ‘const angle::PackedEnumMap<rx::vk::ImageLayout, rx::vk::{anonymous}::ImageMemoryBarrierData>’ 387 | }; | ^ | | | <brace-enclosed initializer list> Bug: chromium:819294 Change-Id: I314c43c0795e54cabd891205ee935c6354d11658 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2401778 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Shahbaz Youssefi 957079aa 2020-09-03T16:20:55 Vulkan: Free 8 bits in RenderPassDesc These bits will be used in a follow up change to determine which color attachments need to take their value from a corresponding resolve attachment in an initial subpass. Bug: angleproject:4881 Change-Id: I76b6b3339fe209f93dd259ca087d84ecaa3004b6 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2397205 Reviewed-by: Charlie Lao <cclao@google.com> Reviewed-by: Tim Van Patten <timvp@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Mohan Maiya 41c93c55 2020-09-01T11:34:32 Vulkan: Bug fix in atomic counter buffer count calculation When binding a new atomic counter buffer to a slot it is necessary to take into account the previous binding of that slot. This rectifies a bug introduced in f7b607c63c Bug: angleproject:3566 Test: angle_unittests.exe --gtest_filter=AtomicCounterBufferTest31.AtomicCounterBuffer* Change-Id: If78954d27c3345e8620294a84e839058d7dd7b9a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2388431 Commit-Queue: Mohan Maiya <m.maiya@samsung.com> Reviewed-by: Tim Van Patten <timvp@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Ian Elliott d4b029e3 2020-09-08T11:00:56 Vulkan: Suppress VVL PushConstantOutOfRange errors VVL Error: UNASSIGNED-CoreValidation-Shader-PushConstantOutOfRange Bug: angleproject:5027 Change-Id: I60eef046df5569f4d76bf065ea6df7565793a6b9 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2399178 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Ian Elliott <ianelliott@google.com> Commit-Queue: Ian Elliott <ianelliott@google.com>
Corentin Wallez e5882825 2020-09-07T10:55:35 Texture::copyImage: Correctly compare against FBAttachment There is no functional changes, but avoids an incorrect static_cast of pointers when looking to skip the clear in a copyImage of an image onto itself. Change-Id: I35949005016dab5df01e58d27de53dccf38d50c7 Bug: chromium:1125354 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2395617 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Shahbaz Youssefi f184cb61 2020-09-06T22:29:29 Add perf test for multisampled render to texture Bug: angleproject:4881 Change-Id: I4733e2868a3e056ec61463fec88d17aaa564234f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2394955 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Le Hoang Quyen 50704dc3 2020-08-04T12:08:00 Metal: Implement EXT_occlusion_query_boolean. - Metal's occlusion(called visibility) query operates per render pass. Implementation details are in src/libANGLE/renderer/metal/doc/OcclusionQueries.md. - New tests: - OcclusionQueriesTest.ClearNotCounted. - OcclusionQueriesTest.MultiQueries (failure on OpenGL/D3D11 back-end). Bug: angleproject:2634 Change-Id: Idd1327b5472d0e8c2b69307a7f04a1da4a847a40 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2336121 Commit-Queue: Le Hoang Quyen <le.hoang.q@gmail.com> Reviewed-by: back sept 10 - Jamie Madill <jmadill@chromium.org> Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Ian Elliott 4a41204d 2020-09-02T05:04:33 Vulkan: Improve invalidate for depth/stencil Improve state tracking when the depth and/or stencil attachments are invalidated. Since no draw-time tracking is done, we use the number of command-buffer commands to determine when an attachment is drawn to. That allows all cases to be handled for store ops. Still need to handle mContentDefined at endRP time (we have the data, just not the plumbing). Test: angle_white_box_tests --gtest_filter=VulkanPerformanceCounterTest.*Invalidate*/* Test: angle_deqp_gles3_tests --gtest_filter=dEQP.GLES3/functional_fbo_invalidate_* --use-angle=vulkan Bug: b/167276207 Change-Id: Iae10857dbb4d43b934c51ad7e400b71ae0db4f55 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2378670 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Charlie Lao <cclao@google.com> Commit-Queue: Ian Elliott <ianelliott@google.com>
Alexis Hetu 36b884e6 2020-09-02T19:21:21 Fix undefined behavior in minifloat conversion This cl applies the same fix already applied in SwiftShader here: https://swiftshader-review.googlesource.com/c/SwiftShader/+/48069 Original description: Shifting a 32-bit value by 32 or more is undefined behavior in C++. This previously happened in this code when converting a 32-bit float value to an 11- or 10-bit minifloat which is too small to be represented as a denormal, and should produce 0 instead. Instead of going through this arithmetic for denormals, just test whether the input value is too small to produce a valid denormal, and return 0 instead. Bug: chromium:1117433 Change-Id: I227c0e4c53000df6d9260fee364351a300b113a2 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2391764 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Alexis Hétu <sugoi@chromium.org>
Courtney Goeltzenleuchter 999c85ee 2020-09-02T10:26:47 Correct PCI Device ID for Pixel1 & Pixel2 Testing on my Pixel 1XL and Pixel 2XL indicate that the IDs were swapped. Bug: b/167573470 Change-Id: Ie6881bf06acd77d3349f7a4b879fda8f18b1dfe0 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2390824 Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Tobin Ehlis <tobine@google.com> Commit-Queue: Tobin Ehlis <tobine@google.com>
Shahbaz Youssefi cba9bbbe 2020-09-02T09:55:31 Vulkan: Fix resolve-with-subpass retaining resolve attachment The temporary resolve attachment used to optimize blit was not removed from the framebuffer and render pass descriptions, resulting in subsequent draws to be resolved again. Bug: b/159903491 Change-Id: I9a9c90d25cb07ba9a25999f808b164f9085387d0 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2390441 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com> Reviewed-by: Charlie Lao <cclao@google.com>
Shahbaz Youssefi 0c25fbe3 2020-09-02T17:17:57 Vulkan: Remove accidental padding in push constants Bug: chromium:1124379 Change-Id: I45f4511c836858c70d4dae23c7b3954e0bc65ab4 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2391616 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Shahbaz Youssefi 84bd9dad 2020-08-26T22:01:44 Vulkan: Allow pbuffer usage if no window support Vulkan allows rendering to non-swapchain images, so pbuffers can always be supported on every config. With this change, if the window system does not support a configuration, EGL_WINDOW_BIT is removed from the config instead of dropping the config entirely. Bug: chromium:1034840 Change-Id: Ib972ed8ddf7660c327123fa83ae0674456cf2a35 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2378921 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: back sept 10 - Jamie Madill <jmadill@chromium.org>
Geoff Lang a568b7e3 2020-06-30T17:03:56 Add a frontend feature to disable anisotropic filtering. This allows us to disable support for GL_EXT_texture_filter_anisotropic at runtime and make performance comparisons. Bug: b/167404532 Change-Id: Id80458e7f116e195366432fe73e8e776e9a3047b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2278024 Commit-Queue: Geoff Lang <geofflang@chromium.org> Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com> Reviewed-by: Tim Van Patten <timvp@google.com>
Shahbaz Youssefi b2944fcf 2020-09-02T11:10:00 Vulkan: Don't break the RP on masked/scissored clears Bug: b/166809097 Change-Id: Iedd10a6528808e859c5693a2d30c98aca1a1159c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2390862 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Charlie Lao <cclao@google.com> Reviewed-by: Tim Van Patten <timvp@google.com>
Alexis Hetu d0d523f4 2020-09-02T14:47:27 Make copyTexImage2D robust when source area is out of bounds Whenever the source area of the texture being copied is out of bounds and robust resource init is enabled, it is necessary to clear the invalid portion of the source area to 0 in the copy operation, EXCEPT if the source and the destination are the same, in which case clearing the destination would also clear the source. Bug: angleproject:3930 Change-Id: Ie9e0c52fff86b5626c82a511319688392b7b073b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2391281 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Alexis Hétu <sugoi@chromium.org>
Shahbaz Youssefi d701eae2 2020-09-02T12:23:21 Vulkan: Fix resolve with different formats vkCmdResolveImage and subpass resolve attachments cannot be used if the source and destination formats aren't identical per Vulkan spec: vkCmdResolveImage: > srcImage and dstImage must have been created with the same image > format VkSubpassDescription: > each resolve attachment that is not VK_ATTACHMENT_UNUSED must have the > same VkFormat as its corresponding color attachment Bug: chromium:1123524 Change-Id: Iaf7182dbcad0420483ac2c23d0acf8c109688565 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2390781 Reviewed-by: Tim Van Patten <timvp@google.com> Reviewed-by: Nicolas Capens <capn@chromium.org> Reviewed-by: Charlie Lao <cclao@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Shahbaz Youssefi 543a3962 2020-09-02T09:40:10 Vulkan: Fix resolve-with-subpass with non-zero read attachment The draw framebuffer's color index was used to get the read buffer of the source framebuffer. Bug: b/159903491 Change-Id: I7a1626e6732367c14d46f1e1be4057998fdbf011 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2390440 Reviewed-by: Tim Van Patten <timvp@google.com> Reviewed-by: Charlie Lao <cclao@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Jonah Ryan-Davis 6b2639b0 2020-08-31T16:00:29 Workaround to disable OES_get_program_binary This is a useful workaround for testing/diagnostics. Disabled by default. Bug: angleproject:5007 Change-Id: If459f60ae7f8a2cd4ea934fe3e54d890387d57db Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2385933 Commit-Queue: Jonah Ryan-Davis <jonahr@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Shahbaz Youssefi fdb7874d 2020-08-26T22:04:19 Gracefully fail end2end tests if no window support EGL_WINDOW_BIT is now specifically requested for tests that open a window (those that aren't WithNoFixture). This makes sure pbuffer-only configs are not selected for the window. Additionally, a few WithNoFixture tests are made more robust in the presence of no-window configs. In the context of crbug.com/1034840, this means that a subset of end2end tests would be able to run in a remote desktop environment. Tested on Linux/X11 by turning a subset of configs PBUFFER-only. Bug: chromium:1034840 Change-Id: I09fd149d43d3b865856fe6b9491c5f333f4a2efc Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2378922 Reviewed-by: Jonah Ryan-Davis <jonahr@google.com> Reviewed-by: back sept 10 - Jamie Madill <jmadill@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Alexis Hétu e3db3d20 2020-09-02T12:29:28 Revert "Make copyTexImage2D robust when source area is out of bounds" This reverts commit e1e6f2940c25b3899a13f9f76815ddbb2d00e245. Reason for revert: This fix is incorrect, it ends up being a noop. Reverting this first before landing a different fix. Original change's description: > Make copyTexImage2D robust when source area is out of bounds > > Whenever the source area of the texture being copied is out of > bounds and robust resource init is enabled, it is necessary to > clear the invalid portion of the source area to 0 in the copy > operation. > > Bug: angleproject:3930 > Change-Id: If1605b917097006c37e7d59c66babbc32d0ba6d8 > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2378004 > Reviewed-by: Geoff Lang <geofflang@chromium.org> > Reviewed-by: back sept 10 - Jamie Madill <jmadill@chromium.org> > Commit-Queue: Alexis Hétu <sugoi@chromium.org> TBR=sugoi@chromium.org,geofflang@chromium.org,jmadill@chromium.org,sugoi@google.com # Not skipping CQ checks because original CL landed > 1 day ago. Bug: angleproject:3930 Change-Id: I9e37a3f739eb7ce5d6d6ab5ca59d11ce9aae8483 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2388718 Reviewed-by: Alexis Hétu <sugoi@chromium.org> Commit-Queue: Alexis Hétu <sugoi@chromium.org>
Geoff Lang 6eeb3d8b 2020-08-07T16:09:53 Support DXT textures with non-block sized mip levels. The block size requirement for each mip level meant that all DXT textures had to be POT sized. Relax these restrictions for non-zero mip levels to allow NPOT DXT textures. Increase the size of the D3D11 staging textures to the nearest block size to make sure allocation succeeds. Bug: angleproject:4841 Change-Id: I42fa295a0965241d77f81e57b17454091fda9376 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2380237 Reviewed-by: Jonah Ryan-Davis <jonahr@google.com> Reviewed-by: back sept 10 - Jamie Madill <jmadill@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org>
Geoff Lang 7e815c77 2020-07-08T13:43:40 Implement EXT_shadow_samplers Bug: angleproject:4863,b/161716126 Change-Id: I6beb45d91f59a851787c9f40b40266fb985198d5 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2288330 Commit-Queue: Geoff Lang <geofflang@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com> Reviewed-by: back sept 10 - Jamie Madill <jmadill@chromium.org>
Jonah Ryan-Davis e5f188b2 2020-08-31T15:36:31 Check for "Radeon" in renderer string. AMD workarounds relied on the vendor string containing "AMD" or "ATI". Some vendor strings only contain "Radeon", which lead to workarounds not being enabled. Bug: angleproject:5004 Change-Id: Ie32852212afd1df1f3f691c87a5459e1b53b74b6 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2385932 Commit-Queue: Geoff Lang <geofflang@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tobin Ehlis 736c43a1 2020-08-31T10:23:27 Rename ANGLE apk package to org.chromium.angle Bug: b/167223999 Change-Id: Iaa0b7c779bf744da17a0defba32c966225300a4c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2385915 Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com> Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com> Commit-Queue: Tobin Ehlis <tobine@google.com>
Charlie Lao c0dda021 2020-08-26T11:20:06 Vulkan: release the ImageHelper's staging buffer after flush For mutable textures, right now glTexImage call and some of other cases, we are still using the ImageHelper's staging buffer. This will release the staging buffer after flush to reduce memory footprint. Bug: b/164511310 Change-Id: Ie1e52865a1c3a8f235c88331c4bb83c50d3f04da Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2378179 Reviewed-by: back sept 10 - Jamie Madill <jmadill@chromium.org> Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Charlie Lao <cclao@google.com>
James Darpinian 59d28532 2020-08-27T17:04:32 Fix GL_EXT_texture_compression_s3tc_srgb on macOS GL_EXT_texture_compression_s3tc_srgb wasn't being exposed on macOS because formatutilsgl.cpp was looking for GL_EXT_texture_sRGB, but it was moved to core in 2.1 and the macOS driver doesn't report it anymore. Bug: angleproject:4997 Change-Id: Iae736fac6d315f567ff5d834a043134f91625e59 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2380516 Reviewed-by: Jonah Ryan-Davis <jonahr@google.com> Reviewed-by: Kenneth Russell <kbr@chromium.org> Commit-Queue: James Darpinian <jdarpinian@chromium.org>
Mohan Maiya f7b607c6 2020-08-29T16:34:30 Vulkan: Optimize atomic counter buffer offset calculations Call writeAtomicCounterBufferDriverUniformOffsets method only if there are valid atomic counter buffers Bug: angleproject:3566 Change-Id: I03c3fd2095e30381597bfc66acae0ccbf828d401 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2383787 Commit-Queue: Mohan Maiya <m.maiya@samsung.com> Reviewed-by: back sept 10 - Jamie Madill <jmadill@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Alexis Hetu e1e6f294 2020-08-26T15:06:25 Make copyTexImage2D robust when source area is out of bounds Whenever the source area of the texture being copied is out of bounds and robust resource init is enabled, it is necessary to clear the invalid portion of the source area to 0 in the copy operation. Bug: angleproject:3930 Change-Id: If1605b917097006c37e7d59c66babbc32d0ba6d8 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2378004 Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: back sept 10 - Jamie Madill <jmadill@chromium.org> Commit-Queue: Alexis Hétu <sugoi@chromium.org>
Tobin Ehlis a25b165a 2020-08-28T12:01:44 Vulkan: Add transient flag to command pool Add the VK_COMMAND_POOL_CREATE_TRANSIENT_BIT flag when creating the PersistentCommandPool since the command buffers are only used once and then reset. Update the tracking bugs. Bug: b/166641492 Bug: b/166793850 Change-Id: I5827b5df7dd150756325421fc6ff0283bbd8b8e1 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2381943 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: back sept 10 - Jamie Madill <jmadill@chromium.org> Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com> Commit-Queue: Tobin Ehlis <tobine@google.com>
Corentin Wallez a1d5ebbf 2020-08-31T17:29:49 Suppress flaky failure on Win Intel OpenGL TBR=syoussefi@chromium.org Bug: angleproject:5003 Change-Id: I4bc2c963d69ba529d62e01c21080540e54b46796 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2385497 Commit-Queue: Corentin Wallez <cwallez@chromium.org> Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Shahbaz Youssefi 2f291c0b 2020-07-31T10:50:31 Vulkan: Re-enable fixed dEQP tests The script that loads the entry point loaded glRenderbufferStorageMultisampleEXT from GL_EXT_multisampled_render_to_texture wrong. This is fixed in https://github.com/KhronosGroup/VK-GL-CTS/pull/221. Bug: angleproject:4836 Change-Id: I843b359b12a042f08a63ba6723cf31bdb8509661 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2331740 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Shahbaz Youssefi a0d048a4 2020-08-27T12:03:02 Vulkan: Fool-proof usage of GL and VK level indices Using boxed types, this change allows the compiler to catch errors when a level index in one space (e.g. GL) is mistakenly used in another space (e.g. VK). This change uncovered a number of bugs due to such mistakes which are fixed. Mistakes are still possible when the index is explicitly extracted, for example to be given to a Vulkan command, or when it's created, for example when retrieved from gl::ImageIndex::getLevelIndex. Future work can include using gl::LevelIndex in gl::ImageIndex directly to alleviate the latter at least. Bug: angleproject:4880 Change-Id: I6427c68c3bc096f771402f51c8554d8171758aa9 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2380232 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Charlie Lao <cclao@google.com>
Jamie Madill 8d412db2 2020-08-29T22:25:18 Revert "Convert unordered_map to absl::flat_hash_map for select files" This reverts commit 1acaf4eced42a26f09b4d9180a9e5db0f37bc9a4. Reason for revert: Fails when is_component_build is not set: lld-link: error: <root>: undefined symbol: public: __cdecl absl::Condition::Condition<struct std::__1::atomic<bool> const>(bool (__cdecl *)(struct std::__1::atomic<bool> const *), struct std::__1::atomic<bool> const *) <snip> Original change's description: > Convert unordered_map to absl::flat_hash_map for select files > > This is the initial CL to start migrating to abseil in various places: > - formatutils.h > - FramebufferVk.h > - Program.h > - ProgramExecutableVk.h > - RewriteRowMajorMatrices.cpp > > This intentionally hits a couple different places in the code to make > sure the abseil dependencies are added to the required targets. > > Bug: angleproject:4873 > Change-Id: I68c7d067b6912b0cc0ecde231501dbed92f0b189 > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2321735 > Commit-Queue: Tim Van Patten <timvp@google.com> > Reviewed-by: Jamie Madill <jmadill@chromium.org> > Reviewed-by: Charlie Lao <cclao@google.com> TBR=timvp@google.com,jmadill@chromium.org,cclao@google.com Change-Id: I75041532fc5126b4c7cc5e0d4529883fb357e05b No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: angleproject:4873 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2383870 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jamie Madill f71283c9 2020-08-25T23:35:06 Fix EGLContextCompatibilityTest. The check for "IsPlatformAvailable" was inverted. We were incorrectly trying only to create a context on invalid configs. Bug: angleproject:4449 Change-Id: I03fbdc7794a338a55b9dc64521915a8be247bf35 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2376045 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill b4efc051 2020-08-28T14:45:18 Enable -Wdeprecated-copy. This is another warning turned on in Skia. It enforces an explicit copy assignment operator in some implicitly-generated cases. It caught one potential error in SubresourceUpdate. Bug: skia:7647 Change-Id: Ia501f619cf7f3d2e8647cdbbda2936f51f9721ba Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2381953 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Shahbaz Youssefi 331581e9 2020-08-27T11:55:16 Make copy*Texture parameters consistent for level indices They were passed as size_t, while GL level indices are GLint throughout ANGLE. Bug: angleproject:4880 Change-Id: I43bc9f01a607e457b55a061f473450d3360db808 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2380230 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Charlie Lao fbafb46c 2020-08-26T10:56:33 Vulkan: Use context staging buffer for CopyTexSubImage This will avoid allocate staging buffer if there isn't one already. Bug: b/164511310 Change-Id: Ieb5ef12fa58c52c0a62276cab6de135fdd62780c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2377121 Commit-Queue: Charlie Lao <cclao@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
Tim Van Patten 1acaf4ec 2020-07-24T11:58:45 Convert unordered_map to absl::flat_hash_map for select files This is the initial CL to start migrating to abseil in various places: - formatutils.h - FramebufferVk.h - Program.h - ProgramExecutableVk.h - RewriteRowMajorMatrices.cpp This intentionally hits a couple different places in the code to make sure the abseil dependencies are added to the required targets. Bug: angleproject:4873 Change-Id: I68c7d067b6912b0cc0ecde231501dbed92f0b189 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2321735 Commit-Queue: Tim Van Patten <timvp@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Charlie Lao <cclao@google.com>
Jamie Madill 330c8673 2020-08-28T17:44:13 Enable MSVC warning 4312. This is caught in the Skia build. Bug: skia:7647 Change-Id: I9b164f6fcc55b7e13981659ee8a08766a99a2122 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2381084 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Le Hoang Quyen 966a62cb 2020-08-04T12:08:00 Metal: autogen for EXT_occlusion_query_boolean. Bug: angleproject:2634 Change-Id: I4d6a6378a269ea9e38e9282d6dbfa45e4e3d4d5a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2336126 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Charlie Lao 5ac807b2 2020-08-26T10:18:00 Vulkan: Let stageSubresourceUpdateAndGetData use ctx staging buffer stageSubresourceUpdateAndGetData call are made and then flush the commands out, so they could just switch to use context's staging buffer instead of use per object's staging buffer. Bug: b/164511310 Change-Id: Iff7944a37073bb3641498e334847f599903858b1 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2376895 Commit-Queue: Charlie Lao <cclao@google.com> Reviewed-by: Tim Van Patten <timvp@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill 1ab8b75a 2020-08-28T14:45:15 Enable -Wreturn-std-move-in-c++11. Only one fix needed. Bug: skia:7647 Change-Id: I048d54ed67fbb09f4dce6c918db26ea63e7127a8 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2376719 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jamie Madill c7217aaa 2020-08-28T14:45:14 Enable -Wbad-function-cast. Fixes a small bug in xxhash. Bug: skia:7647 Change-Id: Ibd0bd8dc4febfe585e257786d9683ea09c94ec6a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2376718 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Charlie Lao 9e544a84 2020-08-24T18:37:59 Vulkan: Fix alignment issue with context staging buffer Context's staging buffer is shared for all kind of usages. We should pass in alignment requirement for allocate call whenever it is different from the default alignment. This adds allocateWithAlignment call to DynamicBuffer call and switch ImgeHelper's usage of it to allocateWithAlignment Bug: b/164511310 Change-Id: Idcb6b6f95d6862ee6cb8fca9c164910b7e085a17 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2373590 Commit-Queue: Charlie Lao <cclao@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com>
Le Hoang Quyen 1c654d54 2020-08-26T00:16:52 Metal: Fix handling of vertex attrib offset not multiple of 4 Metal requires the vertex attribute offset to be multiples of 4, and its stride must not be less than attribute's size. This should fix the WebGL's test: conformance/attribs/gl-vertexattribpointer-offsets.html Bug: angleproject:4846 Bug: angleproject:2634 Change-Id: I0784a8ccaedd5e6c58a266243bfa94ba36e53e11 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2374829 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill 5c56f228 2020-08-28T14:45:14 Enable two override suggestion warnings. -Wsuggest-destructor-override and -Wsuggest-override. Bug: skia:7647 Change-Id: Iaac1baa8f34fdf210baf2fdbe811a582b3ac2d14 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2376717 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Cody Northrop 34120d07 2020-08-27T15:29:04 Capture/Replay: Track groups of strings When string counters were added, it accidentally broke transform feedback varyings. All the strings were combined, resulting in: const char *glTransformFeedbackVaryings_varyings_0[] = { R"(out_Posout_Aout_Bout_C)" }; Instead, generate the counter for the entire group. This CL results in: const char *glTransformFeedbackVaryings_varyings_0[] = { R"(out_Pos)", R"(out_A)", R"(out_B)", R"(out_C)", }; Test: Manhattan MEC works again Bug: angleproject:4941 Change-Id: Ie605395942c9105ba234009989f41a2a1cd8c53e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2381565 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Le Hoang Quyen 91004654 2020-08-25T01:08:00 Metal: Implement ANGLE_robust_resource_initialization. Bug: angleproject:4929 Bug: angleproject:2634 Change-Id: Ib99b810059420e69d939f1bbb644c2b95de62850 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2374826 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
David Reveman 9a19a996 2020-08-26T09:00:50 Vulkan: Use 4 MB as preferredLargeHeapBlockSize for allocator. This reduces preferredLargeHeapBlockSize from the default value of 256 MB to 4 MB, which reduces the initial block size from 32 MB to 512 KB. 4 MB is the same size as used by Chromium and Skia. It seems to be a good compromise of not wasting unused allocated space and not making too many small allocations. This change is limited to non-Qualcomm GPUs as a number of tests are failing on Qualcomm after this change and the initial investigation indicates a potential driver bug. See http://anglebug.com/4995 for more details. Bug: chromium:1122718 Bug: fuchsia:58959 Change-Id: Ifdaf863ef38e72098a04ee57dec46ee71cab6ac3 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2376891 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com> Commit-Queue: David Reveman <reveman@chromium.org>
Shahbaz Youssefi 167a0f22 2020-08-25T17:11:54 Vulkan: Fixes to transform feedback emulation path Two bugs were affecting the following scenario: - Create program with xfb and no default uniforms - Draw without xfb - Begin xfb - Draw with xfb - End xfb - map and validate The first bug was that the descriptor set that contains the xfb buffers and default uniforms was never allocated for the first draw call resulting in VVL errors and crashes. The second bug was that "Begin xfb" was not setting the xfb buffers dirty bit, which meant that after the first draw call bound dummy buffers to the descriptor set, they would not get updated. This was simultaneously fixed in 5d3a4ca4e, but the added test nevertheless tests this. Bug: angleproject:4660 Change-Id: I16eee315e39ec5a657481e54ecd0491581e886aa Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2376172 Reviewed-by: Tim Van Patten <timvp@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Shahbaz Youssefi fde4d2f7 2020-08-28T04:19:25 Revert "Vulkan:Clean up best practices exceptions" This reverts commit 15438d3f906f4dffbd445ef01a934ffe1b8ccfbe. Reason for revert: Running end2end tests on Linux, this validation error pops a lot. Original change's description: > Vulkan:Clean up best practices exceptions > > Assign new bug ID for clean-up work. It appears that the > UNASSIGNED-BestPractices-vkCreateCommandPool-command-buffer-reset > error was already fixed. > > Bug: b/166641492 > Change-Id: I536017e0386cf5f57bb53bcba32d5df048050343 > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2380510 > Reviewed-by: Tim Van Patten <timvp@google.com> > Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com> > Commit-Queue: Tobin Ehlis <tobine@google.com> TBR=tobine@google.com,courtneygo@google.com,timvp@google.com,syoussefi@chromium.org,jmadill@chromium.org Change-Id: I90ee856b8bcac3e3f2b8104fb8642185a26f3e63 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: b/166641492 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2381077 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Courtney Goeltzenleuchter d3eba1db 2020-08-27T09:15:48 Fix ASAN error with test Test was not creating large enough vertex attributes for the DrawQuad call and thus hitting ASAN error when trying to copy the 6 vertices worth of data from an array of 3. Bug: b/166617516 Change-Id: Ia05909ada12cafa48e70c6b4ecdbbf729bbb71be Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2380234 Commit-Queue: Courtney Goeltzenleuchter <courtneygo@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Tobin Ehlis <tobine@google.com>
Jamie Madill dfddb983 2020-08-27T17:14:08 Fix warnings that show up in Skia with MSVC. Bug: skia:7647 Change-Id: I6951dcfc1eacd0426dfa7f8142780a5065fae1b0 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2380715 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jonah Ryan-Davis bb33c7cb 2020-08-27T16:22:20 Fix badly formatted dEQP test expectation Bug: angleproject:4996 Change-Id: Ib96c8fe05e715df32390378443e1394b8df74833 TBR=jmadill@chromium.org Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2380247 Reviewed-by: Jonah Ryan-Davis <jonahr@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
Courtney Goeltzenleuchter a08495d9 2020-08-27T13:47:19 Revert "Vulkan: restore mContentDefined at endRP()" This reverts commit 53ee431e3d36692cbe50a96ebbf0ff898ec4d523. Bug: chromium:1122621 Change-Id: Ifd63aa0694e00ed6ef74b385466b874604355e79 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2380610 Reviewed-by: Ian Elliott <ianelliott@google.com> Commit-Queue: Ian Elliott <ianelliott@google.com>
Ian Elliott 44df3fa9 2020-08-27T14:26:49 Vulkan: Fix whitebox test to end render pass Since the RAII-based GLRenderbuffer goes away at the end of the test function, we should end the render pass before ending the test. Bug: chromium:1122621 Change-Id: I5aaf2a0b4fd63a38fc5018830ee4e9d7d93f0c81 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2380248 Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Ian Elliott <ianelliott@google.com> Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com> Commit-Queue: Ian Elliott <ianelliott@google.com>
Tobin Ehlis 15438d3f 2020-08-27T12:36:10 Vulkan:Clean up best practices exceptions Assign new bug ID for clean-up work. It appears that the UNASSIGNED-BestPractices-vkCreateCommandPool-command-buffer-reset error was already fixed. Bug: b/166641492 Change-Id: I536017e0386cf5f57bb53bcba32d5df048050343 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2380510 Reviewed-by: Tim Van Patten <timvp@google.com> Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com> Commit-Queue: Tobin Ehlis <tobine@google.com>
Jonah Ryan-Davis 1e068e1d 2020-08-27T15:03:10 Suppress functional_shaders_indexing_tmp_array_*_const_* on Metal These tests were recently added, and fail on the Metal backend. Bug: angleproject:4996 Change-Id: Iadffa25ab5b6c1372874c82f8356f7f19c76d1e0 TBR=jmadill@chromium.org Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2380244 Reviewed-by: Jonah Ryan-Davis <jonahr@google.com> Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
Tobin Ehlis d7276586 2020-08-26T11:27:13 Vulkan:Use roundUpPow2 where possible Utility function roundUpPow2 is more optimal than roundUp so use it. Bug: b/166462979 Change-Id: I616fa9f487b818137b1b496d93e292c3bd1f428c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2377119 Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com> Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Tobin Ehlis <tobine@google.com>
Amy Liu 7bb75ff6 2020-08-26T15:10:59 Disable forceOldRewriteStructSamplers on Mali. The nested_array.*sampler2D_* tests can pass on Mali with disabled forceOldRewriteStructSamplers. Test: dEQP-GLES31.functional.uniform_location.nested_array.*sampler2D_* Bug: angleproject:2703 Change-Id: I34368d6ce14b81e873e2a3d60a73da4a8a866884 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2377627 Commit-Queue: Amy Liu <Amy.Liu@arm.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tim Van Patten 97013e85 2020-08-27T03:35:42 Revert "Vulkan: Only count descriptor set resources once" This reverts commit 3c2454b82c050193b8552000f1a9e208928d07e6. Reason for revert: Causes rendering issues in Manhattan 3.1. Original change's description: > Vulkan: Only count descriptor set resources once > > The descriptor set resource counts for monolithic programs already have > all of the counts combined for all shader stages, rather than needing to > loop through and combine them all like program pipeline objects. > > Bug: angleproject:3570 > Test: CQ > Change-Id: Ib8a2fe7af991a8d9d5edcef346352c7bac0703fd > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2375869 > Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com> > Reviewed-by: Jamie Madill <jmadill@chromium.org> > Commit-Queue: Tim Van Patten <timvp@google.com> TBR=courtneygo@google.com,timvp@google.com,jmadill@chromium.org # Not skipping CQ checks because original CL landed > 1 day ago. Bug: angleproject:3570 Change-Id: I4150d5adf65ace293cb08876e4a62ae3216096b6 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2378564 Reviewed-by: Tim Van Patten <timvp@google.com> Commit-Queue: Tim Van Patten <timvp@google.com>
Shahbaz Youssefi 68c8ed7a 2020-08-25T22:16:17 Vulkan: More perf warnings Perf warnings added in the CPU path for unpack buffers, as well as CPU readback of images. Bug: angleproject:3461 Bug: angleproject:4900 Change-Id: I0f716a1ea6110ba8e779903a7d5913d5f6df0ce9 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2376905 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Geoff Lang 710e408e 2020-08-25T18:00:39 Add support for P010 IOSurfaces Add test coverage of multi-plane IOSurfaces. Bug: chromium:1115621 Change-Id: Ib2150c4221a3e49f01ab016cebba4830194ab2b5 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2376174 Reviewed-by: Jonah Ryan-Davis <jonahr@google.com> Commit-Queue: Geoff Lang <geofflang@chromium.org>
Jamie Madill 8970ad3f 2020-08-26T12:59:19 Fix Linux build with Skia. Bug: skia:7647 Change-Id: I6bb33a98d69400c9d95fb9d028d29a3e470067e3 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2377291 Reviewed-by: Jonah Ryan-Davis <jonahr@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jonah Ryan-Davis b89e9611 2020-08-19T11:19:35 Fix SwANGLE suppressions of EGLIOSurfaceClientBufferTest Suppressions were missing for several texture formats. This slipped through because angle_end2end_tests are not run on SwANGLE on Mac. Bug: angleproject:4369 Change-Id: I0cbafe5daab591da15f86f2658c4edc724ae2561 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2364190 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
Ian Elliott 1ea22c31 2020-08-25T20:55:54 Vulkan: Fix TRex performance regression TRex invalidates depth but doesn't disable depth before the render pass ends. The render pass isn't ended, but a storeOp of STORE was used instead of DONT_CARE, which causes a performance regression. Bug: b/163854287 Change-Id: Iebd9999ef66c11ff334db3eef2943f58eb2d5053 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2377105 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Charlie Lao <cclao@google.com> Commit-Queue: Ian Elliott <ianelliott@google.com>
Jamie Madill c5b9c49c 2020-08-25T18:01:29 Vulkan: Fix optimizeRenderPassForPresent regression. gfxbench clears the depth buffer right before the swap. Even though the last draw call that presents the frame didn't ever read or write to depth, the tracking we added thought this depth write meant we had to keep the LOAD_OP as CLEAR. Instead we can refine our check to treat clears specially when enabling the depth-stencil read-only mode instead of changing how the tracking works for clears. This way the tracking can not affect other apps that don't use depth-stencil read-only loops. Also adds a regression test that counts the clears after a swap. Bug: angleproject:4959 Bug: angleproject:4979 Change-Id: I12ece6474019f7519a467f827110ad817f7d4df7 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2370364 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Charlie Lao <cclao@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Tim Van Patten 3c2454b8 2020-08-25T12:01:12 Vulkan: Only count descriptor set resources once The descriptor set resource counts for monolithic programs already have all of the counts combined for all shader stages, rather than needing to loop through and combine them all like program pipeline objects. Bug: angleproject:3570 Test: CQ Change-Id: Ib8a2fe7af991a8d9d5edcef346352c7bac0703fd Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2375869 Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Tim Van Patten <timvp@google.com>
Mohan Maiya 9a64f307 2020-08-25T14:06:40 Vulkan: Reserve memory for ResourceUseList::mResourceUses ResourceUseList::add is called repeatedly when we need to track a resource's usage in a context. Instead of a potential memory operation on each add we reserve memory upfront for about 4k SharedResourceUse objects. If the vector grows larger, it will be automatically handled by std::vector's allocator. Bug: angleproject:4950 Change-Id: Ic85ed44a6662819621ee9a47f43dd2542b73114d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2375801 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com> Commit-Queue: Mohan Maiya <m.maiya@samsung.com>
Le Hoang Quyen a4f706b2 2020-08-04T12:08:00 Metal: Use compute to generate 3D texture's mipmap. - Metal's built-in blit based mipmap generator doesn't use box filtering. Hence manual generation using compute is needed. - Compute based mipmap gen can generate up to 4 mips per pass if the base level is power of 2. - This approach can be extended to 2D/cube texture's mipmap generation in future. Bug: angleproject:4921 Bug: angleproject:2634 Change-Id: I7f997669fe39afef075b2bca2406e9424cbb3016 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2336120 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Jonah Ryan-Davis <jonahr@google.com> Commit-Queue: Le Hoang Quyen <le.hoang.q@gmail.com>
Jamie Madill 5d3a4ca4 2020-08-21T13:09:56 Vulkan: Fix dirty state in XFB emulation on EndXFB. This regressed in "Vulkan: Preserve RPs on XFB changes when possible." The bug manifested as incorrect fire rendering in Manhattan. The fix is to ensure we dirty the correct buffer state when we call endXFB. Also adds a regression test. Bug: b/161744596 Bug: angleproject:4622 Change-Id: If16cc22b149526950f300e74c0cc82c0fefae5bc Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2368016 Reviewed-by: Tim Van Patten <timvp@google.com> Reviewed-by: Tobin Ehlis <tobine@google.com> Reviewed-by: Charlie Lao <cclao@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jamie Madill 18cd3cea 2020-08-25T12:51:19 Revert "Work around dEQP KHR-GLES31 bug with tess/geom support." Fix is now upstreamed, we can remove the workaround. This reverts commit 2ba626dc121339a995a1ffd16a32299bf023cb21. Original CL message: > dEQP was inadvertendly requiring the presence of these extensions to > even run the tests. There's a WIP fix to the dEQP tests and this CL > implements that fix as a temporary workaround until we can update dEQP. > Fixes several tests in KHR-GLES31.core.constant_expressions and > KHR-GLES31.core.shader_macros. They now correctly return unsupported. Bug: angleproject:4143 Change-Id: I4001b30ab609ac4c9be2ce06c2d3c0dca75b64e6 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2375965 Commit-Queue: Tim Van Patten <timvp@google.com> Reviewed-by: Tim Van Patten <timvp@google.com>
Tim Van Patten 85ddcc93 2020-08-24T14:22:22 Vulkan: Convert ProgramExecutableVk::mDescriptorSets to std::array Currently ProgramExecutableVk::mDescriptorSets is a vector, but it's size is bound so it can be a std::array (DescriptorSetLayoutArray). To ensure the size grows correctly in the future, the various descriptor set indexes are also being converted from independent constexpr uint32_ts into the enum DescriptorSetIndex. Bug: angleproject:4898 Test: CQ Change-Id: I7ae8ff3455bcfb61e24b73bd16cc3f8cf9873087 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2372664 Reviewed-by: Charlie Lao <cclao@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Tim Van Patten <timvp@google.com>
Jamie Madill d787149a 2020-08-20T17:33:49 Allow rendering to unused levels of bound Textures. This CL refines the feedback loop check to allow rendering to non- sampled levels of currently bound textures. This is a technique sometimes used to initialize a mip chain of a texture. Also adds a regression test that fails on Vulkan. Bug: angleproject:4500 Bug: angleproject:4690 Change-Id: I5fd370e36a2919c82170abcbd2b0897c075bdcc7 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2367314 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Jonah Ryan-Davis <jonahr@google.com> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Ian Elliott 53ee431e 2020-08-21T12:40:03 Vulkan: restore mContentDefined at endRP() CommandBufferHelper will keep a pointer to the depth-stencil RenderTargetVk, and use this to set RenderTargetVk::mContentDefined to true at the end of a render pass. Test: angle_white_box_tests --gtest_filter=VulkanPerformanceCounterTest.InvalidatingAndUsingDepthDoesNotBreakRenderPass/* Test: angle_deqp_gles3_tests --gtest_filter=dEQP.GLES3/functional_fbo_invalidate_* --use-angle=vulkan Bug: b/163854287 Change-Id: I891381825ee01e141dfa4f9099d07d9ffc943f77 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2368194 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Charlie Lao <cclao@google.com> Commit-Queue: Ian Elliott <ianelliott@google.com>
Shahbaz Youssefi 295d2ccd 2020-08-24T14:46:31 Vulkan: Generate perf warnings on suboptimal paths Using KHR_debug features, this change creates a performance-warning-generation macro and employs it in a handful of locations to provide useful feedback to application developers. The warnings added in this change are not exhaustive. Bug: angleproject:3461 Bug: angleproject:4900 Change-Id: Id62435d170d90c5be9c1c5cab2d6779ccb58345e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2372628 Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Courtney Goeltzenleuchter d19c08c9 2020-08-25T08:07:31 Fix ASAN issue with FastIntegerMap.BasicUsage ASAN bot caught bug in FastIntegerMap.BasicUsage test. The end() iterator points past the end of the list, accessing end()->first is invalid. rbegin() points at the last element of the list which is what this test intended. Bug: b/166255370 Change-Id: I06e098143d3de9658088cda6f10761d41b17a520 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2375305 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Courtney Goeltzenleuchter <courtneygo@google.com>
Shahbaz Youssefi 33f8e4d4 2020-08-25T12:06:35 Fix sub-invalidate of incomplete framebuffers Just like invalidate, this should attempt to sync the framebuffer after nooping incomplete framebuffers. Bug: chromium:1119669 Change-Id: Ie4bc6211bbeb1765674f7e0aef884faf7ceb8cc7 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2375565 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Ian Elliott 09924221 2020-08-24T17:17:17 Convert the EGL end2end tests to use RAII types/macros These tests are frequently cloned to make new tests, and so it's good to do a more-global refactor so that these and future tests will use RAII. Bug: angleproject:4947 Change-Id: I2973e70ee075629965b18c685793975537e96b6c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2372627 Reviewed-by: Ian Elliott <ianelliott@google.com> Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Ian Elliott <ianelliott@google.com>
Shahbaz Youssefi 027f0c38 2020-08-24T15:55:55 Vulkan: Remove Host->device availability barrier. vkQueueSubmit already performs this operation, so this barrier was unnecessary. The only place this is necessary is when the GPU is expected to receive updates from the CPU post-submit. ContextVk::synchronizeCpuGpuTime is the only such use-case in ANGLE. Bug: angleproject:4897 Change-Id: I7297fbd65d3faabd949dddb6bcaa181053a83193 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2372631 Reviewed-by: Charlie Lao <cclao@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Shahbaz Youssefi 78304b47 2020-08-23T00:39:28 Vulkan: Remove BarrierType This was only used for one ASSERT, which is changed to use a correlated variable. Bug: angleproject:4959 Change-Id: I0eccd2c06c52fcfbff4c533e661735bf1213125d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2371222 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Maksim Sisov 6b175c5c 2020-08-19T15:11:16 X11 and Ozone: fallback to X11 backend for tests. USE_X11 && USE_OZONE build is a new config for Chromium/Linux that is going to be enabled soon. However, it breaks angle tests for Linux bots that run these tests. Atm, we don't support Wayland in angle anyway, and always falling back to X11 is the right thing to do. However, it's a bit strange to return false in IsOzone for USE_X11 && USE_OZONE case, but it's something we can do now to unblock switching Chromium to use_x11 && use_ozone config for Linux and resolve the problem later. Bug: angleproject:4977 Bug: chromium:1085700 Change-Id: Id223110cc504d8a4faa38608a96338a297a8cfc3 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2367856 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>