src


Log

Author Commit Date CI Message
Cody Northrop f44a6fd2 2021-11-18T20:15:31 GLES1: Hard code integer values in the ubershader This CL continues the process of removing uniform values from the GLES1 ubershader to increase speed on mobile platforms. The first phase removed bools 2091451e. We've identified integers (enums) as providing the biggest bang for buck to optimize speed while having acceptable program generation. Allowing floats as well proved too much specialization. Many GLES1 conformance tests would grind to a halt while providing little to no benefit to app traces. This CL does the following: * Create a GLES1ShaderState class that contains hashable data * Populate it with all states influencing ubershader generation * Hash the class to perform the lookup of existing programs Frame times on Android ARM with locked GPU clocks: Trace Before After dr_driving: 4.2986 -> 0.8155 sonic_the_hedgehog: 2.8223 -> 0.6254 summoners_war: 15.9810 -> 2.3937 wordscapes: 7.6167 -> 1.1496 zillow: 2.9368 -> 1.9318 Test: end2end, perftests, gles1_conformance Bug: angleproject:6644 Change-Id: I060280e282d7b514d3e410c4f8c5e09659e85d3b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3280355 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Lingfeng Yang <lfy@google.com> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Lubosz Sarnecki 1cc5d096 2021-10-21T19:58:58 mathutil: Add roundDownPow2. Bug: angleproject:5857 Change-Id: I6c7ae92a41957e9e6b40b6449f763a49493488d1 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3236996 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com> Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jamie Madill a00ce2ca 2021-11-19T10:23:53 Vulkan: Fix CFI ignore config. This was being applied to "vulkan" when it should be higher in the chain of depedencies. This CL moves it to "vulkan_icd". Bug: angleproject:6496 Bug: chromium:1271193 Change-Id: I064caac6afe237d7008389f444d6ef9f37cff286 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3289937 Commit-Queue: Jamie Madill <jmadill@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Ian Elliott 1f5eb6b8 2021-11-17T16:42:20 Avoid Android vkEnumerateDeviceExtensionProperties() bug This works around a race-condition during Android start-up, when ANGLE is used as the default GLES driver and when render engine (RE) is using SkiaGL (which uses ANGLE, which uses Vulkan). The race condition occassionally results in different numbers of extensions between ANGLE's first and second calls to vkEnumerateDeviceExtensionProperties(). In that case, the second call would return VK_INCOMPLETE instead of VK_SUCCESS. That caused ANGLE to fail to initialize, causing RE to fail to initialize. This change works around this problem by increasing the number of extensions asked for in the second call to vkEnumerateDeviceExtensionProperties(). Background: Surface Flinger uses Hardware Composer (HWC) for hardware-based composition (e.g. using overlays), and RE for GPU composition (e.g. rendering to combine multiple app and system windows together). SF, RE, and HWC all start about the same time. HWC sets a property if it can support display timing. This gets passed through SF to RE's Vulkan loader. The Vulkan loader uses that property to determine whether to enable the VK_GOOGLE_display_timing extension. The Vulkan loader used to make a synchronous call to SF in vkEnumerateDeviceExtensionProperties() in order to get this property. That took some number of milliseconds to complete and affected the start-up time of every Vulkan/ANGLE app. To eliminate that performance problem, the property now propogates in an asynchronous manner. At that time, it was thought that RE would always get the property in time. However, a partner's experience is that VK_INCOMPLETE is happening 0.5% of the time. ANGLE doesn't need to use the VK_GOOGLE_display_timing extension. This is because the Android EGL loader provides the related EGL_ANDROID_get_frame_timestamps extension. The issue that ANGLE is working around is that it shouldn't fail to initialize in this situation. Bug: angleproject:6715 Bug: b/206733351 Change-Id: I4eb2197cdcc9692518b1bf5984d06fc8a1a7d145 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3290506 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com> Commit-Queue: Ian Elliott <ianelliott@google.com>
Geoff Lang 1bcbbd3b 2021-11-18T10:53:04 Roll chromium_revision 426f5c5607..c801e56b48 (941724:943107) Change log: https://chromium.googlesource.com/chromium/src/+log/426f5c5607..c801e56b48 Full diff: https://chromium.googlesource.com/chromium/src/+/426f5c5607..c801e56b48 Changed dependencies * build: https://chromium.googlesource.com/chromium/src/build.git/+log/cfe2150f91..b0986a849c * buildtools: https://chromium.googlesource.com/chromium/src/buildtools.git/+log/b138e6ce86..075dd7e228 * buildtools/linux64: git_revision:90294ccdcf9334ed25a76ac9b67689468e506342..git_revision:4aa9bdfa05b688c58d3d7d3e496f3f18cbb3d89e * buildtools/mac: git_revision:90294ccdcf9334ed25a76ac9b67689468e506342..git_revision:4aa9bdfa05b688c58d3d7d3e496f3f18cbb3d89e * buildtools/third_party/libc++abi/trunk: https://chromium.googlesource.com/external/github.com/llvm/llvm-project/libcxxabi.git/+log/707d75f53e..81212d29a2 * buildtools/third_party/libunwind/trunk: https://chromium.googlesource.com/external/github.com/llvm/llvm-project/libunwind.git/+log/51ffc5ed5c..7f068e554e * buildtools/win: git_revision:90294ccdcf9334ed25a76ac9b67689468e506342..git_revision:4aa9bdfa05b688c58d3d7d3e496f3f18cbb3d89e * testing: https://chromium.googlesource.com/chromium/src/testing/+log/65e053eeaf..4cd7b34100 * third_party/abseil-cpp: https://chromium.googlesource.com/chromium/src/third_party/abseil-cpp/+log/312bb312c9..13257ba994 * third_party/android_sdk/public: AuYa11pULKT8AI14_owabJrkZoRGuovL-nvwmiONlYEC..Ez2NWws2SJYCF6qw2O-mSCqK6424l3ZdSTpppLyVR_cC * third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/{catapult_..e6e1eb6895 * third_party/depot_tools: https://chromium.googlesource.com/chromium/tools/depot_tools.git/+log/7b33514431..1c7dec337d * third_party/r8: CgqKHWrPllIffdVKV209JAStQqR93hUpTzSwKQ5Mth8C..nqWomZTwNDoogX26WeCSoFGg6aQN1FrwzoU4hCS0duEC * tools/clang: https://chromium.googlesource.com/chromium/src/tools/clang.git/+log/32d7c383a4..8caa4c5164 * tools/luci-go: git_revision:0e76392e6557cc3ff8d95c3bc012540e0dbc128a..git_revision:2dfe2f218f0395673f336d17b841edf629907ae3 * tools/luci-go: git_revision:0e76392e6557cc3ff8d95c3bc012540e0dbc128a..git_revision:2dfe2f218f0395673f336d17b841edf629907ae3 * tools/mb: https://chromium.googlesource.com/chromium/src/tools/mb/+log/e1dd5dfb7b..9e42d0c22f * tools/perf: https://chromium.googlesource.com/chromium/src/tools/perf/+log/ffa11379f7..19145774c9 DEPS diff: https://chromium.googlesource.com/chromium/src/+/426f5c5607..c801e56b48/DEPS No update to Clang. TBR=geofflang@google.com, BUG=None Change-Id: I628302cee721b340b722ffff2be0bf45645ac13e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3289108 Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com> Commit-Queue: Geoff Lang <geofflang@chromium.org>
Jamie Madill 5f755c29 2021-11-17T16:29:37 Vulkan: Lock around handle counter. TSAN showed we could have a data race when multiple threads were releasing objects because of the singleton handle counter. Bug: angleproject:6714 Change-Id: I23b5d343bec421a663198e7efc30c78dab2bde8f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3288328 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Jamie Madill 8700d9cc 2021-11-17T16:17:59 Vulkan: Lock around debug annotator. TSAN showed thread contention could happen during make current calls and when inserting debug markers. Bug: angleproject:6714 Change-Id: I343b0bd6efbd46621f9e69bd8a329c135aed0d90 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3288327 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Jamie Madill 8c634492 2021-11-17T11:06:23 Updates to perf test running script. - Fixes logging (needed reload) - Improves logging messages (less spam) - Reduces time in test calibration & sampling - Record failures on test errors more robustly - Redesign the result recording class Bug: angleproject:6090 Change-Id: I53fd86e9e009bd52ec98507334c69b05e711d83e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3288206 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Jamie Madill 06d34598 2021-11-17T16:16:27 Vulkan: Add mutex around cache stats. TSAN showed thread contention could happen in multithreading tests because of the singleton cache stats object. Bug: angleproject:6714 Change-Id: I701aa0079b5eb9d60ef557b13ce57efba17df2fa Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3288326 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Gert Wollny 71bffb8a 2021-11-09T11:16:07 Capture/Replay: Handle newly generated FBOs in tracker Bug: angleproject:6425 Change-Id: I39d22a6770290a0c407ac358b1c059c6a2ddeefa Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3269886 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Gert Wollny <gert.wollny@collabora.com>
Jamie Madill 9a36c3b6 2021-11-15T13:46:06 infra: Update NVIDIA to 1660 testing. Bug: angleproject:6694 Change-Id: I2580b53e45e633af98be757d9bb081461c06de95 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3283163 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Brian Sheedy <bsheedy@chromium.org> Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Geoff Lang 83fa1890 2021-11-17T12:17:31 Disable variable shadow warnings on more ES1 conformance tests The list of gles1 sources is used in several targets without a common config. Bug: angleproject:6703 Change-Id: Ib78719c9dc322075dfba05380e99ec1ada8a3265 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3289616 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org>
Lingfeng Yang e9f9fa17 2021-11-09T18:13:15 Add cpu time measurement to perf tests Bug: angleproject:6667 Change-Id: I16570a7b51d363dd1c0f35789b985520cb76d488 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3270601 Commit-Queue: Lingfeng Yang <lfy@google.com> Reviewed-by: Tim Van Patten <timvp@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Charlie Lao <cclao@google.com>
Gert Wollny 30c03b56 2021-10-28T12:54:39 Capture/Replay: Capture GetTexLevelParameter return param Bug: angleproject:6180 Change-Id: Ia063d297bab85d6cb559642b9be213cc6f10a9bb Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3250884 Commit-Queue: Gert Wollny <gert.wollny@collabora.com> Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Shahbaz Youssefi 613f0361 2021-11-13T14:19:16 Fix typo in SystemInfo_libpci.cpp Bug: angleproject:6691 Change-Id: I26d4cdc3839b71002c40ff114e5cb43d60ef2e81 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3279232 Reviewed-by: Jonah Ryan-Davis <jonahr@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Gert Wollny 82cccf04 2021-10-28T12:49:55 Capture/Replay: Additional tests that now compile Bug: angleproject:6108 Change-Id: I010ae0cd276fcd5093860400c2f7436c9b0bfedf Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3250883 Commit-Queue: Gert Wollny <gert.wollny@collabora.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Gert Wollny fc5fe46d 2021-10-28T12:47:15 Capture/Replay: Capture GetProgramResourceLocation name param Bug: angleproject:6180 Change-Id: I5f27c695c31a32989c579b54e31cccc5b337bd58 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3250882 Commit-Queue: Gert Wollny <gert.wollny@collabora.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Gert Wollny 95e1d244 2021-10-28T12:24:59 Capture/Replay: Capture GetProgramResource params correctly If a non-nullpointer is passed for length then the the number of param entries that is written is returned in *length. Otherwise, just capture the full buffer size as specified by bufSize. Bug: angleproject:6180 Change-Id: If7c3084e56c990477ddb6e93b8682e27004ba1e3 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3250881 Commit-Queue: Gert Wollny <gert.wollny@collabora.com> Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill 3ce1abd8 2021-11-16T14:38:15 Test Runner: Print output snippet in test timeout. This will be helpful in diagnosing test failures. Bug: angleproject:6694 Change-Id: I0ea491fe8ab48dfd017ce40150f606c571f3fa6c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3285805 Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jamie Madill c664c9fc 2021-11-16T12:22:47 Vulkan: Generalize barrier VVL suppression. Seems to pop up in other tests as well. Seems to only affect SwiftShader configs. Run capture_replay_tests.py with the below test. Test: BuiltinVariableVertexIdTest.LineLoop/ES3_Vulkan_SwiftShader Bug: angleproject:6701 Change-Id: I857d4785d6e04edf96fb137a492548ed4d9fbcc4 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3285445 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Ian Elliott b9c0194c 2021-11-16T11:36:52 Add EVENT0 markers for why we call vkAcquireNextImage This will help when looking at AGI system traces. Bug: angleproject:6696 Change-Id: Ic4b06f1a1ec155076cfcb47299afe451cd325327 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3283428 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Lingfeng Yang 27bc56c6 2021-11-15T18:18:53 Vulkan: MAP_UNSYNCHRONIZED_BIT: Skip ghosting/idling Respect the following spec language: No GL error is generated if pending operations which source or modify the buffer overlap the mapped region, but the result of such previous and any subsequent operations is undefined Test: cpu time improves in unsync case in perf-tests/MapBufferRange.cpp Bug: angleproject:6680 Change-Id: I6133952546735aced6e6ee8468ef2ac695316fb6 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3272018 Commit-Queue: Lingfeng Yang <lfy@google.com> Reviewed-by: Charlie Lao <cclao@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com>
Lingfeng Yang 647a703e 2021-11-12T13:48:06 Vulkan: Reorder logic in BufferVk::mapRange This CL flattens the logic, ordering read case first, then write, and simpler cases before more complex ones. This is to prepare for an optimization where we ignore certain paths if MAP_UNSYNCHRONIZED_BIT is set. No change in functionality or performance is expected. Bug: angleproject:6680 Change-Id: I0a2e9ee969216c90353eac7af6dabf648dea2173 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3279615 Commit-Queue: Lingfeng Yang <lfy@google.com> Reviewed-by: Tim Van Patten <timvp@google.com> Reviewed-by: Charlie Lao <cclao@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Geoff Lang b9a8f092 2021-11-16T10:44:26 Disable variable shadow warnings on ES1 conformance tests Bug: angleproject:6703 Change-Id: Ie66b5afc12c4f29f69b8d7e205de02cadd5268a3 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3285383 Reviewed-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill 316dcb56 2021-10-06T09:31:49 Add SwANGLE Skia Gold testing. Required updating our system info helper to be able to retrieve SwiftShader device information. Bug: angleproject:6496 Change-Id: Ib38ea4da65d199433e17b87df2630c3fd77cb619 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3208646 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Geoff Lang 5c6998e4 2021-03-30T09:33:55 Mark objects as initialized when robust init is disabled. If a context with robust resource init disabled allocates a texture, make sure it's marked as initialized or else the texture may be reinitialized later by a context with robust resource init enabled. Bug: chromium:1192632 Change-Id: I643f616c89420312f341b53cedbd1a4e4dc58675 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2794621 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Justin Novosad <junov@chromium.org>
Jamie Madill d27552f2 2021-11-11T11:43:30 Re-land: "Vulkan: Allow SystemInfo to pick ICD." Re-land fixes build on iOS and Android with ANGLE/Vulkan. This will be used in conjunction with SwiftShader. Bug: angleproject:6496 Change-Id: Id38403da1e377bba293dc8368d1c1aac29bf56a9 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3282426 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Shahbaz Youssefi 7d33e71a 2021-11-15T11:20:25 Vulkan: SPIR-V Gen: Don't generate names for constants Multiple constant variables can have the same value, and they are coalesced to the same SPIR-V id. It's not useful to attempt to generate multiple constants with different names, especially as those names don't make it into the SPIR-V-Cross-generated GLSL. Additionally, most constants in the translator don't retain their name, only the ones that are not folded do (and which are folded is a rather arbitrary decision). By generating names for these constants, the SPIR-V gen code was introducing a bug where multiple OpNames could be generated for the same OpConstant* id. This change removes OpNames generated for constants in the first place. Bug: angleproject:6644 Change-Id: Ife2f4bee8e2eb095dc0b22994420ee1dfc6023c6 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3282425 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Amirali Abdolrashidi ae3f67ab 2021-11-11T20:32:32 Implement GL_EXT_multi_draw_indirect * Auto-generated the code to lay the foundation for the following functions: * multiDrawArraysIndirect() * multiDrawElementsIndirect() Bug: angleproject:6439 Change-Id: I7ab5111692376229515e0d6d9e6148909ce9a8a1 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3276042 Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Shahbaz Youssefi fdad9531 2021-11-10T22:09:00 Forward extra --deqp-* flags to deqp This allows angle_deqp_* executables to be passed extra --deqp-* flags that are unknown to ANGLE. Bug: angleproject:6682 Change-Id: I9930cb8dd76b1c7bc7da9b731659277392fcd3ce Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3274175 Reviewed-by: Tim Van Patten <timvp@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Peng Huang 3a84ef5e 2021-11-12T17:40:40 Add EGL_VULKAN_GET_INSTANCE_PROC_ADDR Add EGL_VULKAN_GET_INSTANCE_PROC_ADDR for query Vulkan vkGetInstanceProcAddr function pointer associate with the Vulkan EGLDevice. Bug: chromium:1264439 Change-Id: I4ff14e2aef7b8ca651e13b4d2867a540aed1b321 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3279100 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Peng Huang <penghuang@chromium.org>
Shahbaz Youssefi 3128c055 2021-11-12T14:59:46 Vulkan: Add wait semaphores to queueSubmitOneOff For use in follow up change. Bug: angleproject:3966 Change-Id: I5bfac51ef9d47a6df5d52268d3ce4863b848b1d1 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3279226 Reviewed-by: Charlie Lao <cclao@google.com> Reviewed-by: Lingfeng Yang <lfy@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Gregg Tavares d87d10cd 2021-11-12T11:02:01 Fix ASAN issue with GLVertexIDIntegerTextureDrawElements Was GLint clearData[] = {42}; glClearBufferiv(GL_COLOR, 0, clearData); Now GLint clearData[4] = {42}; glClearBufferiv(GL_COLOR, 0, clearData); Bug: angleproject:6688 Change-Id: Ia8fa0c7d406626046a32e613fda3a165a06941b6 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3278489 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Mohan Maiya b2cf52e6 2021-11-10T14:49:09 Bug fix in unpack buffer validation For an implementation that supports GL_EXT_buffer_storage extension it is valid to read or write from a buffer that is partially or fully mapped if it was allocated by a call to glBufferStorageEXT with the GL_MAP_PERSISTENT_BIT_EXT included in <flags> Bug: angleproject:5056 Bug: angleproject:6689 Test: BufferStorageTestES3.TexImage2DPixelUnpackBufferMappedPersistently Change-Id: Ia4b6967aab02bbfb101d5253b9c83d314bc92f5f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3278482 Commit-Queue: Mohan Maiya <m.maiya@samsung.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Charlie Lao <cclao@google.com>
Shahbaz Youssefi 573f9415 2021-11-12T12:22:39 Vulkan: Prefer aggregate barriers on SwiftShader SwiftShader is not currently sensitivel to stage masks, so aggregating barriers leads to more efficient rendering. Bug: angleproject:4633 Change-Id: I262d1e98d4b08a1ca134a1c5c64ae964ceb6cd16 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3279020 Reviewed-by: Alexis Hétu <sugoi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Shahbaz Youssefi 6fe13477 2021-11-11T00:47:14 Vulkan: Add external's pNext to ANGLE_external_objects_flags ANGLE was chaining VkImageFormatListCreateInfoKHR to VkImageCreateInfo::pNext to support sRGB extensions. For external images, it was unknown whether that was valid because there was no way to know if external used an identical chain of pNexts. This was causing a discrepancy between images created by Chrome and those created by ANGLE as part of an import. This change updates ANGLE_external_objects_flags to take in the pNext chain external has used to create the image so ANGLE could create the image identically. Bug: chromium:1266094 Change-Id: I479b9e7ff39d437425dc91c79834880749766f99 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3274177 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Peng Huang <penghuang@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Shahbaz Youssefi eb3ef08e 2021-11-11T17:41:48 Vulkan: Differentiate perf warnings and RP closure events ... and application events, by using different debug source enums, translating to different colors in API debuggers. Bug: angleproject:2472 Change-Id: Ice422c7ae59fb508a10500b9fbed79d4c9664c11 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3275840 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Shahbaz Youssefi dbc0c646 2021-11-06T01:09:26 Vulkan: Output the reason for RP closure in command buffer To make it easier when viewing the command buffer in a graphics debugger, this change inserts a marker just before closing the render pass that specifies why the render pass was closed. Bug: angleproject:2472 Change-Id: I862e500cd58332d6e199c853315c560fe6a73dc2 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3265609 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Jamie Madill a9f2e87e 2021-11-12T15:02:50 Revert "Vulkan: Allow SystemInfo to pick ICD." This reverts commit b5adbe272e4829d77105e49607bf8ddafd385f17. Reason for revert: Fails GN check on Android/iOS in Chrome: https://chromium-review.googlesource.com/c/chromium/src/+/3276779/ Original change's description: > Vulkan: Allow SystemInfo to pick ICD. > > This will be used in conjunction with SwiftShader. > > Bug: angleproject:6496 > Change-Id: I894aa4cf3b9473738b549de9941eb82e09234121 > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3276515 > Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> > Commit-Queue: Jamie Madill <jmadill@chromium.org> TBR=syoussefi@chromium.org,jmadill@chromium.org,angle-scoped@luci-project-accounts.iam.gserviceaccount.com Change-Id: I198802d6bc93993d3544ed4627e131cb7b93f381 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: angleproject:6496 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3276045 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Gregg Tavares c6d86da2 2021-11-11T15:30:41 Add test for gl_VertexID and DrawElements This fails on the WebGL CTS conformance2/rendering/vertex-id.html. Repoing here to make it easier to debug/find/fix. Bug: angleproject:6688 Change-Id: I0a4bafc5700c77e0b6c44b067167fc4a60e63c22 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3276708 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Kenneth Russell <kbr@chromium.org> Commit-Queue: Gregg Tavares <gman@chromium.org>
Shahbaz Youssefi ee941238 2021-11-11T22:00:04 Capture/Replay: Mark another ImageTest test as FLAKY Bug: angleproject:6286 Change-Id: Idbbdab532a449d754d05208aeadd94462c8c572a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3276041 Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Shahbaz Youssefi 9c486b67 2021-11-11T09:55:47 Unoverride upstreamed dEQP fix Bug: angleproject:5500 Change-Id: I486ebf72840e8b6ff9ca36ac7ad491fea9dd4cf8 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3275834 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Shahbaz Youssefi d2d3a546 2021-11-11T12:22:04 Vulkan: Write perf warnings in command buffer It's much easier to understand what command the perf warning refers to when it's visible in the command buffer using a graphics API debugger. This change creates ANGLE_VK_PERF_WARNING which gives the warning both to the application (through ANGLE_PERF_WARNING) and inserts it in the command buffer. Bug: angleproject:2472 Change-Id: Ie84feed53eca5cda93e1f2bc653fcbf9bcd57b56 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3275839 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Brandon Schade 2aa62964 2021-11-11T13:24:27 Vulkan: Reset mFramebuffer when mFramebufferCache is cleared The mFramebuffer pointer becomes stale when mFramebufferCache is cleared. Set mFramebuffer to nullptr when this happens. Test: --deqp-surface-type=fbo --deqp-case=KHR-GLES31.* Bug: angleproject:6682 Change-Id: I5fd21a64f0f935de04e2934e794c915ccf880c16 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3276701 Reviewed-by: Tim Van Patten <timvp@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Mohan Maiya <m.maiya@samsung.com> Commit-Queue: Brandon Schade <b.schade@samsung.com>
Shahbaz Youssefi 558981c1 2021-11-10T23:13:03 Vulkan: Make write-after-invalidate checks more precise Previously, the size of the command buffer was used as indication for whether the render pass attachments might have been modified after glInvalidateFramebuffer. In that case, the invalidate was undone. This is made more precise by making sure only vkCmdClearAttachments and vkCmdDraw* calls are counted for this purpose. For example, inserting event markers after glInvalidateFramebuffer now retains the invalidation. Note that this can be even further optimized by tracking real writes to attachments. For example, currently a draw call with depth test disabled still undoes the invalidation of the depth buffer, but it shouldn't. Bug: angleproject:5079 Change-Id: I6257b4116a73213884b919bc7f3c86ff39b6aeed Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3274176 Reviewed-by: Ian Elliott <ianelliott@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Jamie Madill b5adbe27 2021-11-11T11:43:30 Vulkan: Allow SystemInfo to pick ICD. This will be used in conjunction with SwiftShader. Bug: angleproject:6496 Change-Id: I894aa4cf3b9473738b549de9941eb82e09234121 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3276515 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Shahbaz Youssefi 96b587b0 2021-11-10T15:10:09 Vulkan: Fix rendering to RGB external images Based on the provided usage flags, the texture's image access mode is updated to be renderable. Bug: chromium:1266094 Change-Id: I5d092a2786fc12537ef0ad1f224137cc1fd8f864 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3270980 Reviewed-by: Craig Stout <cstout@google.com> Reviewed-by: Charlie Lao <cclao@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Jamie Madill 2a9e6e48 2021-11-01T15:56:54 infra: Add tests to ASAN configs. These add basic ANGLE tests with SwiftShader + ASAN. Bug: angleproject:5795 Change-Id: I92a51a44214ff0f442d4a1b2a0bc6ac2b8d3f4eb Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3254431 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Shahbaz Youssefi 2a71c9cd 2021-11-11T09:28:15 Remove stray deqp override file Override was effectively reverted in: https://chromium-review.googlesource.com/c/angle/angle/+/2375965 Bug: angleproject:4143 Change-Id: Idd38bdfa542eec44bc873791910c070b1e0d98c6 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3275833 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Jamie Madill a4a52f78 2021-11-10T12:43:37 EGL: Validate CreatePbufferSurface attributes. This fixes an ASAN issue with a dEQP negative test: dEQP.EGL/functional_negative_api_create_pbuffer_surface Bug: angleproject:6660 Change-Id: I2d052f9f948b7a2a6fe3fbb1f1621dd280bb0d36 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3270978 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Jonah Ryan-Davis <jonahr@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Shahbaz Youssefi 4e26eac5 2021-11-10T21:19:35 Vulkan: Fix VVL warnings on extensions that are not enabled Bug: chromium:1266094 Change-Id: Idbae6cbe2c5593665438d118f17d184f8a81f0d9 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3274932 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Jamie Madill 393785b7 2021-11-10T12:14:03 Add attribute validation for context creation. This fixes another ASAN bug that popped up with the dEQP EGL tests: dEQP.EGL/functional_negative_api_create_context Bug: angleproject:6660 Change-Id: I8f5ca1cc9ca77f2be28ecf120a90c9efcf9d4b24 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3270977 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Jonah Ryan-Davis <jonahr@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Kyle Piddington ec5d3795 2021-11-09T13:23:43 Metal: Fix InvalidateCopyThenBlend Render pass descriptor was not being changed due to blend state not being checked when looking for equality. Bug: angleproject:6669 Change-Id: Ic85dbec29ddb53a8c7e2e708f1ac0c99512e7248 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3270596 Commit-Queue: Kenneth Russell <kbr@chromium.org> Reviewed-by: Kenneth Russell <kbr@chromium.org> Reviewed-by: Gregg Tavares <gman@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Jamie Madill 133cf4be 2021-11-10T15:16:07 Fix out-of-bounds read in MemoryBarrierTestBase. This second read was in transformFeedbackBitBufferWriteThenCapture. Bug: angleproject:6646 Change-Id: I67134e5a7a9a610c11266c51bdc1ced6ef018b8a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3270981 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Jamie Madill 2d4bee83 2021-11-04T10:16:16 EGL: Add early exit when hitting invalid attribute. According to the EGL spec, we stop checking attributes when we encounter an invalid enum. That means it's valid for an application to pass in a list of attributes without EGL_NONE as long as one of them is invalid. To handle this, we add lazy attribute validation to the AttributeMap class, that gets triggered in the validation calls. We only implement the early exit validation for the config attributes to fix an EGL test that would access out of bounds memory. Bug: angleproject:6660 Change-Id: I264d0f98b4ddd9e74187846e9e668270a6fbaee1 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3262478 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Shahbaz Youssefi 5a5996aa 2021-11-09T21:42:43 Vulkan: Handle missing decorations in SPIR-V precision fixer Bug: angleproject:6674 Change-Id: Ibfc72f14b9eeb17d7c70cf6d2384d970b2e66650 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3271551 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Geoff Lang f045fe07 2021-11-04T10:44:20 Fix MSRTT unsized texture formats querying supported samples. The texture format information in gl::Context is sized formats only. When MSRTT textures are used, they would query the potentially unsized format for maximum supported samples. This would return 0 and cause an incomplete framebuffer when the sample count missmatched with other attachments. Bug: chromium:1238327 Change-Id: I06514b1b9badefa81bba3b7ad9ba5db932b4c12b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3260555 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jonah Ryan-Davis <jonahr@google.com> Commit-Queue: Geoff Lang <geofflang@chromium.org>
Jamie Madill 0fcad626 2021-11-09T14:02:08 Vulkan: Fix edge case with changing base level. Bug: chromium:1267624 Change-Id: I36b983fdbbb258454215abe827837517df5a5aff Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3270971 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Jonah Ryan-Davis f422f21a 2021-11-09T18:42:15 Reland "Metal: Reintroduce GPU power preference selection code." This reverts commit 67a8cf07a740c5ce3aafd2ad7fddd370451b3525. Reason for revert: Landed Chromium-side dependency: https://chromium-review.googlesource.com/c/chromium/src/+/3271170 Original change's description: > Revert "Metal: Reintroduce GPU power preference selection code." > > This reverts commit 017161701b7dbf70a13f3c180a39e1fa45c27d9f. > > Reason for revert: Blocking roller, please re-land with the fix. > > Original change's description: > > Metal: Reintroduce GPU power preference selection code. > > > > This CL re-introduces the GPU power preference code to > > the metal backend. It also reworks EGLDisplay caching > > in the frontend to cache based on the native display > > as well as the power preference attribute. > > A new extension, EGL_ANGLE_display_power_preference is > > added based on EGL_ANGLE_power_preference. This extension > > is a client extension that allows selection of GPU on > > display creation, similar to how GPUs are selected on > > context creation in EGL_ANGLE_power_preference. > > This CL adds EGLDisplayPowerPreferenceTest and enables it on > > the metal backend. > > > > Bug: angleproject:6143 > > Change-Id: I0a081dcd2e3f18ab365fdd3498ddcb6e2ba35212 > > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3231986 > > Reviewed-by: Kenneth Russell <kbr@chromium.org> > > Reviewed-by: Jamie Madill <jmadill@chromium.org> > > Reviewed-by: Gregg Tavares <gman@chromium.org> > > Commit-Queue: Jonah Ryan-Davis <jonahr@google.com> > > TBR=kbr@chromium.org,gman@chromium.org,jonahr@google.com,jmadill@chromium.org,angle-scoped@luci-project-accounts.iam.gserviceaccount.com > > Change-Id: I4f775bf7139253a87b033a30e0da2100b3c1bb02 > No-Presubmit: true > No-Tree-Checks: true > No-Try: true > Bug: angleproject:6143 > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3270749 > Reviewed-by: Jamie Madill <jmadill@chromium.org> > Commit-Queue: Jamie Madill <jmadill@chromium.org> # Not skipping CQ checks because this is a reland. Bug: angleproject:6143 Change-Id: Id9b0a5cbb76e4dea9e2f2da2b1c47a0587dfdaf5 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3270970 Reviewed-by: Jonah Ryan-Davis <jonahr@google.com> Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
Brian Sheedy 53def659 2021-11-09T14:58:18 Unskip RenderSolidColor test Unskips EGLDirectCompositionTest.RenderSolidColor, as the driver bug that caused it to be disabled should hopefully be fixed. Bug: chromium:1063962 Change-Id: I8a01ca65fc7e2b4b820d61fced24cf53af9e9f3c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3270597 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Lingfeng Yang cd822868 2021-10-28T13:00:09 Vulkan: MAP_INVALIDATE_RANGE_BIT: shadow or exclude One method of dealing with glMapBufferRange + range invalidation; treat it like bufferSubData and stage the update. Another method is to ghost the buffer but copy only memory outside the invalidated range. This CL pursues a policy where if less than half of the buffer is invalidated, we stage. Otherwise, we ghost and copy only memory outside the invalidated range. DynamicBuffer is chosen over DynamicShadowBuffer because it turns out to end up implicitly tracking all active invalidate ranges (through its freelist), and performs buffer copy on GPU. if we use a DynamicShadowBuffer and then BufferVk::stagedUpdate, it's the same thing but more work (an extra memcpy into the staging buffer). To make this clear, we split the logic of stagedUpdate into two parts, the allocation/map, and the flush, and reuse one half in glMapBufferRange, and the other half in glUnmapBuffer. Test: Faster performance in MapBufferRange perf test, no non-noisy regress in trace tests Bug: angleproject:6634 Change-Id: Ie2e6a9586824b8cb59a97419bb8052acd1de2033 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3251686 Reviewed-by: Tim Van Patten <timvp@google.com> Reviewed-by: Charlie Lao <cclao@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Lingfeng Yang <lfy@google.com>
Lingfeng Yang 0b46ef40 2021-11-04T09:30:23 Vulkan: Start on a MapBufferRange benchmark We have a lot of apps that use MapBufferRange to upload data. That can be low performance. Let's have a benchmark for this. Bug: angleproject:6634 Change-Id: I7e20ad65b89700733c02995a7c56d641e39a43b1 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3261378 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com> Reviewed-by: Charlie Lao <cclao@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Lingfeng Yang <lfy@google.com>
Jeff Vigil 5eb86d4a 2021-09-21T15:17:04 EGL: EGL_KHR_lock_surface3 frontend Add queries to get locked buffer attributes Add validation for LockSurface, QuerySurface Bug: angleproject:6062 Change-Id: I4919bef2a17d3505cccad08f7c4f8a3ca5d7e4e6 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3174322 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Jeff Vigil d3e67716 2021-09-21T15:03:15 EGL: EGL_KHR_lock_surface3 Add new extension KHR__lock_surface3 Add new interfaces for locking and unlocking a surface. Test: angle_end2end_test --gtest_filter=EGLLockSurface3Test Bug: angleproject:6062 Change-Id: Ic40708db4db552107025635540a0c62f956d741e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3161447 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Shahbaz Youssefi 91d36473 2021-11-08T16:27:20 Fix invalidation of GL_FRAMEBUFFER invalidating READ FBO Per spec, GL_FRAMEBUFFER means GL_DRAW_FRAMEBUFFER for glInvalidateFramebuffer. Bug: chromium:1267424 Change-Id: I8c9ab61ecdbd4ccee4262dc8559b2feb02b4837c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3266176 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Shahbaz Youssefi 517ff220 2021-11-08T23:57:16 Add test for texture state change bug Bug: chromium:1267624 Change-Id: I270e54921d40a2d139afdc78c90ab05164cbfabf Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3268492 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Shahbaz Youssefi ef93b32c 2021-11-09T00:26:13 Vulkan: Fix deferred clears vs invalidate In this scenario: - Clear color - Invalidate depth - Clear color The invalidate step flushed the deferred color clear, but the following clear did not expect an open render pass without any draw calls in it. This change fixes this issue, while simultaneously optimizing invalidate by making sure the clears accumulated during syncState() are redeferred instead of flushed. This issue was discovered in https://chromium-review.googlesource.com/c/angle/angle/+/3266176 where, as part of an unrelated fix, an accidental render pass closure is removed. Bug: chromium:1267424 Change-Id: Icfc0a53dbf84e6339ee23960ed847444830054e6 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3266178 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Jamie Madill 67a8cf07 2021-11-09T15:10:50 Revert "Metal: Reintroduce GPU power preference selection code." This reverts commit 017161701b7dbf70a13f3c180a39e1fa45c27d9f. Reason for revert: Blocking roller, please re-land with the fix. Original change's description: > Metal: Reintroduce GPU power preference selection code. > > This CL re-introduces the GPU power preference code to > the metal backend. It also reworks EGLDisplay caching > in the frontend to cache based on the native display > as well as the power preference attribute. > A new extension, EGL_ANGLE_display_power_preference is > added based on EGL_ANGLE_power_preference. This extension > is a client extension that allows selection of GPU on > display creation, similar to how GPUs are selected on > context creation in EGL_ANGLE_power_preference. > This CL adds EGLDisplayPowerPreferenceTest and enables it on > the metal backend. > > Bug: angleproject:6143 > Change-Id: I0a081dcd2e3f18ab365fdd3498ddcb6e2ba35212 > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3231986 > Reviewed-by: Kenneth Russell <kbr@chromium.org> > Reviewed-by: Jamie Madill <jmadill@chromium.org> > Reviewed-by: Gregg Tavares <gman@chromium.org> > Commit-Queue: Jonah Ryan-Davis <jonahr@google.com> TBR=kbr@chromium.org,gman@chromium.org,jonahr@google.com,jmadill@chromium.org,angle-scoped@luci-project-accounts.iam.gserviceaccount.com Change-Id: I4f775bf7139253a87b033a30e0da2100b3c1bb02 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: angleproject:6143 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3270749 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Gert Wollny 5f7c3ba6 2021-11-01T13:27:15 Capture/Replay: Don't force initialization of FS inout vars Since these variables are to be considered inputs as well as outputs initializing them would overwrite the valid input values, hence skip initialization. Bug: angleproject:6608 Change-Id: Id8baf856a23ac84d18c61dd54cd6095128190075 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3253377 Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Gert Wollny <gert.wollny@collabora.com>
Gert Wollny 2dd6ea51 2021-11-08T16:22:18 Capture/Replay: Limit the sleep time based on unfinished jobs When running only a few tests the script has the tendency to sleep a long time after the tests were finished. So limit the sleep time by the number of remaining jobs. Bug: None Change-Id: I52ad39bf047abf93cd900f687bd3aae3962e9e20 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3263999 Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Gert Wollny <gert.wollny@collabora.com>
Tim Van Patten 5c16f77b 2021-10-01T20:07:09 Vulkan: Add flushCommandsAndEndRenderPassWithoutQueueSubmit() Add flushCommandsAndEndRenderPassWithoutQueueSubmit() to allow ContextVk::flushAndGetSerial() to only issue a single vkQueueSubmit(). Bug: angleproject:6546 Change-Id: Ia3fc2bb93e88583ebd80ee153749dc8ca42245dc Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3200673 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Tim Van Patten <timvp@google.com>
Tim Van Patten 53371cc0 2021-11-01T20:25:17 Vulkan: Use optimalBufferCopyOffsetAlignment optimalBufferCopyOffsetAlignment is the optimal buffer offset alignment in bytes for vkCmdCopyBufferToImage2KHR, vkCmdCopyBufferToImage, vkCmdCopyImageToBuffer2KHR, and vkCmdCopyImageToBuffer. The per texel alignment requirements are enforced, but applications should use the optimal alignment for optimal performance and power use. To improve efficiency, this CL updates ContextVk::mStagingBuffer's alignment to the max of: - minMemoryMapAlignment - nonCoherentAtomSize - optimalBufferCopyOffsetAlignment On ARM, this is not expected to have any affect, since all three values are 0x40, but other platforms may see a benefit. Bug: angleproject:4297 Change-Id: I9185da111e09c5d782eb1dedb10369727cb9bf51 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3256007 Commit-Queue: Tim Van Patten <timvp@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Charlie Lao <cclao@google.com>
Shahbaz Youssefi 0e20c680 2021-11-08T15:24:09 Sync framebuffer bindings in glInvalidateFramebuffer If a framebuffer binding change is followed by glInvalidateFramebuffer, ANGLE was not syncing the framebuffer binding. - This means that invalidation was being done on the previous framebuffer. - Paired with deferred clears, this was causing ContextVk to start a render pass on the previous, potentially deleted, framebuffer. Bug: chromium:1267027 Change-Id: I092a0c8dd764db9e49258b694c970babb19cf24b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3266175 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Shahbaz Youssefi 651ae514 2021-11-08T14:07:30 Capture/Replay: Skip test of new failing tests Bug: angleproject:6663 Change-Id: Ic253a4695eb4c27df2e77641df9f03b2ad8a33e4 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3266172 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Jonah Ryan-Davis 01716170 2021-10-14T13:24:41 Metal: Reintroduce GPU power preference selection code. This CL re-introduces the GPU power preference code to the metal backend. It also reworks EGLDisplay caching in the frontend to cache based on the native display as well as the power preference attribute. A new extension, EGL_ANGLE_display_power_preference is added based on EGL_ANGLE_power_preference. This extension is a client extension that allows selection of GPU on display creation, similar to how GPUs are selected on context creation in EGL_ANGLE_power_preference. This CL adds EGLDisplayPowerPreferenceTest and enables it on the metal backend. Bug: angleproject:6143 Change-Id: I0a081dcd2e3f18ab365fdd3498ddcb6e2ba35212 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3231986 Reviewed-by: Kenneth Russell <kbr@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Gregg Tavares <gman@chromium.org> Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
Shahbaz Youssefi 79a5dc0a 2021-11-05T23:26:43 Vulkan: Fix spammy best practices message A GPU WRITE->HOST barrier frequently issued when the GPU outputs to a host-visible buffer used the ALL_COMMANDS stage mask causing a best practices message. This message is suppressed in ANGLE, but shows up in RenderDoc and clutters the output. Bug: angleproject:5070 Change-Id: I59aa7f8c7b3bf2788a3f7ae0ab6abdb4d3cd175e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3265606 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Maksim Sisov 1f42f6bd 2021-11-03T13:28:01 Add GL_RGB10_EXT format into list of supported formats. When running with Wayland, EGL returns rgb10 buffer format in egl config, which makes assertion to explode in formatutils as this format is not in list of supported formats. GL_RGB10_EXT is under the ES1 extension GL_OES_required_internalformat. Thus, add it to the format table. Bug: chromium:1231934 Change-Id: Ib47af538b16d6c7a652a44e0674757d292ac1394 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3253376 Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Maksim Sisov <msisov@igalia.com>
Tim Van Patten 5d8a89e4 2021-11-02T19:57:04 Vulkan: Always override surface format GL_RGB8 to GL_RGBA8 If an app requests to create a surface with GL_RGB8, override it to be GL_RGBA8 for Android. This is to workaround an issue with the Android Vulkan loader which limits which formats can be used with swapchains. This CL also adds GL_RGB8 back to DisplayVkAndroid::generateConfigs(), effectively reverting the following CL: https://chromium-review.googlesource.com/c/angle/angle/+/3235466 This is being done with this CL (rather than reverting) since these changes are required to handle surfaces created with GL_RGB8. Bug: angleproject:6277 Bug: angleproject:6651 Change-Id: Iad78ea0d7bdf12e1e309ed6a7181f08fac38b9de Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3258143 Reviewed-by: Tim Van Patten <timvp@google.com> Reviewed-by: Ian Elliott <ianelliott@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Tim Van Patten <timvp@google.com>
Shahbaz Youssefi 3861c903 2021-11-05T17:19:34 Capture/Replay: Unsupress failures due to I/O block zero-init Bug: angleproject:6609 Bug: angleproject:6610 Change-Id: I771db9d26122ce1e5955ee092c6ca05af65fde95 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3265605 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Shahbaz Youssefi adf878f3 2021-11-05T17:16:57 Vulkan: Synchronization tests for read-to-read transitions Bug: angleproject:6663 Change-Id: I89aafa6c197233b75562c0faa1d5331969eeedf9 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3265604 Reviewed-by: Charlie Lao <cclao@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Shahbaz Youssefi 52d6e363 2021-11-03T12:46:10 Translator: Fix zero-init of nameless I/O blocks Bug: angleproject:6609 Change-Id: I680fec85d53709f9abd3680a9dc5794ecfae6588 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3260326 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Jamie Madill 4fd4eb50 2021-11-05T11:14:47 Vulkan: Minor cleanups. Makes some VkFlags into VkAccessFlags to aid with code search. Also corrects a few typos. Bug: angleproject:6566 Change-Id: Ia4d14d38bb6d4e8c4c71fed6038c12edae112be9 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3264224 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Shahbaz Youssefi e10768f0 2021-11-03T12:23:11 Translator: Fix zero-init of I/O block arrays Bug: angleproject:6609 Change-Id: I8245e868fe6bc4798e74088916e1d8cdd0727b6b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3260325 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Peng Huang d7090f5d 2021-10-29T10:45:19 Add more attributes for EGL_ANGLE_device_vulkan Bug: chromium:1264439 Change-Id: Ibc9676cef16411b17c833abe9559721811016eef Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3264164 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Peng Huang <penghuang@chromium.org>
Jamie Madill f7bcd910 2021-11-05T11:24:34 Vulkan: Skip VVL barrier warning on SwiftShader. This gets tripped up from our barrier handling code. Bug: angleproject:6656 Change-Id: Iefb1c898ca6506e81a19a0928beaf221dcdf8f4e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3264225 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Jamie Madill 019ddad5 2021-11-04T13:22:47 Reset cache in ProgramExecutable::updateActiveSamplers. This missing reset was causing incorrect state validation to persist in a few instances. Bug: chromium:1266437 Change-Id: I7ab47c81bf9f855e3ad75048f9d1aaefbc2291df Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3262477 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Tim Van Patten 8c9b8f03 2021-11-03T14:50:54 Capture/Replay: Don't finish() destroyed Contexts If an app destroys a context, but keeps it current on a thread, ANGLE will reset the context, but can't delete it. This can lead to a segfault if ANGLE attempts to call Context::finish() on a destroyed context. To solve this, check if the context has been destroyed in ShareGroup::finishAllContexts(). Bug: angleproject:6653 Change-Id: Ib30e352ad6395e01f8fab0095cd6231dfb10d8ae Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3260726 Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Tim Van Patten <timvp@google.com>
Cody Northrop 45ffabd0 2021-11-04T09:45:03 Skip world_cricket_championship_2 Intel Linux Timing out. Bug: angleproject:6657 Change-Id: Ia4b6456adbffd41764ae2bccac6d1cf79f3b4fb6 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3262032 Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Cody Northrop 73da1648 2021-11-04T09:26:00 Tests: Skip zillow trace on desktop Vulkan Bug: angleproject:6658 Change-Id: I0d0152c83930b6a789bd9660ad2f16e9a8e9f80a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3262031 Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Shahbaz Youssefi 30b01d8f 2021-11-03T15:56:47 Fix multiview framebuffer completeness check In the process of dropping ANGLE_multiview in favor of OVR_multiview, the framebuffer completeness checks have become stale. In particular: - There is no requirement that the base layer of the attachments match - There _is_ a requirement that base+count layers are within the texture boundaries. Bug: chromium:1264988 Change-Id: I86837b587ad5befaa6a545c5a24507e8dff0b568 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3259272 Reviewed-by: Alexis Hetu <sugoi@google.com> Reviewed-by: Alexis Hétu <sugoi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Cody Northrop 2091451e 2021-10-27T22:57:34 GLES1: Create multiple shaders based on state This CL introduces the concept of having optimized shaders for given state combinations. In this first pass, all uniform bools have been moved to hard coded values in the GLES1 ubershader. Frame times on Android ARM with locked GPU clocks: Trace Before After dr_driving: 27.8145 -> 4.2986 sonic_the_hedgehog: 17.9779 -> 2.8223 summoners_war: 93.2040 -> 15.9810 wordscapes: 53.9227 -> 7.6167 zillow: 15.0323 -> 2.9368 Bug: angleproject:6644 Bug: angleproject:6652 Change-Id: I548bc5c6aa24bad5fbd740b9552c4a703ae41354 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3251688 Reviewed-by: Lingfeng Yang <lfy@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Tim Van Patten 7e70818a 2021-11-03T16:52:28 Capture/Replay: Skip failing UniformTest tests The following tests are failing on win-trace: UniformTest.UnusedStructInlineUniform UniformTest.UnusedStructInlineUniformWithSampler They were added by this CL: https://chromium-review.googlesource.com/c/angle/angle/+/3256235 Bug: angleproject:6654 Bug: angleproject:6641 Change-Id: Ibce2a9ef1795ffeb50bce5546d558ce12166cd17 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3260733 Reviewed-by: Tim Van Patten <timvp@google.com> Commit-Queue: Tim Van Patten <timvp@google.com>
Kyle Piddington 77eb8a49 2021-10-29T10:36:06 Metal: Reduce memory usage of attribute re-writing Rework vertex buffer caching to allow us to reuse parts of converted buffers. Reusing conversions dramatically drops the memory usage when drawing index ranges by offset with unaligned attributes. Bug: angleproject:6638 Change-Id: I79797da202629b1632e1397ce1227ee3d7a1c9d7 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3251467 Commit-Queue: Kyle Piddington <kpiddington@apple.com> Reviewed-by: Le Hoang Quyen <le.hoang.q@gmail.com> Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Amirali Abdolrashidi 0777af70 2021-11-02T11:14:06 Env var for EXT_framebuffer_fetch_non_coherent * Added an environment variable/Android property to remove the restriction on exposing GL_EXT_shader_framebuffer_fetch_non_coherent on ARM and Qualcomm. * Environment variable: ANGLE_ENABLE_EXT_SHADER_FRAMEBUFFER _FETCH_NON_COHERENT_OVERRIDE * Android property: debug.angle.enable.ext_shader_framebuffer _fetch_non_coherent_override Bug: angleproject:6519 Change-Id: I62e80f348c2ffda7d1d63496e3a2aedad9d69229 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3258363 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Charlie Lao <cclao@google.com>
Yuxin Hu 8aec7f35 2021-11-02T22:01:25 Add World Cricket Championship 2 Trace Test: angle_perftests --gtest_filter="*world_cricket_championship_2*" Bug: b/194508692 Change-Id: I0f36eba247b4726bc13b327634c429339ad1297c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3258343 Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Tim Van Patten <timvp@google.com> Commit-Queue: Yuxin Hu <yuxinhu@google.com>
Tim Van Patten afaa1287 2021-10-26T19:29:44 Vulkan: Don't submit XFB queries when XFB is inactive Consider the following GL commands: glBeginQuery(GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN) glBeginTransformFeedback() glDrawArrays() glPauseTransformFeedback() glDrawArrays() glResumeTransformFeedback() glDrawArrays() glEndTransformFeedback() glEndQuery(GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN) The renderpass is broken for each of the draw calls, leading to pauseRenderPassQueriesIfActive() and resumeRenderPassQueriesIfActive() being called when the RP is stopped/started. This leads ANGLE to generate 3 TransformFeedbackPrimitivesWritten queries when looping through the "active" queries, since no consideration is made for XFB actually being active/unpaused. ARM doesn't support the TransformFeedbackPrimitivesWritten query when XFB is disabled. Instead, the query is never completed and the results are never available. It could probably be argued that this is an ARM bug, and they should just output '0' if XFB isn't active during the query. Regardless, ANGLE shouldn't be issuing the queries when XFB is no active, since it's wasteful. Bug: angleproject:6622 Test: dEQP.GLES3/functional_transform_feedback* Test: TransformFeedbackTest.TransformFeedbackQueryPausedDrawThenResume Change-Id: I380fb60405d7f538b802bb0df72bf609f0bc58e9 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3246532 Reviewed-by: Charlie Lao <cclao@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Tim Van Patten <timvp@google.com>
Kyle Piddington 0e9e321b 2021-11-01T17:04:05 Metal: Anonymous unused uniform structs not named. Due to some upstream changes, unused uniform structs are not being given a name. These structs cause compilation failures, which has completely caused shadertoy.com to fail to render. Skip the check when naming embedded structs to allow uniform struct types to still be named, even when no uniform exists. Unskip targeted tests on the Metal backend which were added previously in Issue 6641. These still need to be fixed more generically for the Vulkan backend. Also suppress flaky WebGLCompatibilityTest.RG32FTextures test on Mac Intel OpenGL, which affected this CL. Bug: angleproject:6642 Bug: angleproject:6641 Bug: angleproject:6570 Change-Id: I598fc212f4db3d3b7c5617bd8a87f8b7db60706c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3258341 Commit-Queue: Kenneth Russell <kbr@chromium.org> Reviewed-by: Gregg Tavares <gman@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Gregg Tavares 604610b4 2021-11-01T12:03:31 Metal: Use Depth32F for DEPTH_COMPONENT16 depth16unorm is broken on Metal. This is a workaround. Bug: angleproject:6597 Change-Id: I1748f9fab587b22980d13e8a141fa880eb6f9db0 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3255666 Reviewed-by: Kenneth Russell <kbr@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Gregg Tavares <gman@chromium.org>
Kyle Piddington 88ca3b18 2021-11-01T16:54:40 Expose translator issues with struct samplers. Struct samplers assert in the Vulkan and Metal backends during rewriting. Add a test - skipped for now on these backends - to highlight this issue. Bug: angleproject:6641 Change-Id: I95cbc9e5f4122f1ac7db926ac44c4cccc1b6f87a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3256235 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Kenneth Russell <kbr@chromium.org>
Shahbaz Youssefi a517d4d9 2021-11-01T16:21:06 Vulkan: Regression test for xfb query before resume Bug: angleproject:6622 Change-Id: If15195437e656dc20aed10d02cf8429ad15ae3d2 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3254432 Reviewed-by: Tim Van Patten <timvp@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>