Log

Author Commit Date CI Message
Jamie Madill cf9b2853 2019-02-13T09:15:26 Roll Google Test. Updates our build files to be more consistent with Chromium. Also rolls SPIRV-Tools to use newer test fixture syntax. Note: requires an update to SPIRV-Tools to pass 'gn check'. Bug: angleproject:3151 Change-Id: I8abddef396f84e5c58cdd185421f03fd6e2b6d58 Reviewed-on: https://chromium-review.googlesource.com/c/1470591 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Jamie Madill <jmadill@google.com>
Shahbaz Youssefi b9039bf7 2019-02-12T15:30:48 Vulkan: fix numerous formats missing support Vulkan _SRGB formats have a suffix of _UNORM_SRGB in the corresponding angle name. Vulkan A2B10G10R10_*_PACK32 formats have angle names in the form R10G10B10A2_*. A16 and A32 formats are emulated similar to A8. Some formats that are not in the front-end are removed. Bug: angleproject:2364, angleproject:2405 Change-Id: I00718f450a374912d57d3c00ea167ce486e10aa0 Reviewed-on: https://chromium-review.googlesource.com/c/1468042 Reviewed-by: Jamie Madill <jmadill@google.com> Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Ian Elliott <ianelliott@google.com> Commit-Queue: Ian Elliott <ianelliott@google.com>
Tim Van Patten ee4fa078 2019-02-21T19:21:09 Reland "Create Container ANGLE APK" This reverts commit 902ceed3998617e97aad25d6b632f9e34dff2644. Reason for revert: Re-landing this since the Chromium build fix has landed: https://bugs.chromium.org/p/chromium/issues/detail?id=933783#c29 Comment 29 by gbeaty@chromium.org, Today (13 minutes ago) Tim, you should be able to re-land your change now. Original change's description: > Revert "Create Container ANGLE APK" > > This reverts commit e82c857d38549da44de2c055e9e677a368e8793f. > > Reason for revert: > This is breaking the ANGLE build in the Chromium build process: > > https://bugs.chromium.org/p/chromium/issues/detail?id=933783#c6 > > Original change's description: > > Create Container ANGLE APK > > > > The ANGLE APK needs to be reverted back to just being a container > > for the ANGLE shared object libraries, since the rest of the APK > > contents are in the Android source tree. > > > > Bug: angleproject:3154 > > Test: 'adb sync' the APK on to a device > > Change-Id: Id245f1e3d269c71054d9759e8ba8be0532afe659 > > Reviewed-on: https://chromium-review.googlesource.com/c/1474341 > > Commit-Queue: Tim Van Patten <timvp@google.com> > > Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com> > > TBR=ynovikov@chromium.org,jmadill@google.com,cnorthrop@google.com,courtneygo@google.com,timvp@google.com > > Change-Id: I71a739faa2052a707a06bce616ab43a621d5a4ff > No-Presubmit: true > No-Tree-Checks: true > No-Try: true > Bug: angleproject:3154 > Reviewed-on: https://chromium-review.googlesource.com/c/1478333 > Reviewed-by: Tim Van Patten <timvp@google.com> > Commit-Queue: Tim Van Patten <timvp@google.com> TBR=ynovikov@chromium.org,jmadill@google.com,cnorthrop@google.com,courtneygo@google.com,timvp@google.com # Not skipping CQ checks because original CL landed > 1 day ago. Bug: angleproject:3154 Change-Id: If3a9abfb1c00aab3278437a233bef29d5febe5a5 Reviewed-on: https://chromium-review.googlesource.com/c/1480865 Reviewed-by: Tim Van Patten <timvp@google.com> Commit-Queue: Tim Van Patten <timvp@google.com>
Shahbaz Youssefi 962c222a 2019-02-20T15:43:41 Vulkan: Enable anisotropy feature when available If anisotropic filtering is used, the feature must be enabled at device creation time. This was missing. Bug: angleproject:2901 Change-Id: I86db55f8b1696dc04eae922b941512f786aa12b8 Reviewed-on: https://chromium-review.googlesource.com/c/1479264 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@google.com>
Jamie Madill 08573730 2019-02-20T19:59:22 Enable vertex_arrays tests on Android. These appear to be passing now. Bug: angleproject:1484 Change-Id: I0a52f73c87aeea2e0fba360063109b74aa6aa365 Reviewed-on: https://chromium-review.googlesource.com/c/1479904 Reviewed-by: Jamie Madill <jmadill@google.com> Commit-Queue: Jamie Madill <jmadill@google.com>
Jamie Madill 568a3425 2019-02-20T19:58:41 Enable texture.mipmap tests on Android. These appear to be passing on the bots. Bug: angleproject:1489 Change-Id: I1d672187f9bfe72189291309b90049fd128b1392 Reviewed-on: https://chromium-review.googlesource.com/c/1479903 Reviewed-by: Jamie Madill <jmadill@google.com> Commit-Queue: Jamie Madill <jmadill@google.com>
Jamie Madill 6cdb01f4 2019-02-20T19:54:24 Update fbo.completeness expectations on Android. The depth_stencil_unsigned_int_24_8 tests are passing now. The srgb8 failures are tracked in http://anglebug.com/1028. Bug: angleproject:1487 Change-Id: Id85fc00acfd1b59d4b7bfdd00596f2c18a583e5c Reviewed-on: https://chromium-review.googlesource.com/c/1479902 Reviewed-by: Jamie Madill <jmadill@google.com> Commit-Queue: Jamie Madill <jmadill@google.com>
Jamie Madill 1ceb9c8e 2019-02-20T19:50:57 Enable clipping.triangle_vertex test on Android. Seems to be fixed with newer compilers. Bug: angleproject:1485 Change-Id: I2954548d8f5370b57302c40fc40b6458f79fd7ed Reviewed-on: https://chromium-review.googlesource.com/c/1479901 Reviewed-by: Jamie Madill <jmadill@google.com> Commit-Queue: Jamie Madill <jmadill@google.com>
Jamie Madill 2ac98885 2019-02-20T18:49:57 Enable fbo.completeness.attachment_combinations on Android. These tests are all passing with "unsupported". Bug: angleproject:1486 Change-Id: I532000b4934ed66fd61f39312013a6da8f3dd86f Reviewed-on: https://chromium-review.googlesource.com/c/1479897 Reviewed-by: Jamie Madill <jmadill@google.com> Commit-Queue: Jamie Madill <jmadill@google.com>
Kevin Schoedel eef531f1 2019-02-20T16:33:21 Disable broken test on Fuchsia This disables the ImageTest.SourceCubeTargetRenderbuffer test that does not work on Fuchsia. BUG=angleproject:2475, angleproject:3145 TEST=angle_end2end_tests on Fuchsia Change-Id: I8e681926ee322642b39c32b3bc0cd266ffa1d11f Reviewed-on: https://chromium-review.googlesource.com/c/1479283 Reviewed-by: Jamie Madill <jmadill@google.com> Commit-Queue: Jamie Madill <jmadill@google.com>
Victor Costan ffd39978 2019-02-20T10:45:24 test: Replace _TEST_CASE_ with _TEST_SUITE_. Googletest is (at last) converging with industry-standard terminology [1]. We previously called test suites "test cases", which was rather confusing for folks coming from any other testing framework. Chrome now has a googletest version that supports _TEST_SUITE_ macros instead of _TEST_CASE_, so this CL cleans up some of the outdated usage. [1] https://github.com/google/googletest/blob/master/googletest/docs/primer.md#beware-of-the-nomenclature Bug: chromium:925652 Change-Id: Ia0deec0bc4216ef1adabc33985a7cbda89682608 Reviewed-on: https://chromium-review.googlesource.com/c/1477418 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Victor Costan <pwnall@chromium.org>
Tim Van Patten 902ceed3 2019-02-20T16:49:22 Revert "Create Container ANGLE APK" This reverts commit e82c857d38549da44de2c055e9e677a368e8793f. Reason for revert: This is breaking the ANGLE build in the Chromium build process: https://bugs.chromium.org/p/chromium/issues/detail?id=933783#c6 Original change's description: > Create Container ANGLE APK > > The ANGLE APK needs to be reverted back to just being a container > for the ANGLE shared object libraries, since the rest of the APK > contents are in the Android source tree. > > Bug: angleproject:3154 > Test: 'adb sync' the APK on to a device > Change-Id: Id245f1e3d269c71054d9759e8ba8be0532afe659 > Reviewed-on: https://chromium-review.googlesource.com/c/1474341 > Commit-Queue: Tim Van Patten <timvp@google.com> > Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com> TBR=ynovikov@chromium.org,jmadill@google.com,cnorthrop@google.com,courtneygo@google.com,timvp@google.com Change-Id: I71a739faa2052a707a06bce616ab43a621d5a4ff No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: angleproject:3154 Reviewed-on: https://chromium-review.googlesource.com/c/1478333 Reviewed-by: Tim Van Patten <timvp@google.com> Commit-Queue: Tim Van Patten <timvp@google.com>
Yuly Novikov 3d544fff 2019-02-19T12:02:06 Temporarily disable creating D3D debug device. To diagnose whether Windows Intel end2end tests flakiness is related to creating debug device and new version of Windows SDK. Bug: angleproject:3153 Change-Id: Ica7eae3fe875e22203b6dfd98b83604d66a97737 Reviewed-on: https://chromium-review.googlesource.com/c/1476954 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Tim Van Patten e82c857d 2019-02-14T16:22:20 Create Container ANGLE APK The ANGLE APK needs to be reverted back to just being a container for the ANGLE shared object libraries, since the rest of the APK contents are in the Android source tree. Bug: angleproject:3154 Test: 'adb sync' the APK on to a device Change-Id: Id245f1e3d269c71054d9759e8ba8be0532afe659 Reviewed-on: https://chromium-review.googlesource.com/c/1474341 Commit-Queue: Tim Van Patten <timvp@google.com> Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
Jonah Ryan-Davis 1d35d511 2019-02-15T15:39:27 Revert "Fix unit test for setting locale creating malformed HLSL shader code" This reverts commit 5f662c0042703344eb0eef6d1c123e902e3aefbf. Reason for revert: Some recent crashes related to streams, could be related to this change. https://bugs.chromium.org/p/chromium/issues/detail?id=932359 Original change's description: > Fix unit test for setting locale creating malformed HLSL shader code > Fix malformed HLSL shader code in other locales than classic > > Bug: angleproject:1433 > Change-Id: I30bad0bd0cfda465ec7200e48e12800d7d8efd26 > Reviewed-on: https://chromium-review.googlesource.com/c/1447862 > Reviewed-by: Geoff Lang <geofflang@chromium.org> > Reviewed-by: Jamie Madill <jmadill@chromium.org> > Commit-Queue: Jonah Ryan-Davis <jonahr@google.com> TBR=geofflang@chromium.org,jmadill@chromium.org,jonahr@google.com Bug: angleproject:1433 Change-Id: I28caa073b3996a95f3f233bed9dc91dc44263835 Reviewed-on: https://chromium-review.googlesource.com/c/1474624 Reviewed-by: Jonah Ryan-Davis <jonahr@google.com> Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org>
Victor Costan aca30f56 2019-02-18T17:16:04 Roll googletest to the same version as Chromium. Bug: chromium:925652 Change-Id: Id59c29ede2fea155628bdfa2218067a28109f069 Reviewed-on: https://chromium-review.googlesource.com/c/1476874 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org>
Qin Jiajia 6a492c27 2019-02-18T13:45:02 Update ES31 dEQP test expectation More SSBO related deqp cases pass due to the implementation of atomic counter. Bug: angleproject:1951 Change-Id: I1a6ed6001b9b2d06e74aab105d1a7852abbb9902 Reviewed-on: https://chromium-review.googlesource.com/c/1476950 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jiajia Qin <jiajia.qin@intel.com>
Shahbaz Youssefi 028df5f5 2019-02-13T12:57:10 Vulkan: Implement transfer path for texture copy This is primarily in preparation for compressed texture copy, but has the following side effect: - When transfer is possible, it's faster than draw - When texture format does not support draw (but transfer is possible), it will avoid copying through CPU. Bug: angleproject:2670 Change-Id: I49e1b51e6ccec875db3f971106687c7d48c4916f Reviewed-on: https://chromium-review.googlesource.com/c/1470595 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
James Darpinian 8a64926e 2019-02-15T13:55:36 Restore the active program after transform feedback When calling EndTransformFeedback, we might change the current program. This sets a dirty bit, but it might not get cleared before the next draw call, so this change makes us manually restore the program state after calling EndTransformFeedback. This is a follow-up to: https://chromium-review.googlesource.com/c/angle/angle/+/1448661 Bug: 832238 Change-Id: I1bea1b9685f55d68b04439a9b0a305deb48708c0 Reviewed-on: https://chromium-review.googlesource.com/c/1475061 Commit-Queue: James Darpinian <jdarpinian@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
jchen10 23ed69cb 2019-01-23T10:36:34 Make WARN() and ERR() thread safe This adds a global mutex lock to protect logging messages from worker threads. BUG=922936 Change-Id: I42e2a7b560da6f6a8b120b74252adce115ccda20 Reviewed-on: https://chromium-review.googlesource.com/c/1429479 Commit-Queue: Jie A Chen <jie.a.chen@intel.com> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Ian Elliott 9429f216 2019-02-15T10:43:14 Vulkan: Add missing EGLConfigs for Android Native pixel formats GL_RGBA16F correlates to HAL_PIXEL_FORMAT_RGBA_FP16. GL_RGB10_A2 that correlates to HAL_PIXEL_FORMAT_RGBA_1010102. This fills-in key holes between generated ANGLE config formats and the Android native formats after GL_RGB565 was added to fix the configs that were missing for some games. Modified EGLContextCompatibilityTest to exclude GL_RGB10_A2 and GL_RGBA16F from some of the EGLContextCompatibilityTest cases. EGLContextCompatibilityTest uses the OSWindow utility, which only works with UNORM-compatible EGLConfigs that are a proper subset of GL_RGBA8. The new configs won't work with the WindowDifferentConfig and WindowSameConfig test cases. Bug: angleproject:3155 Change-Id: I693ed24f13ba787ea6d661f42ec65dc3d26f08f6 Reviewed-on: https://chromium-review.googlesource.com/c/1276807 Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Ian Elliott <ianelliott@google.com>
Courtney Goeltzenleuchter b6c1c66d 2019-02-15T08:30:45 Vulkan: Discard scissor if either dimension is 0 Test: adb shell am start -n com.drawelements.deqp/android.app.NativeActivity \ -e cmdLine '"deqp --deqp-case=dEQP-GLES2.functional.color_clear.* \ --deqp-log-filename=/sdcard/dEQP-Log.qpa"' run_angle_end2end_tests --gtest_filter=ClearTest.EmptyScissor/ES2_VULKAN Bug: angleproject:3114 Change-Id: Icd6ec39c993854f1dbc2fd9221b374e7d4541058 Reviewed-on: https://chromium-review.googlesource.com/c/1475235 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Courtney Goeltzenleuchter <courtneygo@google.com>
Jonah Ryan-Davis 25686848 2019-02-07T15:21:27 Refactor ANGLE's extensions struct to more easily represent multiple vendor extension Some extensions are available from multiple vendors with the same name, while minimizing the amount of duplicated code and validation errors. The anonymous struct allows individual vendor checks as well as an "*Any()" check to check for any version of the extension. Bug: angleproject:3104 Change-Id: Ib8b65cde850462d3746d9663496a595321817514 Reviewed-on: https://chromium-review.googlesource.com/c/1456619 Commit-Queue: Jonah Ryan-Davis <jonahr@google.com> Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Enrico Galli c1c9fb1b 2018-10-18T11:41:50 ES31: Add atomic counter buffer support to D3D11 renderer Adds support for atomic counters to the D3D11 renderer using UAV. Bug: angleproject:1729 Test: angle_end2end_tests Change-Id: I2904ba62644685b7d91f7475bd80a81ae414993b Reviewed-on: https://chromium-review.googlesource.com/c/1451259 Commit-Queue: Geoff Lang <geofflang@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
jchen10 aead8edf 2019-02-13T13:55:09 Mute worker context creation warnings This moves the warnings to InfoLog. Bug: chromium:931294 Change-Id: I1627aa63bdda6f92fc89b8921eb260302ba9063f Reviewed-on: https://chromium-review.googlesource.com/c/1469721 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Jie A Chen <jie.a.chen@intel.com>
Yuly Novikov 559aaca5 2019-02-14T18:24:07 Fix texture and buffer data bugs in tests found by ASAN. Bug: angleproject:3153 Change-Id: Iacb7b2b97b9fc5c68fbee03c66d71eb72a53b4d6 Reviewed-on: https://chromium-review.googlesource.com/c/1474342 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
James Darpinian 4b654982 2019-01-31T17:04:14 GL backend: Transform feedback driver bug workaround In some drivers, if transform feedback is paused and a new program is bound, calling endTransformFeedback does not correctly unpause first, creating an invalid paused but inactive state that causes errors later. Before calling endTransformFeedback we first ensure that the current program is the one associated with this transform feedback object when beginTransformFeedback was called. Bug: 832238 Change-Id: I2373b0c123fd20a7ee3ada76ed878d4968184476 Reviewed-on: https://chromium-review.googlesource.com/c/1448661 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: James Darpinian <jdarpinian@chromium.org>
Michael Spang 4154c1c1 2019-02-12T15:43:03 Fuchsia: Migrate ScenicWindow to ViewV2 Fuchsia is transitioning its view creation APIs. Migrate to the new one. BUG=angleproject:2475 TEST=angle_end2end_tests on Fuchsia Change-Id: I09abfda18a5e3da46909b5b967325a083586a7d0 Reviewed-on: https://chromium-review.googlesource.com/c/1474337 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Michael Spang <spang@chromium.org>
Geoff Lang 366df2b2 2019-01-18T15:40:34 Vulkan: Support external texture binding points. BUG=angleproject:2668 BUG=angleproject:3023 Change-Id: Idab0c4cbe1c7ed203ace50f1a6701dba11a40242 Reviewed-on: https://chromium-review.googlesource.com/c/1422548 Commit-Queue: Geoff Lang <geofflang@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Tim Van Patten 77874e2c 2019-02-13T09:15:06 Vulkan: Reduce Default Descriptor Pool Max Sets The current value of kDefaultDescriptorPoolMaxSets is 2048, which allocates too much memory on a Pixel device, causing Android's low memory killer to terminate dEQP (leading to a test failure). This change reduces the value of kDefaultDescriptorPoolMaxSets to 128 to reduce the memory usage during the test. We suspect a later change may be required to dynamically grow the descriptor pools and update the recycling behavior. This change also exposed a bug in the ANGLERenderTest where the swap() call was being skipped for null devices. This was causing code that ANGLE requires to clean up and re-use resources to be skipped. Enabling the swap() call fixes this issue as well as improves performance for the test overall. This does make comparing old performance values to new difficult (if not entirely incorrect), so take care when doing so. dEQP-EGL.functional.multicontext.non_shared_clear Bug: angleproject:3056 Bug: angleproject:3135 Change-Id: Ibdfd3a5eb436a7ba4e45002ebef5809afe777af1 Reviewed-on: https://chromium-review.googlesource.com/c/1470830 Commit-Queue: Tim Van Patten <timvp@google.com> Reviewed-by: Tobin Ehlis <tobine@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Frank Henigman 52047de4 2018-11-13T17:22:36 Vulkan: support instanced draws. (reland) Enable instanced draws with the Vulkan backend. So far it only works when Vulkan has VK_EXT_vertex_attribute_divisor. BUG=angleproject:2672 Change-Id: Ib6655625776344305911a1a742c85f17638cee8f Reviewed-on: https://chromium-review.googlesource.com/c/1469263 Reviewed-by: Frank Henigman <fjhenigman@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Frank Henigman <fjhenigman@chromium.org>
Shahbaz Youssefi 0c01e367 2019-02-13T21:27:23 Revert "Vulkan: Implement debug markers" This reverts commit 983e446921946734fe47217c345a8fe2f079319d. Reason for revert: Depends on a CL that's reverted: https://chromium-review.googlesource.com/c/angle/angle/+/1470605 Original change's description: > Vulkan: Implement debug markers > > Covers both GL_KHR_debug and GL_EXT_debug_marker. > > Debug markers are used to specify events or hierarchically categorize a > set of commands within the command buffer. When debugging, this allows > for quicker navigation to the draw calls of interest, and otherwise > provides context to debug output. > > Bug: angleproject:2853 > Change-Id: Id65e11fc877d9e70b6fd0fae7f0bbbcb1164bf10 > Reviewed-on: https://chromium-review.googlesource.com/c/1403956 > Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> > Reviewed-by: Jamie Madill <jmadill@chromium.org> > Reviewed-by: Geoff Lang <geofflang@chromium.org> TBR=geofflang@chromium.org,jmadill@chromium.org,syoussefi@chromium.org Change-Id: I7fcfc8683195d396aec61848719f52c0fa049ece No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: angleproject:2853 Reviewed-on: https://chromium-review.googlesource.com/c/1470606 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Shahbaz Youssefi 3805122b 2019-02-13T21:21:13 Revert "Roll Vulkan repos" This reverts commit 55ea947c3bdd6c0ef68fc4b9ddbda26889f62622. Reason for revert: Seems to be causing a memory corruption on Windows/Intel bots. Original change's description: > Roll Vulkan repos > > Bug: angleproject:3095 > Change-Id: I6ae9d61304981223f9e2f1869ed32612aa38952c > Reviewed-on: https://chromium-review.googlesource.com/c/1405714 > Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> > Reviewed-by: Yuly Novikov <ynovikov@chromium.org> TBR=ynovikov@chromium.org,jmadill@chromium.org,syoussefi@chromium.org Change-Id: I61879770c9bb16ac2231b081bda08e6211ba6831 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: angleproject:3095 Reviewed-on: https://chromium-review.googlesource.com/c/1470605 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Courtney Goeltzenleuchter 6fc22a13 2019-02-01T12:53:01 Vulkan: Discard scissored clears where scissor is null If a clear becomes a no-op because the scissor has a width and height of 0, return early and skip the draw. This also works around a driver issue on some devices where it was ignoring a null scissor and drawing the clear anyway. Found with deqp test: adb shell am start -n com.drawelements.deqp/android.app.NativeActivity \ -e cmdLine '"deqp --deqp-case=dEQP-GLES2.functional.color_clear.* \ --deqp-log-filename=/sdcard/dEQP-Log.qpa"' run_angle_end2end_tests --gtest_filter=ClearTest.EmptyScissor/ES2_VULKAN Bug: angleproject:3114 Change-Id: I6cf2716bd93bb332f74b44c7250e363c68cc614f Reviewed-on: https://chromium-review.googlesource.com/c/1436841 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Shahbaz Youssefi 983e4469 2019-01-18T16:04:50 Vulkan: Implement debug markers Covers both GL_KHR_debug and GL_EXT_debug_marker. Debug markers are used to specify events or hierarchically categorize a set of commands within the command buffer. When debugging, this allows for quicker navigation to the draw calls of interest, and otherwise provides context to debug output. Bug: angleproject:2853 Change-Id: Id65e11fc877d9e70b6fd0fae7f0bbbcb1164bf10 Reviewed-on: https://chromium-review.googlesource.com/c/1403956 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Shahbaz Youssefi 55ea947c 2019-01-10T14:25:29 Roll Vulkan repos Bug: angleproject:3095 Change-Id: I6ae9d61304981223f9e2f1869ed32612aa38952c Reviewed-on: https://chromium-review.googlesource.com/c/1405714 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Michael Spang d8506c7e 2019-01-29T15:35:09 Disable broken tests on Fuchsia (reland) This disables tests that do not work on Fuchsia. Most of them are related to cube maps which currently crash inside the intel driver. Reland disabling -Wextra-semi. BUG=angleproject:2475, angleproject:3145, angleproject:3081 TEST=angle_end2end_tests on Fuchsia Change-Id: I65ad84f43c88e8ee83c581cc2f41046d00bbae7f Reviewed-on: https://chromium-review.googlesource.com/c/1467604 Commit-Queue: Michael Spang <spang@chromium.org> Reviewed-by: Michael Spang <spang@chromium.org>
Michael Spang 229fc83d 2019-01-21T18:09:15 Vulkan: Port renderer to Fuchsia (reland) Add DisplayVk and WindowSurfaceVk subclasses for Fuchsia to the vulkan renderer, as well as an implementation of OSWindow that renders fullscreen for the test suite. Disallow use of the vulkan loader from third_party as Fuchsia uses a fork of the loader and has not sent those changes upstream yet. Add a small wayland-inspired library libfuchsia-egl to provide a type "struct fuchsia_egl_window" to use as EGLNativeWindowType. This type combines a zx_handle_t to an image pipe channel and a surface size. Image pipes can only be used once to create a VkSurfaceKHR. This means we have to recreate the pipe in tests that call eglCreateWindowSurface more than once with a single OSWindow, or the second call will fail. Add a resetNativeWindow() method to accomplish this. Reland disabling -Wextra-semi. BUG=angleproject:2475 TEST=angle_end2end_tests on Fuchsia Change-Id: Ie91715bcd760c6c04d4b8a02a91daa71e32ee30c Reviewed-on: https://chromium-review.googlesource.com/c/1467603 Commit-Queue: Michael Spang <spang@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Geoff Lang eca36cb5 2019-01-18T14:03:52 Vulkan: Support EGL images sourced from cube maps. Store an image array offset and source texture type in ImageVk to select the correct cube face from the source texture. BUG=angleproject:2668 Change-Id: I03ad25feccb769c906dd28fb573ec342e7816863 Reviewed-on: https://chromium-review.googlesource.com/c/1422542 Commit-Queue: Geoff Lang <geofflang@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Shahbaz Youssefi 341304d8 2019-02-12T20:58:54 Revert "Vulkan: support instanced draws." This reverts commit 199a9f385f5489b957fe1e42bf08f3f40edd38ca. Reason for revert: Causes a validation error when the extension is not present. See failures here: https://ci.chromium.org/p/chromium/builders/luci.chromium.try/win-angle-rel/693 Original change's description: > Vulkan: support instanced draws. > > Enable instanced draws with the Vulkan backend. > So far it only works when Vulkan has VK_EXT_vertex_attribute_divisor. > > BUG=angleproject:2672 > > Change-Id: I9445ba64282fa00a6eaee207b15efa2c7a9abbd3 > Reviewed-on: https://chromium-review.googlesource.com/c/1334973 > Commit-Queue: Frank Henigman <fjhenigman@chromium.org> > Reviewed-by: Jamie Madill <jmadill@chromium.org> TBR=fjhenigman@chromium.org,jmadill@chromium.org,syoussefi@chromium.org Change-Id: Iffccc2cca259bcd19c068a87a415d4e196901f45 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: angleproject:2672 Reviewed-on: https://chromium-review.googlesource.com/c/1468201 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Jamie Madill d3fac74a 2019-02-12T13:40:28 Disable warnings-as-error in GLSLTest. This disables the warnings in the FragData test. We were getting errors in Debug from the multithreading compile implementation. Bug: chromium:931294 Change-Id: I6d1424e54335534f794884e40f527b5464113084 Reviewed-on: https://chromium-review.googlesource.com/c/1465960 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Yuly Novikov 8edc68e3 2019-02-12T12:41:01 Vulkan: Require Android NDK API level 26, dropping Android N support. Due to Vulkan Validation Layers breaking Android N backward compatibility. See http://crrev/c/1405714 and https://github.com/KhronosGroup/Vulkan-ValidationLayers/issues/623 Bug: angleproject:3095 Change-Id: I5da306c567cd9a0088149ca9929b38c8ed2cc86a Reviewed-on: https://chromium-review.googlesource.com/c/1465954 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Geoff Lang 4a298703 2019-01-18T10:49:36 Vulkan: Support creating EGL images from non-zero mipmaps of textures. Store a mip offset in TextureVK to apply to all operations on the ImageHelper. There is no need to store the mip offset in RenderbufferVk because it creates the resource with the mip offset on the call to setStorageEGLImageTarget. Store a mipmap level in the RenderTargetVk object so that clear operations will target the correct mipmap of the image. BUG=angleproject:2668 Change-Id: Ie976e3dd3a8de8135a7fbb8c84bd51eec0dddce8 Reviewed-on: https://chromium-review.googlesource.com/c/1422059 Commit-Queue: Geoff Lang <geofflang@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Frank Henigman 199a9f38 2018-11-13T17:22:36 Vulkan: support instanced draws. Enable instanced draws with the Vulkan backend. So far it only works when Vulkan has VK_EXT_vertex_attribute_divisor. BUG=angleproject:2672 Change-Id: I9445ba64282fa00a6eaee207b15efa2c7a9abbd3 Reviewed-on: https://chromium-review.googlesource.com/c/1334973 Commit-Queue: Frank Henigman <fjhenigman@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill 15335ac4 2019-02-12T12:11:11 Add fuchsia_x64 to commit-queue.cfg. Also remove cq.cfg since it is no longer used. Bug: angleproject:3146 Change-Id: I3c247016e3553a1492072b7c48e2e22ff25578e9 Reviewed-on: https://chromium-review.googlesource.com/c/1465951 Reviewed-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill c105ddc6 2019-02-12T10:22:29 Add fuchsia_x64 to CQ. Bug: angleproject:3146 Change-Id: Iae0ec05ee7c26b5401225fd929b84c303a61ae40 Reviewed-on: https://chromium-review.googlesource.com/c/1465948 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Ian Elliott 356d26c2 2019-02-11T11:27:01 Vulkan: Create/use a constant for the highest Vulkan version used. Bug: angleproject:3036 Change-Id: Ica056743eed2aa08e96b8a85e693ae70355b52d5 Reviewed-on: https://chromium-review.googlesource.com/c/1464739 Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com> Reviewed-by: Ian Elliott <ianelliott@google.com> Commit-Queue: Ian Elliott <ianelliott@google.com>
Shahbaz Youssefi 18b05950 2019-02-11T11:41:06 Suppress EGLSurfaceTest.SwapInterval on android shield tv Bug: 930723,angleproject:3144 Change-Id: Ib5524607ce072c8a37836d56fe5654284443fb49 Reviewed-on: https://chromium-review.googlesource.com/c/1464080 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org>
Zhenyao Mo c66fb571 2019-02-12T03:56:16 Revert "Disable broken tests on Fuchsia" This reverts commit ad194995ed7228078d5b937dd1eff87c1dcac9c0. Reason for revert: broke GPU optional bots since the revert of its previous CL Original change's description: > Disable broken tests on Fuchsia > > This disables tests that do not work on Fuchsia. Most of them are related > to cube maps which currently crash inside the intel driver. > > BUG=angleproject:2475, angleproject:3145, angleproject:3081 > TEST=angle_end2end_tests on Fuchsia > > Change-Id: Ifc0be390c6d5c43a756e1afb6ced9e3bd5b6986e > Reviewed-on: https://chromium-review.googlesource.com/c/1446497 > Commit-Queue: Michael Spang <spang@chromium.org> > Reviewed-by: Geoff Lang <geofflang@chromium.org> TBR=spang@chromium.org,geofflang@chromium.org,jmadill@chromium.org Change-Id: Id1861ee94b89020bcd64dd8e7e52588b76830783 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: angleproject:2475, angleproject:3145, angleproject:3081 Reviewed-on: https://chromium-review.googlesource.com/c/1465881 Reviewed-by: Zhenyao Mo <zmo@chromium.org> Commit-Queue: Zhenyao Mo <zmo@chromium.org>
Jamie Madill 3f0ff409 2019-02-12T03:08:51 Revert "Vulkan: Port renderer to Fuchsia" This reverts commit 991d1cfb5e5a2f20a46961da3ad85b95da30b88a. Reason for revert: Failing compile on the fuchsia bots on the ANGLE auto-roller. https://ci.chromium.org/p/chromium/builders/luci.chromium.try/fuchsia_x64/209198 In file included from ../../third_party/angle/util/fuchsia/ScenicWindow.cpp:10: In file included from ../../third_party/angle/util/fuchsia/ScenicWindow.h:13: In file included from gen/third_party/fuchsia-sdk/sdk/fidl/fuchsia/ui/policy/cpp/fidl.h:5: In file included from ../../third_party/fuchsia-sdk/sdk/pkg/fidl_cpp/include/lib/fidl/cpp/internal/header.h:12: ../../third_party/fuchsia-sdk/sdk/pkg/fit/include/lib/fit/function.h:135:6: error: extra ';' after member function definition [-Werror,-Wextra-semi] }; ^ 1 error generated. Original change's description: > Vulkan: Port renderer to Fuchsia > > Add DisplayVk and WindowSurfaceVk subclasses for Fuchsia to the vulkan > renderer, as well as an implementation of OSWindow that renders > fullscreen for the test suite. > > Disallow use of the vulkan loader from third_party as Fuchsia uses a fork > of the loader and has not sent those changes upstream yet. > > Add a small wayland-inspired library libfuchsia-egl to provide a type > "struct fuchsia_egl_window" to use as EGLNativeWindowType. This type > combines a zx_handle_t to an image pipe channel and a surface size. > > Image pipes can only be used once to create a VkSurfaceKHR. This means we > have to recreate the pipe in tests that call eglCreateWindowSurface more > than once with a single OSWindow, or the second call will fail. Add a > resetNativeWindow() method to accomplish this. > > BUG=angleproject:2475 > TEST=angle_end2end_tests on Fuchsia > > Change-Id: I71a613a362dd1c8aada49a3c02ae461e064457bf > Reviewed-on: https://chromium-review.googlesource.com/c/1446496 > Commit-Queue: Michael Spang <spang@chromium.org> > Reviewed-by: Jamie Madill <jmadill@chromium.org> TBR=spang@chromium.org,geofflang@chromium.org,jmadill@chromium.org,syoussefi@chromium.org Change-Id: I2d9abefa9db5363ba63a17c1773d0e147040d055 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: angleproject:2475 Reviewed-on: https://chromium-review.googlesource.com/c/1465761 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Michael Spang ad194995 2019-01-29T15:35:09 Disable broken tests on Fuchsia This disables tests that do not work on Fuchsia. Most of them are related to cube maps which currently crash inside the intel driver. BUG=angleproject:2475, angleproject:3145, angleproject:3081 TEST=angle_end2end_tests on Fuchsia Change-Id: Ifc0be390c6d5c43a756e1afb6ced9e3bd5b6986e Reviewed-on: https://chromium-review.googlesource.com/c/1446497 Commit-Queue: Michael Spang <spang@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Michael Spang 991d1cfb 2019-01-21T18:09:15 Vulkan: Port renderer to Fuchsia Add DisplayVk and WindowSurfaceVk subclasses for Fuchsia to the vulkan renderer, as well as an implementation of OSWindow that renders fullscreen for the test suite. Disallow use of the vulkan loader from third_party as Fuchsia uses a fork of the loader and has not sent those changes upstream yet. Add a small wayland-inspired library libfuchsia-egl to provide a type "struct fuchsia_egl_window" to use as EGLNativeWindowType. This type combines a zx_handle_t to an image pipe channel and a surface size. Image pipes can only be used once to create a VkSurfaceKHR. This means we have to recreate the pipe in tests that call eglCreateWindowSurface more than once with a single OSWindow, or the second call will fail. Add a resetNativeWindow() method to accomplish this. BUG=angleproject:2475 TEST=angle_end2end_tests on Fuchsia Change-Id: I71a613a362dd1c8aada49a3c02ae461e064457bf Reviewed-on: https://chromium-review.googlesource.com/c/1446496 Commit-Queue: Michael Spang <spang@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill 6b695c3f 2019-02-10T10:02:33 Vulkan: Enable WebGLCompatiblityTest. Contains several useful tests including some that cover bugs with compressed texture support. And some uses of CopyTexImage. Bug: angleproject:2904 Bug: angleproject:2914 Change-Id: I90398ce2c513ace07cb9d414cd9a65c79e63aadb Reviewed-on: https://chromium-review.googlesource.com/c/1462058 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Jamie Madill 00f43c91 2019-02-09T11:41:12 Vulkan: Suppress layer warnings about unbound outputs. This warning could pop up whenever an OpenGL app would write to a particular output and not bind an attachment. This is valid in OpenGL. Also it could happen when writing to gl_FragData instead of gl_FragColor. Since it's hard to fix every usage we can just suppress the warning. Also adds a way to change test platform warnings into errors. Bug: angleproject:2866 Change-Id: I9793f58121ac848d74d6b0131e79ebab2c70f45c Reviewed-on: https://chromium-review.googlesource.com/c/1462057 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Jamie Madill 54ed8f0a 2019-02-11T12:32:04 Vulkan: Fix UtilsVk invalidating Context descriptors. Fixes a validation error and rendering artifact in the WebGL test: textures/misc/tex-image-and-sub-image-2d-with-array-buffer-view Only applies to masked clears when combined with draw calls using uniforms or textures. Also make it easier to inspect layer messages in the debugger. Bug: angleproject:2912 Change-Id: I4561895439221581b9dbc341d6de5d5a6c2096aa Reviewed-on: https://chromium-review.googlesource.com/c/1462056 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Tobin Ehlis 3571ad49 2019-02-06T12:24:19 Vulkan:Adding Cmd Buffer Reset tests Resetting cmd buffers in various ways to understand VK driver perf on various devices. Also includes some changes to get the chromium APK wrapper for angle_white_box_perftests compiling. Bug: angleproject:3137 Change-Id: I56bd163cdd6605ce09effe509a9c7ac5e0008e7a Reviewed-on: https://chromium-review.googlesource.com/c/1456482 Commit-Queue: Tobin Ehlis <tobine@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Frank Henigman 0a87f08d 2019-02-11T11:19:17 Vulkan: make GenerateCaps a member of RendererVk. Instead of passing lots of RendererVk member variables into GenerateCaps(), do the work in a member function. BUG=angleproject:2672 Change-Id: Icf16f3388174ddb676272ec0fa76a288ce2d1e4e Reviewed-on: https://chromium-review.googlesource.com/c/1463959 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Frank Henigman <fjhenigman@chromium.org>
Michael Spang 0029dfe2 2019-02-08T18:45:07 Vulkan: Respect EGL_HEIGHT & EGL_WIDTH in SurfaceVk If currentExtent is unspecified and EGL_WIDTH & EGL_HEIGHT are provided, we'll use a surface size of 0xFFFFFFFF. That's not going to work and appears to be a typo. Use the size specified in EGL_WIDTH & EGL_HEIGHT instead. BUG=angleproject:2475 TEST=angle_end2end_tests on Fuchsia with an earlier version of CL 1446496 PS12. It is N/A with later patches. Change-Id: I7e67b2c796318bed512dd6d5d22ef2183916416d Reviewed-on: https://chromium-review.googlesource.com/c/1461637 Commit-Queue: Michael Spang <spang@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Geoff Lang fe59f6b5 2019-01-16T09:34:30 Vulkan: Implement EGL Images for 2D and Renderbuffer sources. No support for non-zero mipmaps as sources yet. Suppress dEQP tests due to apparent driver bugs with scissored clears on depth or stencil attachments. BUG=angleproject:2668 Change-Id: Idaa5e70ce9b0c91232fbb989cbf4de1b9134aafb Reviewed-on: https://chromium-review.googlesource.com/c/1415010 Commit-Queue: Geoff Lang <geofflang@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Michael Spang abf6dbbb 2019-02-08T13:24:10 Disable MultithreadingTest on Vulkan This test applies to the OpenGL ES renderer only. Vulkan-only builds fail this tests because EGL_ANGLE_platform_angle_context_virtualization isn't provided. BUG=angleproject:2475 TEST=angle_end2end_tests on Fuchsia Change-Id: I4668d88a43a707cf385c78a0582a81cfd722ec90 Reviewed-on: https://chromium-review.googlesource.com/c/1461636 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Natasha Lee 75d577fb 2019-02-04T16:28:28 Fixed Bug where array initialized with same name of previously declared variable fails on DirectX. Combined user defined variables with their unique ids to avoid overwriting same name variables of different scope. Bug: angleproject:2126 Change-Id: If9ad9e48f629d83b105d43ee28a50b8176d0e0a1 Reviewed-on: https://chromium-review.googlesource.com/c/1456484 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Rafael Cintron <rafael.cintron@microsoft.com>
Jamie Madill 238c19e1 2019-02-07T09:09:41 Add fuzzer for xxHash. Local testing did not turn up any crashes. Bug: angleproject:2983 Change-Id: I5e87ed0768e5bc4454c1a896f96d09ddd92baf44 Reviewed-on: https://chromium-review.googlesource.com/c/1458656 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Shahbaz Youssefi 38833111 2019-02-06T16:19:49 Vulkan: implement eglSwapInterval Uses FIFO with interval 1 and mailbox/immediate with interval 0 (with a fallback to FIFO). An end2end test is added to make sure the present mode is correctly set. Bug: angleproject:2932 Change-Id: I45d2b1e551b5c63c42ca3c8964bd5e62abd2d459 Reviewed-on: https://chromium-review.googlesource.com/c/1456622 Reviewed-by: Ian Elliott <ianelliott@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Jamie Madill 3e01a518 2019-02-08T15:53:29 Make .gni files always use LF endings. This saves a lot of spam about dirty git formatting when changing .gni files. Bug: angleproject:3139 Change-Id: I244d5254ac6bd7bd1a7bedac5c34bd141fe0b9c0 Reviewed-on: https://chromium-review.googlesource.com/c/1460611 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jonah Ryan-Davis 2b0553ce 2019-02-08T10:07:21 Implement EXT_instanced_arrays Bug: angleproject:3015 Change-Id: Ib01cc5e0df6db27981cb843a6bd386de5d10c2db Reviewed-on: https://chromium-review.googlesource.com/c/1452740 Commit-Queue: Jonah Ryan-Davis <jonahr@google.com> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Jamie Madill d058774b 2019-02-08T13:32:10 Refine Ozone suppression. It's possible that IsOpenGLES doesn't work SurfaceTest. Also there was a second failing test that should be skipped. Bug: angleproject:3138 Change-Id: I5950819c343ce1413f4617c4c410aaba42b5a268 Reviewed-on: https://chromium-review.googlesource.com/c/1459602 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Geoff Lang f256339a 2019-01-15T09:50:44 Vulkan: Implement eglBindTexImage Now that vk::ImageHelper is stored as a pointer, it can be shared between an offscreen surface and texture. BUG=angleproject:3073 Change-Id: I91e520259106eef497950b8b2e622fbf910f7444 Reviewed-on: https://chromium-review.googlesource.com/c/1412234 Commit-Queue: Geoff Lang <geofflang@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill 82e12fd6 2019-02-08T12:10:36 Use github link to SVG example image in docs. It seems like there isn't a way to reference a local SVG in gitiles. We'd need to upload the image to cloud storage. Instead we can use the image in the repo if we link to the github version. Bug: angleproject:3002 Change-Id: Ib1879d562e83ae16f531b204ca86cb73d45c5bb8 Reviewed-on: https://chromium-review.googlesource.com/c/1459600 Reviewed-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill 4103ceac 2019-02-08T09:52:01 Fix link to example in Dirty Bits docs. Bug: angleproject:3002 Change-Id: Ice785dc13b62879b4ec74ec8374d16eb88c5b257 Reviewed-on: https://chromium-review.googlesource.com/c/1459598 Reviewed-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill df3372b9 2019-02-07T15:46:29 Add markdown documentation for dirty bits. Bug: angleproject:3002 Change-Id: I35df4e9f2af909f175402ce96773afb885bce595 Reviewed-on: https://chromium-review.googlesource.com/c/1455536 Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Frank Henigman e03498f2 2018-11-22T21:27:29 Increase instanced draw testing. Fill some gaps in the ANGLE end2end instanced draw test. The only testing of points was on D3D11 and D3D11_FL9_3. There was little testing of number of instances and different divisors. Remove old one-off tests which are now redundant. Disable the D3D11_FL9_3 points test which was passing purely by chance. That code has bugs and only supports data from a buffer, while the test uses data in client memory. BUG=angleproject:2672 Change-Id: I5b5707a6fdd0960e81c25a2eb8ed96a1452d9868 Reviewed-on: https://chromium-review.googlesource.com/c/1450789 Commit-Queue: Frank Henigman <fjhenigman@chromium.org> Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill cd4f1fba 2019-02-07T15:26:10 Fix gtest main from including the wrong headers. We would accidentally propagate include directories to the test main target. This would show up as compile errors of the form: In file included from ../../third_party/angle/testing/gtest/include/gtest/gtest.h:10: ../../third_party/angle/third_party/googletest/src/googletest/include/gtest/gtest.h:303:22: error: no member named 'ImplicitlyConvertible' in namespace 'testing::internal' !internal::ImplicitlyConvertible<T, AssertionResult>::value>::type* ~~~~~~~~~~^ This fixes the GN properties such that we no longer get the wrong /testing/ and /third_party/googletest/ directories included. This regressed when glslang was rolled. Bug: angleproject:3088 Change-Id: I710f767cfe476454c10dacf2103b9203f1b5ee19 Reviewed-on: https://chromium-review.googlesource.com/c/1459596 Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jamie Madill 2c94c1e3 2019-02-07T17:10:32 Suppress EGLSurfaceTest.MessageLoopBugContext on Ozone. Bug: angleproject:3138 Change-Id: If82467a0ab98d2b2f77337be41b33ee817e44e58 Reviewed-on: https://chromium-review.googlesource.com/c/1459597 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Michael Spang 6c13c70c 2019-02-06T15:59:44 Vulkan: Enumerate instance & device extensions provided by layers Add instance & device extensions provided by layers prior to running VerifyExtensionsPresent() so that we won't abort when required extensions are provided in a layer. This happens particularly on Fuchsia as the swapchain extension is implemented in a layer. BUG=angleproject:2475 TEST=angle_end2end_tests on Fuchsia Change-Id: I30385dfe55b14783a20d1410f1209d3e3ad10632 Reviewed-on: https://chromium-review.googlesource.com/c/1456487 Reviewed-by: Ian Elliott <ianelliott@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com> Commit-Queue: Michael Spang <spang@chromium.org>
Tim Van Patten a07c9bf7 2019-02-07T19:10:15 Revert "Vulkan: Reduce Default Descriptor Pool Max Sets" This reverts commit 1f8132a1da6e3752c08c5a2b1840e4d6fa44a52f. Reason for revert: anglebug.com/3135 Bug: angleproject:3135 Original change's description: > Vulkan: Reduce Default Descriptor Pool Max Sets > > The current value of kDefaultDescriptorPoolMaxSets is 2048, which > allocates too much memory on a Pixel device, causing Android's low > memory killer to terminate dEQP (leading to a test failure). This change > reduces the value of kDefaultDescriptorPoolMaxSets to 128 to reduce the > memory usage during the test. We suspect a later change may be required > to dynamically grow the descriptor pools and update the recycling > behavior. > > dEQP-EGL.functional.multicontext.non_shared_clear > > Bug: angleproject:3056 > Change-Id: I8a681b509823956a58d6c08f64a23203458e075e > Reviewed-on: https://chromium-review.googlesource.com/c/1454280 > Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> > Reviewed-by: Jamie Madill <jmadill@chromium.org> > Commit-Queue: Tim Van Patten <timvp@google.com> TBR=jmadill@chromium.org,timvp@google.com,syoussefi@google.com,syoussefi@chromium.org # Not skipping CQ checks because original CL landed > 1 day ago. Bug: angleproject:3056 Change-Id: Iff950425141eb5028c3660ba0567a9d29e691604 Reviewed-on: https://chromium-review.googlesource.com/c/1459256 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com>
Shahbaz Youssefi ab5acbd5 2019-01-23T13:58:09 Vulkan: implement swapchain resizing Vulkan allows a swapchain to be created based off of an older swapchain that's still presenting, to support seamless window resizing. The old swapchain will remain alive (though no image can be acquired from it) and automatically cleaned once no image is being presented from it. The retired swapchain can be destroyed once all operations on its images are completed. We store the old swapchain next to the serial of submission that's used for CPU throttling and defer the destroy call until after `finishToSerial` for that serial is called. Bug: angleproject:2942 Change-Id: Ic62a5a57b712ffa2b087f5fecde0dc8942194075 Reviewed-on: https://chromium-review.googlesource.com/c/1435634 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Shahbaz Youssefi 088e5217 2019-02-06T17:07:57 Vulkan: Suppress flaky test on Nexus5X Bug: angleproject:3124 Change-Id: Idfcd84f92126eb7548f86f8c327887a34e3218a9 Reviewed-on: https://chromium-review.googlesource.com/c/1457025 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Lingfeng Yang 603ad164 2018-12-04T07:34:23 GLES1: dirty bit pass This CL introduces a coarse layer of dirty bits and on-demand sending of some uniforms to the underlying driver, instead of sending all uniforms every draw, which should improve performance in cases where not much is changing between draws. BUG=angleproject:2306 Change-Id: I530515dfad2e4be74c73d8659acd4fe5decaa8b0 Reviewed-on: https://chromium-review.googlesource.com/c/1361222 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Lingfeng Yang <lfy@google.com>
Cody Northrop f9cc785c 2019-02-06T07:59:45 Docs: Add glmark2 instructions for Android Bug: angleproject:3125 Change-Id: I0d185ad70b960d0c3bff971eb6658893b308352d Reviewed-on: https://chromium-review.googlesource.com/c/1456481 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Cody Northrop <cnorthrop@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Michael Spang 35218632 2019-02-06T13:05:21 Vulkan: Move vulkan config target to $angle_root:vulkan_config This will allow us to avoid loading the build file for //third_party/vulkan-validation-layers on Fuchsia, since we don't want to build the validation layers on that platform. BUG=angleproject:2475 TEST=angle_end2end_tests on Fuchsia (with full series) Change-Id: Ifeb67125f5fcebf2b30ae18b760667ba7c56e4d5 Reviewed-on: https://chromium-review.googlesource.com/c/1456479 Commit-Queue: Michael Spang <spang@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Jonah Ryan-Davis 36433590 2019-02-06T10:45:44 Fix ShCompileTest.DecimalSepLocale failing on Linux/AMD Bug: angleproject:3132 Change-Id: I4bbaaab732cd64e6f2f44d6a09a236533a1abc20 Reviewed-on: https://chromium-review.googlesource.com/c/1456616 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
Michael Spang 740db7fd 2019-02-06T09:40:13 Vulkan: Add support for loading layers from DisplayVk Fuchsia needs a layer to support VK_KHR_swapchain. Add the ability for DisplayVk subclasses to request a layer in addition to an extension. BUG=angleproject:2475 TEST=angle_end2end_tests on Fuchsia Change-Id: If86c773d4bd4ebecaee4b1631d3d4975105fe849 Reviewed-on: https://chromium-review.googlesource.com/c/1456478 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Shahbaz Youssefi eb47e2c4 2019-02-05T16:26:41 Vulkan: improve calculation of swapchain image count Based on present mode, different values for the image count make sense. In mailbox mode, the driver will increase the number as necessary. In immediate mode, two buffers suffice. In fifo mode, we would ideally want triple-buffering. Bug: angleproject:2932 Change-Id: I45eec83d0292eea472b931fe81e49cde6d105c27 Reviewed-on: https://chromium-review.googlesource.com/c/1454290 Reviewed-by: Ian Elliott <ianelliott@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Jamie Madill bf5dbd8d 2019-02-05T16:41:41 Skip WhitelistMatchesSupport test on Android. Seems to have issues with stranger configs like the Sheild TV. Bug: angleproject:2286 Change-Id: I12d0dedeee9fbaaecb7341d376200a1afc758f12 Reviewed-on: https://chromium-review.googlesource.com/c/1454331 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Jonah Ryan-Davis 5f662c00 2019-01-31T13:53:59 Fix unit test for setting locale creating malformed HLSL shader code Fix malformed HLSL shader code in other locales than classic Bug: angleproject:1433 Change-Id: I30bad0bd0cfda465ec7200e48e12800d7d8efd26 Reviewed-on: https://chromium-review.googlesource.com/c/1447862 Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
Tim Van Patten 1f8132a1 2019-02-05T10:20:24 Vulkan: Reduce Default Descriptor Pool Max Sets The current value of kDefaultDescriptorPoolMaxSets is 2048, which allocates too much memory on a Pixel device, causing Android's low memory killer to terminate dEQP (leading to a test failure). This change reduces the value of kDefaultDescriptorPoolMaxSets to 128 to reduce the memory usage during the test. We suspect a later change may be required to dynamically grow the descriptor pools and update the recycling behavior. dEQP-EGL.functional.multicontext.non_shared_clear Bug: angleproject:3056 Change-Id: I8a681b509823956a58d6c08f64a23203458e075e Reviewed-on: https://chromium-review.googlesource.com/c/1454280 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Tim Van Patten <timvp@google.com>
Tobin Ehlis 4a41914b 2019-02-05T08:50:30 Vulkan: Add trace markers Add systrace markers for various RendererVk::finish paths in order to quickly identify cause of finishes. Also added marker to commandPool destroy which is currently a known hotspot on some devices. Bug: angleproject:2528 Change-Id: I5a2fc741679a58445d71a2edd6204cf9e869d236 Reviewed-on: https://chromium-review.googlesource.com/c/1454277 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Shahbaz Youssefi e1a763d1 2019-01-25T15:43:33 Vulkan: Implement basic barrier perf test There's a lot more that can go into this perf test, but it requires further work on the Vulkan back end. Bug: angleproject:2999 Change-Id: Iea62bfd09639af108674dcf0a9e7c9d36ccddcef Reviewed-on: https://chromium-review.googlesource.com/c/1437734 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Jamie Madill e923a63e 2019-02-05T08:32:33 Move ozone detection earlier in white list. Apparently IsOzone and IsLinux can both be true at the same time. This was confounding the config detection. Bug: angleproject:2286 Bug: chromium:928583 Change-Id: Ifd28242f396fd97447720b0c11caf8c1590f7222 Reviewed-on: https://chromium-review.googlesource.com/c/1454319 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jamie Madill d01c504e 2019-02-04T21:52:09 Fix issues with config whitelisting. The Android Shield TV confing was not properly initializing on ES1/Vulkan. Also Ozone configs were failing to initialize ES 3.0 contexts. Bug: angleproject:2286 Bug: chromium:928583 Change-Id: I7e54cdd1bf29791dffee3c70f7ebd3a1283eb5c4 Reviewed-on: https://chromium-review.googlesource.com/c/1453480 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Courtney Goeltzenleuchter 9bb59c5c 2019-01-25T11:46:24 Do not call eglMakeCurrent with invalid parameters When releasing the thread only call makeCurrent if we have a display to use. Calling with EGL_NO_DISPLAY is not valid (though some devices allow it.) Bug: angleproject:3102 Change-Id: I2cf48011294d0264d3b1cb0318a2a80715e37f60 Reviewed-on: https://chromium-review.googlesource.com/c/1436840 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Courtney Goeltzenleuchter <courtneygo@google.com>
Jamie Madill 7085305f 2019-02-04T17:47:04 Use whitelist to filter test configs. Before we would try all the configs and filter those which fail to init. Now we gather the System Info and if successful check a list of supported configs. If System Info init fails we fall back to the prior method. This speeds up end2end tests init. It also allows for more reliable profile captures with VTune. It also will cause a test failure if a config unexpectedly fails. Previously we would silently pass without running the config's test. Includes a few changes: * D3D reference tests are disabled. They don't appear to be working. * Mac ES 3.1 is disabled due to lack of support. * WGL on AMD Windows is disabled due to lack of ES compatibility. * ES 3.2 contexts are explicitly disabled. * Vulkan is limited to ES 2.0. * The Windows GLES back-end is limited to NVIDIA with ES 2.0 & 3.0. * A unit test that verifies the whitelist matches availability. Bug: angleproject:2472 Change-Id: Ib72214bfbbff13c124fa15a6494d0aabb52f2e62 Reviewed-on: https://chromium-review.googlesource.com/c/1436168 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Shahbaz Youssefi 7dafe3eb 2019-01-28T11:39:15 Vulkan: optimize image memory barriers Each image was tracking its current layout, but not the pipeline stage it was used. Additionally, the barrier access masks were inferred from the layout. This incurred two inefficiencies: - The src pipeline stage mask often included all stages, causing unnecessarily heavy barriers. - The access masks included all possible accesses by a layout, which in some cases was overkill, like VK_ACCESS_MEMORY_WRITE_BIT for VK_IMAGE_LAYOUT_GENERAL (which will eventually used for compute shader output). This change instead creates an enum where each element represents the layout, the stage and access masks when transitioning into the layout and the stage and access masks when transitioning out of that layout. The image will instead track a value of this enum (instead of VkImageLayout), which allows it to create the layout transition barriers as tight as possible, since it includes all the necessary information. Bug: angleproject:2999 Change-Id: I91535ce06d10530a6fc217ad3b94b7e288521e25 Reviewed-on: https://chromium-review.googlesource.com/c/1440074 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Geoff Lang f3e823db 2019-01-14T12:40:34 Vulkan: Store ImageHelper as a pointer in TextureVk and RenderbufferVk Storing ImageHelper as a pointer allows the storage to be swapped or shared with other objects. BUG=angleproject:2668 Change-Id: I2e51f24737be59ffe9f472e9b0b592774a792cd1 Reviewed-on: https://chromium-review.googlesource.com/c/1409404 Commit-Queue: Geoff Lang <geofflang@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Ian Elliott eb67ca6e 2019-02-04T11:18:54 Improve EGLRecordableTest The initial implementation called eglInitialize() and eglTerminate() and didn't call ANGLETest::TearDown(). BUG=angleproject:2511 Change-Id: I563a84a72fe9bd20739519301023062f85446557 Reviewed-on: https://chromium-review.googlesource.com/c/1452529 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Ian Elliott <ianelliott@google.com>
Geoff Lang 08f8fa66 2019-01-10T14:25:47 Vulkan: Merge the PixelBuffer logic into ImageHelper. To support EGL images efficiently, the pixel buffer needs to be tightly coupled with the image it will upload data to allowing textures to upload data to EGL images sourced from renderbuffers. The data will be uploaded to the image in the correct order if it comes from multiple sources and the check for pending uploads does not need to traverse EGL image siblings. BUG=angleproject:2668 Change-Id: Iebf59ed1e358ddc76843b8bcfac39b0363f66a3f Reviewed-on: https://chromium-review.googlesource.com/c/1405710 Commit-Queue: Geoff Lang <geofflang@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Shahbaz Youssefi 9544002e 2019-02-01T16:36:09 Add instructions on how to run glmark2+ANGLE on Linux Bug: angleproject:3125 Change-Id: I70d295d7ec1dbafc74add068165c5fbcadb48560 Reviewed-on: https://chromium-review.googlesource.com/c/1450222 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Shahbaz Youssefi d94af173 2019-02-01T15:55:50 Vulkan: Store xcb visual id/type in egl::Config glmark2 uses the visual id, which is discarded in angle. This change retrieves these ids from X11 and stores them in the egl::Config. Bug: angleproject:3125 Change-Id: I2b524ecb71d675efa01cc9100a3dfe6fd57913f0 Reviewed-on: https://chromium-review.googlesource.com/c/1450221 Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Frank Henigman <fjhenigman@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Shahbaz Youssefi 52d861bd 2019-02-02T00:30:58 Disable -Wextra-semi-stmt Due to bot build failures. Partially reverts: c09ae15c0: Enable -Wextra-semi and -Wextra-semi-stmt. TBR=jmadill@chromium.org Bug: angleproject:3128 Change-Id: Ia3725e57d28cd899db59e1d8e760ad8ca3d5f70c Reviewed-on: https://chromium-review.googlesource.com/c/1450659 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Ian Elliott 3d6e3004 2019-02-01T15:43:59 Implement EGL_ANDROID_recordable for Vulkan back-end. This initial implementation provides the extension, and always answers that the ANativeWindow is not recordable. BUG=angleproject:2511 Change-Id: Id3c57351dd1029bff7adf7166f9c82eee6e634b3 Reviewed-on: https://chromium-review.googlesource.com/c/1412507 Commit-Queue: Ian Elliott <ianelliott@google.com> Reviewed-by: Geoff Lang <geofflang@chromium.org>