src


Log

Author Commit Date CI Message
Xinyi He 92ffd40e 2020-07-08T18:25:55 Vulkan: Disable GL_EXT_robustness extension on Mali Vulkan doesn't have a mapping extension to GL_EXT_robustness, so we need to disable it. Bug: angleproject:4823 Change-Id: If7b66c0eb7ba14b9349925af64ec2efcec9985a4 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2287092 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Jiajia Qin 7d82d293 2020-07-02T15:15:54 Refactor DisplayGbm::generateConfigs Bug: angleproject:4809 Change-Id: I5f352f737bbd53c78d9e01055c17eabd17d5fb8a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2278667 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Jiajia Qin <jiajia.qin@intel.com>
Shahbaz Youssefi 120e1d66 2020-07-09T17:56:54 Vulkan: Set the wideLines features when available Bug: angleproject:4827 Change-Id: I40fc893fdaf7135e2ad782a489b59c518346db9c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2290582 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Ian Elliott 73b6b3a8 2020-06-03T14:38:34 Vulkan: Fully enable pre-rotation for Android Bug: b/157667116 Change-Id: I3e5d41eed9b27eb2b49db853d85ec5c867dd2409 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2228366 Reviewed-by: Charlie Lao <cclao@google.com> Reviewed-by: Tobin Ehlis <tobine@google.com> Commit-Queue: Tobin Ehlis <tobine@google.com>
Mohan Maiya 2a2b4b13 2020-07-09T13:15:13 Vulkan: Force flush staged updates for external textures For textures that are backed by external memory, immediately flush sub image updates instead of staging them. Bug: angleproject:4828 Tests: angle_end2end_tests --gtest_filter=ImageTest.UpdatedExternalTexture* Change-Id: I51e5bd0cb5df7df3af21f0cdb3007eebc1be29cd Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2290490 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Mohan Maiya <m.maiya@samsung.com>
Charlie Lao fe36a647 2020-07-08T18:27:21 Vulkan: Add driverUniform's buffer to mResourceUseList There is a bug with mDriverUniforms' dynamicBuffer that we never add it to context's mResourceUseList to let it hold onto it until GPU completes. This causes old buffer gets recycled prematurely and gets overwritten, result in rendering corruption. This CL adds current buffer to the mResourceUseList so that it will be waited properly before gets recycled. Bug: b/160777679 Change-Id: I7707442e0f5ba408f5f28337422274e0c23b6bfb Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2288325 Commit-Queue: Charlie Lao <cclao@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Ian Elliott <ianelliott@google.com>
Courtney Goeltzenleuchter f61272fb 2020-06-17T11:38:37 Add support for VK_KHR_sampler_ycbcr_conversion This adds ability for applications to import Android Hardware Buffers (AHBs) as OpenGL images which in turn can be sampled from and/or written. This was specifically tested with the common use case of importing a buffer created by an media decoder and using that as a texture source to include that video content on the screen. Tested with: - Angry Birds 2 video player (for ads) requires YUV conversion. - Basic Media Decoder example: https://github.com/android/media-samples/tree/master/BasicMediaDecoder Bug: b/155487768 Change-Id: I9255450f81aa4daa2aace7205d4f6c3f225abcca Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2175103 Commit-Queue: Courtney Goeltzenleuchter <courtneygo@google.com> Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com> Reviewed-by: Tim Van Patten <timvp@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Shahbaz Youssefi b549be96 2020-07-02T16:17:10 Vulkan: Warm up glslang on startup As soon as glslang is initialized (which is done when EGL is initialized), try to compile a simple shader. This will warm up glslang's internals to avoid hitches on first shader compilation when a WebGL application starts. Potential future optimization is to use a worker thread to do this. Bug: chromium:1091440 Change-Id: I6ac22e982d748af52a6e8b61239889425edc2edb Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2280401 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Nico Weber fac68170 2020-07-08T22:19:43 Don't build vulkan_validation_layers on macOS. angle_enable_vulkan_validation_layers is false on is_mac, so it looks like they were built by accident. Guard the dep on $angle_root/src/common/vulkan:vulkan_validation_layers by angle_enable_vulkan_validation_layers instead of angle_enable_vulkan, and only define the target if angle_enable_vulkan_validation_layers is true (because src/common/vulkan/BUILD.gn gets loaded due to deps on other targets in it, and when a .gn file is loaded all the targets in it get defined). Since vulkan_validation_layers doesn't currently build on arm macs, this happens to fix a build problem there, but it also makes the build on intel macs a bit smaller. This sidesteps comment 13 on the bug. If we ever want to use the validation layers on mac, we'll have to do a real fix then. Bug: chromium:1098741 Change-Id: I8164ff13de98d34ed875c6e6d0550eae64b2d0dd Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2289042 Commit-Queue: Nico Weber <thakis@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Ian Elliott a740b193 2020-07-08T16:58:46 Vulkan: Rotate damage rects for 90/270 rotation ANGLE supports the EGL_KHR_swap_buffers_with_damage extension by using the Vulkan-equivalent VK_KHR_incremental_present extension. The damage rectangles need to be rotated for 90/270-degree rotations. Test: Aztec Ruins with VVL Bug: b/157667116 Change-Id: I9a43594b30bc67ca80aeff7705b4350659207d09 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2289035 Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com> Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Ian Elliott <ianelliott@google.com>
Cody Northrop 13859945 2020-06-26T13:21:35 Capture/Replay: Fix default uniform array capture The pointer from vector::data() already reflects the size of the underlying type, so no need to include sizeof. This caused us to write beyond the vector bounds when reading multiple values. We were also missing component count. Test: MEC of NBA2K20 Bug: b/160014453 Change-Id: I51fc3f5f80c732221d6ea4b4bd1afde635e410a1 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2270909 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Manh Nguyen <nguyenmh@google.com> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Manh Nguyen 900c7e87 2020-07-07T14:20:36 Serialize d/s buffers + use color buffers' impl format for readPixels Adds serialization of depth/stencil buffer contents Currently, readPixels on color buffers uses the gles front-end format, which can be different from the implementation format used in the backend. This can cause seg fault crashes when the number of bytes in a pixel differs between the two format. Changes so that readPixels for color buffers always use the backend format. Bug: angleproject:4817 Change-Id: I62d5deb1320ea38ee46143b2aa97f372ba01baeb Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2284451 Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Manh Nguyen <nguyenmh@google.com>
Jonah Ryan-Davis 514c8f64 2020-07-08T13:48:54 Skip MultithreadingTest.MultiCreateContext on Ozone This tests crashes on Ozone, skip for now. Bug: chromium:1103009 Change-Id: Ie686e69d937710b43b615372251801e83b7bde20 TBR=geofflang@chromium.org Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2288334 Reviewed-by: Jonah Ryan-Davis <jonahr@google.com> Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
Manh Nguyen 3688cb36 2020-06-28T15:28:10 Fix bugs in angle_end2end_tests and frame capture 1. CaptureGetShaderInfoLog_infoLog method should not require shader object to be compiled 2. glCompressedTexImage3D's parameter locations are off by 1 3. EGLContextSharingTest.DisplayShareGroupObjectSharing test should not delete buffers it has no access to since it will crash when running capture replay Bug: angleproject:4801 Change-Id: I0d407cdb44eb41eea4209eebab0996d3dd8ae5f5 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2272862 Commit-Queue: Manh Nguyen <nguyenmh@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Etienne Bergeron 6fc53fdb 2020-06-30T18:08:21 Fix typos in comment This CL fix typo in a comment introduced recently. There is no functional change. Bug: chromium:1091259 Change-Id: I56f1963514b87b2a93859a6db707be093e865e28 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2276748 Commit-Queue: Etienne Bergeron <etienneb@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tim Van Patten 8b80e852 2020-06-25T09:43:01 Remove debug info from SPIR-V When dcheck_always_on=false, the SPIR-V transformer will strip all debug information to reduce the SPIR-V binary size. Running T-Rex shows about 27% reduction in the SPIR-V binary size. Bug: angleproject:4680 Test: CQ Change-Id: Id9d0189cdc9c12fa5a1741cf62ef549a533cdf93 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2267358 Commit-Queue: Tim Van Patten <timvp@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Shahbaz Youssefi b291ad09 2020-07-03T23:53:10 Build specialized version of glslang Bug: angleproject:4763 Change-Id: Ibb98c872a1283b9d6acde958a7c5212cf79e72df Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2281618 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Tobin Ehlis <tobine@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Shahbaz Youssefi 36a97db1 2020-07-02T23:29:45 Vulkan: Compress internal shaders Shaves ~200KB in binary size. The compressed SPIR-V blobs are in most cases a little smaller than 1/3 of the original size. The internal shader blobs at this point take ~100KB. Bug: angleproject:2022 Change-Id: I1a2cec073cb1f330632c8dce7a550a0cca1e373d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2280945 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
shrekshao 9349e262 2020-06-25T14:28:17 Fix multiDraw* with DYNAMIC_DRAW buffer usage Specialized Context11 impl to prevent promote Dynamic during MultiDraw. Add different buffer usage to MultiDraw and BaseVertexBaseInstance tests. Bug: angleproject:3402, angleproject:4754 Change-Id: I50e1a6fd6c8b6fd48f130c43545b895335d2e55b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2268581 Commit-Queue: Shrek Shao <shrekshao@google.com> Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
shrekshao 796df76c 2020-06-25T11:49:12 MultiDraw Refactor Refactor MultiDraw* from general Context to different ContextImpl. Move general multiDraw code to renderer_utils.cpp. Bug: angleproject:3402 Change-Id: I85cb4b781afa2b3a8beb382a9c735910057f2ebe Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2268580 Commit-Queue: Shrek Shao <shrekshao@google.com> Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Mohan Maiya 69fa4d23 2020-06-30T09:06:33 Vulkan: Query aspect flag from the image When transferring images across queues we need to query the aspect of the image instead of hardcoding it to VK_IMAGE_ASPECT_COLOR_BIT Bug: angleproject:4791 Bug: angleproject:4818 Tests: angle_end2end_tests --gtest_filter=ImageTest.SourceAHBTarget2DDepth* Change-Id: Ia43a00262085dab492935c0c299635f3af468b50 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2274868 Commit-Queue: Mohan Maiya <m.maiya@samsung.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Jonah Ryan-Davis 3c8f6094 2020-06-26T12:42:37 EGL: Add basic multithreading support Adds first step to allowing multithreaded contexts: letting multiple threads use ANGLE as long as only one thread has a current context at a time. Bug: angleproject:4724 Bug: angleproject:4725 Change-Id: I4f606bdb15386cff9e3cb84d4120781e24e15fe4 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2269864 Reviewed-by: Corentin Wallez <cwallez@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
Jamie Madill acbe145c 2020-07-02T14:59:55 Test Runner: Batch tests by config. This CL sorts tests into subprocesses organized by a single config. It will allow for the test runner to use a single EGL display per process in most cases. It doesn't implement the display sharing right now, that'll be in a forthcoming CL. It assumes test configs are split between / and (optional ending) __ characters. Bug: angleproject:3162 Change-Id: I28e8b4687640da6e501f08b8b9347185c99ce30f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2280403 Reviewed-by: Jonah Ryan-Davis <jonahr@google.com> Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Shahbaz Youssefi d38c75c5 2020-07-02T22:12:19 Vulkan: Remove BufferUtils shader This was the first internal shader written for prototyping UtilsVk. It ended up never having a user. Bug: angleproject:2022 Change-Id: I846dcc216c4c018f5bda16ad67463f698b8e1c56 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2280944 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Mohan Maiya dd2316df 2020-07-02T14:20:05 EGL: Add image test for AHB based EGLImages Add new end2end test where the source for EGL images is an Android Hardware Buffer Bug: angleproject:4810 Tests: angle_end2end_tests --gtest_filter=ImageTest.SourceAHBTarget* Change-Id: I20f303c6ad839ac2e65d407cfe3813a8be4c1cfa Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2231884 Commit-Queue: Mohan Maiya <m.maiya@samsung.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Manh Nguyen 05e2fe78 2020-07-03T12:25:01 Remove class size static_asserts from serialize methods Right now, the static_asserts will fail on certain platforms with certain configurations as the class sizes differ between platforms. Bug: angleproject:4779 Change-Id: I92f61393b2e9e5b7d6dc9085b1a42cb377143469 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2280987 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jamie Madill ad782a84 2020-07-02T16:21:59 Tests: Use "__" to delineate test config names. This will allow the ANGLE test runner to identify test configs for tests that use parameterization to break up different test permutations with the same config. Note that GoogleTest doesn't allow for anything other than alphanumeric characters or "_" in test names. Bug: angleproject:3162 Change-Id: Iee215fbd8c397eef04dce0269da9b58ec568fce7 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2280402 Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Shahbaz Youssefi 0757a61a 2020-07-03T10:03:08 Remove suppression of passing test Bug: angleproject:4698 Change-Id: I1c97f27534f25e1b63b1e07a82ffade353f805d2 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2280983 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Sylvain Defresne bae95f81 2020-07-02T17:19:14 Convert GN libs lists to frameworks GN recently added support for Apple frameworks to link, rather than overloading the libs lists. This pulls .frameworks out of the libs lists, so that GN can stop supporting .frameworks in libs in the future. Bug: chromium:1052560 Change-Id: I3aed298db01bdb5f6e7f37a74c1bbc06f99d760c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2279931 Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Shahbaz Youssefi cbdb76b0 2020-07-02T10:09:34 Vulkan: Create sRGB views only when needed Creating sRGB views was conditioned to VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT being necessary, but that flag can be set for reasons other than sRGB override, such as when recreating the image to be used as a storage image. Bug: angleproject:4551 Change-Id: I6f94a1c898b599d4333d74608c7451b4ce4f71f0 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2279134 Reviewed-by: Mohan Maiya <m.maiya@samsung.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Dirk Pranke a86c8547 2020-07-02T12:57:52 Add missing data deps to angle test executables. Currently the Chromium build defines some wrapper test targets for ANGLE (//chrome/test:angle_perftests and //chrome/test:standalone_angle_unittests) that seem to exist only to specify some extra data dependencies. By moving those data dependencies into angle, this removes a couple of targets in Chromium that are otherwise problematic for my planned changes for crbug.com/816629. Bug: chromium:816629 Change-Id: Ic0d50132f102f39749c92b062eec38a529db2c1b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2280255 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Dirk Pranke <dpranke@google.com>
Mohan Maiya 89c88559 2020-06-20T11:13:57 Add end2end test for readonly feedbackloop Bug: angleproject:4778 Test: ./angle_end2end_tests --gtest_filter=ReadOnlyFeedbackLoopTest* Change-Id: I1c2500395d261c1686e5d325aad173462311c8c3 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2252543 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Mohan Maiya <m.maiya@samsung.com>
Manh Nguyen dce37b7d 2020-06-21T22:27:06 Serialize framebuffers + compare contexts for CaptureReplayTests Adds to frame capture the ability to serialize a frame's pre-swap GL state and store it in the binary data file Adds to CaptureReplayTests the ability to compare its serialized GL state with the serialized state pulled from the binary data file Adds a serialization module that serializes framebuffers' GL states and the contents of their color attachments Adds checks to automation script so that it would skips tests that do not produce the expected trace files Adds exception handling to automation script so that it will not crash when a replay build crashes Bug: angleproject:4779 Change-Id: I40a02e018073749e79f0ddbfd3d4065745548f46 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2258295 Commit-Queue: Manh Nguyen <nguyenmh@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com>
Shahbaz Youssefi 5fec8ecf 2020-07-02T11:14:30 Fix CopyTexture3D test to remove Nvidia workaround Bug: angleproject:4748 Change-Id: I8e66fda3c9fd234451ad765c8777cd75b4fc44fc Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2279136 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Shahbaz Youssefi 65f7ab79 2020-07-02T10:04:48 Vulkan: Cleanup extension properties and features Bug: angleproject:4551 Change-Id: Iae6b94027cfaca6c72318203a286865c2e3b19a9 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2279133 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Mohan Maiya 62ff54eb 2020-05-12T13:27:21 Vulkan: Featurize shadow buffers Shadow buffers help reduce the latency of glMap* operations at the cost of CPU overhead. It might not be desirable to incur such an overhead for all usecases. Featurize it but enable it by default. Bug: angleproject:4339 Change-Id: I6374618bf99677eef55fd50a139fb86f5ea70791 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2278102 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Mohan Maiya <m.maiya@samsung.com>
Shahbaz Youssefi cf63d872 2020-07-02T09:59:58 Vulkan: Use mipmap hint when generating mipmaps If the application asks for GL_FASTEST, this uses VK_FILTER_NEAREST instead of VK_FILTER_LINEAR. Bug: angleproject:4551 Change-Id: I6c10758104bd63dd477ea853a3b0464665f371ed Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2279132 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Corentin Wallez cbcc500f 2020-06-26T14:10:37 Broaden EGLFeatureControlTest Linux AMD suppression After the initial suppression the bot started failing on the next test. Use GTEST_SKIP in testSetUp to make all tests using the fixture skipped. Bug: chromium:1097750 Change-Id: Ic993d7cd274e1328684571c5ba1a1520b9cb80d5 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2270020 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Jordan Bayles 1265dbe6 2020-06-24T15:12:17 Update JsonCpp usage This patch updates usages of the JsonCpp library, including the following changes: 1. Removed unused version variable from the DEPS file. 2. Removed deprecated writer and reader usages, in favor of the new builder pattern inside JsonCpp. 3. Modernized usage of the Json::Value types, including some rewrites to avoid unnecessary heap allocations, and using the new foreach iterators. Bug: chromium:983223 Change-Id: If26abc8be677d905183a23498fbb81256854525c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2265093 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org>
Ian Elliott d2ca995f 2020-06-30T16:33:11 Vulkan: Update "fragment_ops" failures on Android A Qualcomm driver bug causes certain "dEQP-GLES3.functional.fragment_ops*" tests to fail. On Pixel 4 XL, this only occurs when the device is rotated 90 or 270 degrees. Bug: angleproject:4344 Bug: b/157933198 Change-Id: Iedb7e8c76fbe55795537cab3e821a410899fdea3 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2277103 Reviewed-by: Ian Elliott <ianelliott@google.com> Reviewed-by: Charlie Lao <cclao@google.com> Commit-Queue: Ian Elliott <ianelliott@google.com>
Alexey Knyazev 1ae8d2dd 2020-04-29T09:47:01 Fix blendable FP32 texture caps on ES2 contexts Although the EXT_float_blend extension is defined only for ES 3.0+, ANGLE exposes it on ES 2.0 client contexts. Bug: angleproject:4595 Change-Id: I7451062ed8b1ab4eb18a8c7c1d37ee7383c8ea4b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2172738 Commit-Queue: Geoff Lang <geofflang@chromium.org> Reviewed-by: Kenneth Russell <kbr@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Ian Elliott 28300e6f 2020-06-30T10:41:27 Vulkan: Fix off-by-1 180/270-rotated CopyTexImage The rotation calculations are a little different for this code (that uses a special shader) than for other pre-rotation cases. I also modified the CopyTexImageTestES3.2DArraySubImage test to make future bugs a little easier to diagnose. Test: Test: angle_end2end_tests --gtest_filter=*CopyTexImageTestES3.2DArraySubImage*Vulkan* Test: Test: angle_end2end_tests --gtest_filter=*WebGLReadOutsideFramebufferTest.CopyTexSubImage2D*Vulkan* Bug: b/158245571 Change-Id: I497ec541cae5cd4085c3e9d596ee20943f5510f9 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2275733 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Ian Elliott <ianelliott@google.com>
Tim Van Patten 68e60a92 2020-06-26T11:10:07 Vulkan: Don't store transformed SPIR-V Since the original SPIR-V is never store after being modified, we don't need to keep the transformed SPIR-V either. Bug: angleproject:4513 Test: CQ Change-Id: I4b70cfa355a08107e6a27377f6258cbf9e4072be Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2270718 Commit-Queue: Tim Van Patten <timvp@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Charlie Lao 34eb401b 2020-06-19T15:36:18 Vulkan: Skip repeated VkCmdClear call with the same value Some apps actually do this. One of them is gfxbench. This helps performance by dropping the redundant clear calls. Bug: b/159489614 Change-Id: Ib7958042f081b8fd58c5bc912fbb45bb223aec0f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2255643 Reviewed-by: Tim Van Patten <timvp@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Charlie Lao <cclao@google.com>
Xinghua Cao d1bf23d7 2020-06-23T16:57:05 Restrict member types for StructuredBuffer Std140 storage layout has some rules for uniform block, must pad StructuredBuffer element type explicitly to match std140 layout rules when translating std140 uniform block to StructuredBuffer. In this CL, restrict member types which are not needed to add paddings according std140 layout rules. Bug: angleproject:4783 Change-Id: I50130da64ad6865083849bf55b76525f3d2835a8 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2259226 Commit-Queue: Xinghua Cao <xinghua.cao@intel.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Jiajia Qin <jiajia.qin@intel.com>
Tim Van Patten 774cd1b2 2020-06-25T09:15:24 Vulkan: Only transform SPIR-V once Prior to this change, the SPIR-V would be transformed as part of GlslangGetShaderSpirvCode() and then possibly another time afterward to disable the early fragment test optmization (for monolithic programs) or to update the descriptor set/binding values (for PPOs). By storing the original SPIR-V in the ProgramVk and the transformed SPIR-V in the ProgramExecutableVk, we can now remove the SPIR-V transformation from GlslangGetShaderSpirvCode() and only perform it once in ProgramInfo::initProgram() for monolithic programs and PPOs. Bug: angleproject:4513 Test: CQ Change-Id: I4e7240b2abe7c796c46cf531948dad0e37c1419a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2267537 Commit-Queue: Tim Van Patten <timvp@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Shahbaz Youssefi 8ea72e86 2020-06-29T23:42:42 Skip failing test on NVIDIA Shield Bug: chromium:1100613 Change-Id: I1e05b2b7829ee790f878bf99976310c8a697faa2 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2274520 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Shahbaz Youssefi 06462add 2020-06-04T16:14:18 Add a test for copying from one mip to another Bug: angleproject:2914 Change-Id: Ib39f8599a613cbb85688c230cf8a72e23d8e1c1c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2231618 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Kenneth Russell <kbr@chromium.org>
Tim Van Patten 7993f34d 2020-06-24T18:39:08 Vulkan: Store transformed SPIR-V in ProgramExecutableVk The original SPIR-V is specific to a ProgramVk while the transformed SPIR-V is specific to a ProgramExecutableVk. This CL keeps the original SPIR-V in the ProgramVk::mOriginalShaderInfo and the transformed SPIR-V in ProgramExecutableVk::mTransformedShaderInfo. This allows us to skip an extra copy that was occurring during PPO link(). Bug: angleproject:4513 Test: CQ Change-Id: I796dcd6bcfb2df08d9b8f1a5295b2821a4096f16 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2265484 Commit-Queue: Tim Van Patten <timvp@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Jonah Ryan-Davis e2de2c1c 2020-06-25T11:59:14 Fix disable_native_parallel_compile workaround condition. This workaround should only be enabled when ANGLE is built with TSAN on. Bug: chromium:1094869 Change-Id: If527457c11ce744b543ac69761cc64235d2f1dd8 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2267420 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Kenneth Russell <kbr@chromium.org> Commit-Queue: Kenneth Russell <kbr@chromium.org>
Manh Nguyen bdf91e5f 2020-06-29T13:47:13 Refactor frame_capture_utils.h to frame_capture_test_utils.h frame_capture_utils.h is only used in tests so changing the name to be frame_capture_test_utils.h is more appropriate. Also frame_capture_utils.h will now be a file in libANGLE_with_capture library where serialization code is stored. Bug: angleproject:4806 Change-Id: I7482693a75b2d0edda7e84ae9b777fd3f46f1855 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2273917 Commit-Queue: Manh Nguyen <nguyenmh@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Mohan Maiya 58ff77a8 2020-06-27T09:30:00 Vulkan: Set new layout based on VkImageUsageFlags When transferring vkImages between queues, the new layout needs to be set based on the usage flags of the vkImage instead of hardcoding it to AllGraphicsShadersReadWrite Bug: angleproject:4791 Change-Id: I3b543a6280e6c2317cc11bf65dc4c337bc5f90b1 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2271563 Commit-Queue: Mohan Maiya <m.maiya@samsung.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Courtney Goeltzenleuchter b31a1939 2020-06-25T08:13:20 Vulkan: Implement invalidate for color buffers This will set the color buffer load_op to DONT_CARE if the application has invalidated the color buffers prior to drawing. Will also set load_op to DONT_CARE for depth & stencil, though this isn't likely a common use case. Tests: angle_deqp_gles3_tests --gtest_filter=dEQP.GLES3/functional_fbo_invalidate_* --use-angle=vulkan angle_end2end_tests --use-angle=vulkan --gtest_filter=StateChangeRenderTestES3.InvalidateNonCurrentFramebuffer/ES3_Vulkan Bug: b/150458520 Bug: angleproject:4444 Change-Id: I6ce3d20fc1e9f4ab7ba3af9755c5ddc544f58ddd Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2267057 Commit-Queue: Courtney Goeltzenleuchter <courtneygo@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Charlie Lao <cclao@google.com>
Shahbaz Youssefi b0245f68 2020-06-23T22:38:12 Vulkan: Remove superseded updates when flushing to image Especially with emulated formats and robust resource init, a clear is staged that's often superseded by a data upload to the same subresource. This change ensures that superseded updates are dropped to avoid unnecessary GPU work. Bug: angleproject:4691 Change-Id: I697ccd438b92fd2fff17a5800550694658c95c54 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2262574 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com>
Ian Elliott 7538f91e 2020-06-29T10:17:09 Vulkan: Skip *functional.attribute_location.bind* tests Bug: angleproject:4249 Change-Id: I980054c374f43596050a3387d1d6c3e71b5efed9 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2273697 Reviewed-by: Ian Elliott <ianelliott@google.com> Commit-Queue: Ian Elliott <ianelliott@google.com>
Shahbaz Youssefi e5839678 2020-06-29T09:49:15 Vulkan: Remove suppression of fixed dEQP tests Bug: angleproject:4675 Change-Id: I543f1d3872c89a78c377a309048d1f5df8c67395 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2272863 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Etienne Bergeron a935c65a 2020-06-24T00:09:45 Fix delegate Worker Thread Pool creation This error was introduced while fixing nits in the previous CL. The Delegate Pool was not created at all and always fallback to the Async thread pool instead. Bug: chromium:1091259 Change-Id: I5036836b5d792372636f21e936a03906eb587f67 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2262573 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Etienne Bergeron <etienneb@chromium.org>
Shahbaz Youssefi 69c011ef 2020-06-25T23:51:42 Assert no undefined behavior with left shift in angle::Bit (uintN_t)1 << M has undefined behavior when M >= N. For example, the following: shift = 64; value = 1 << shift; Gives a value of 1 (instead of the arithmetically expected 0) on (some?) Intel CPUs. Bug: None Change-Id: I5fbb01eff812a62eb778474cec25a25b80052bac Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2269857 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Mohan Maiya e69298d1 2020-06-26T08:20:47 Vulkan: External image layout needs to be ReadWrite Textures specified through external images need to transition to a ReadWrite layout and not ReadOnly. Bug: angleproject:4791 Change-Id: I8c0d5999d65499de6a36725ed1cc9c390c479c8c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2270513 Commit-Queue: Mohan Maiya <m.maiya@samsung.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Ian Elliott da3e6451 2020-06-25T23:49:22 Vulkan: Fix fbo_invalidate tests for pre-rotation The BlitFramebuffer path wasn't properly supporting stencil and MSAA paths for pre-rotation: 1) The stencil path on Android isn't going through UtilsVk::blitResolveImpl, but requires changing UtilsVk::stencilBlitResolveNoShaderExport for rotation. 2) MSAA resolves requires rotating clippedSourceArea. Test: angle_deqp_gles3_tests --gtest_filter=dEQP.GLES3/functional_fbo_invalidate_\* Bug: b/158337857 Change-Id: I092cab302c247ff9b2e262b12de3d1a56a257f8e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2269499 Commit-Queue: Ian Elliott <ianelliott@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
Manh Nguyen d4874cb3 2020-06-25T10:49:32 Reformat Framebuffer::readPixels Reformat Framebuffer::readPixels and its overriding methods to the following method signature angle::Result readPixels(const Context *context, const Rectangle &area, GLenum format, GLenum type, const PixelPackState &pack, Buffer *packBuffer void *pixels); This will allow capture replay tool to use its own PixelPackState to read pixels from framebuffer without having to set the global states Bug: angleproject:4787 Change-Id: Idc64179d8e8f6b5163ef0747f239cd5172a2491b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2267417 Commit-Queue: Manh Nguyen <nguyenmh@google.com> Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Ian Elliott b067db75 2020-06-25T23:47:09 Vulkan: Fix copySubImageImplWithDraw() for pre-rotation This involves cases of copying from a rotated default framebuffer. Various adjustments are needed for where the source is and its relationship to gl_FragCoord in the custom ImageCopy fragment shaders. Various tests are affected, including the following: Test: angle_deqp_gles2_tests --gtest_filter=dEQP.GLES2/functional_texture_specification_basic_copy*teximage2d_* Test: angle_deqp_gles3_tests --gtest_filter=dEQP.GLES3/functional_texture_specification_basic_copy*teximage2d_* Bug: b/158245571 Bug: b/157933235 Change-Id: Id9ec56d849cd2268954dd82623a7632a10fb8e8f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2248204 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com> Commit-Queue: Ian Elliott <ianelliott@google.com>
Shahbaz Youssefi 6b49449d 2020-06-25T12:25:33 Vulkan: Fix mipmap generation and level redefinition When generating mipmaps, the non-base levels are redefined to be compatible. mRedefinedLevels was not updated to take this into account, resulting in invalid copies to the image. Additionally, noted a few spots where ImageDesc is used to respecify the image, but those are not up-to-date when the backend functions are called. Changed those to directly get the necessary information from the allocated image. Bug: chromium:1094644 Bug: chromium:1094599 Change-Id: I2afc9e5a53f24ef56836c5d7eec2e3e11df0ef61 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2267423 Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Shahbaz Youssefi 77c062aa 2020-06-24T01:34:28 Vulkan: Remove emulated clears before mipmap generation If the image is recreated for mipmap generation, and if the format used is emulated, clears are automatically staged for all levels of the image. Since non-base levels will be completely rendered to (using blit, so not through the staging buffer), there is no point in performing these clears for non-base levels. This change drops those clears. Note that another change will drop the clear for base level if detecting that a future update will supersede it, for example because the base level is being copied from the old image. Bug: angleproject:4551 Change-Id: If2f10cf67e24b44243b29d22bfcf1cb933895cd7 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2262575 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Corentin Wallez 5046324e 2020-06-26T14:16:56 Skip MultithreadingTest.MultiCreateContext on Ozone On Linux this test is supported with GLX but not EGL, so Ozone (which uses EGL) fails. Update the test suppression to avoid Linux Ozone. TBR=geofflang@chromium.org Bug: angleproject:4725 Change-Id: I9e85b51a01ab5b25c6cbbdbcdbbfb4b21b7a6152 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2270021 Commit-Queue: Corentin Wallez <cwallez@chromium.org> Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Corentin Wallez 769b5eac 2020-06-26T14:05:28 Suppress dEQP GLES3 attribute aliasing on Vulkan Newly added spirv-val validation is triggered by these test cases. Suppress failing tests to let the roll go through and investigate later. TBR=jmadill@chromium.org Bug: angleproject:4790 Change-Id: I3cbb2fb13889e83caea9ff69272b615cec47041f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2270019 Reviewed-by: Corentin Wallez <cwallez@chromium.org> Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Shahbaz Youssefi c81da1c8 2020-06-19T22:05:38 Vulkan: Avoid double-copy when generating mipmap If the image needs to be redefined with mips, level 0 was copied to a buffer which was then copied to the new image. This change instead stages the old image directly for copy to the new image. Bug: angleproject:4551 Change-Id: I7625f140ddadde0a2b439c5e91c519ad49ae2fd7 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2257264 Reviewed-by: Tim Van Patten <timvp@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Shahbaz Youssefi 6ee18c2d 2020-06-17T12:54:52 Vulkan: Remove debug symbols from internal shaders Shaves ~47KB on binary size. Bug: angleproject:2022 Change-Id: Ifc861c4308a806d17f499bf2126009a59125b9f2 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2249566 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Jonah Ryan-Davis 69a78e6d 2020-06-22T13:52:54 CGL: Add basic multithreading support Adds first step to allowing multithreaded contexts: letting multiple threads use ANGLE as long as only one thread has a current context at a time. Bug: angleproject:4724 Bug: angleproject:4725 Bug: chromium:1087084 Change-Id: Ia6ca48c5fa838b93e49fc9ea259d626029439ca3 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2257273 Commit-Queue: Jonah Ryan-Davis <jonahr@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Jonah Ryan-Davis 4eb2f6dc 2020-06-11T11:30:14 Add basic multithreading support to GLX The first step for true multithreading support is allowing multiple threads to use ANGLE as long as only one thread has a current context at a time. Added a test to MultithreadingTests to reproduce this behavior and implemented it in GLX. Bug: angleproject:4724 Bug: angleproject:4725 Bug: chromium:1087084 Change-Id: I908d3f02f34a681f1c9d0919dd17aee1a489173c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2241616 Commit-Queue: Jonah Ryan-Davis <jonahr@google.com> Reviewed-by: Jonah Ryan-Davis <jonahr@google.com> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Mohan Maiya 5474304a 2020-06-24T11:29:58 Vulkan: Handle overflow in maxCombinedUniformComponents computation Certain vendors support large number of uniform buffer components. The calculation of maxCombinedUniformComponents overflows when captured in a 32bit lvalue. Update it to a 64bit variable. Bug: angleproject:4788 Tests: dEQP-GLES3.functional.state_query.integers64.max_combined* Change-Id: I355910218c56347c98a5dfa7359b00be7b40871a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2264849 Commit-Queue: Mohan Maiya <m.maiya@samsung.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Cody Northrop ea706304 2020-06-24T16:35:10 Capture/Replay: Fixups for draw surface Ran into these two problems while capturing gfxbench and trying to replay in the sample. Test: Capture and replay sample of gfxbench Bug: b/159238311 Change-Id: I1c873cbf2e297b5299581a7ffc2b1273e2d4c18a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2265287 Reviewed-by: Manh Nguyen <nguyenmh@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Corentin Wallez 259221d5 2020-06-25T11:15:04 Suppress EGLFeatureControlTest on Linux AMD TBR=geofflang@chromium.org Bug: chromium:1097750 Change-Id: I69b6bc5ac920d839507f94097fa169d458275b38 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2264421 Commit-Queue: Corentin Wallez <cwallez@chromium.org> Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Corentin Wallez d6293293 2020-06-25T10:54:16 Suppress MipmapTest failure on NVIDIA Shield. MipmapTestES3.GenerateMipmapPreservesOutOfRangeMips/ES3_OpenGLES started failing on NVIDIA Shield right after it was introduced. TBR=syoussefi@chromium.org Bug: angleproject:4551 Bug: angleproject:4786 Change-Id: Id6b258a09d33783faf34f867523da31995cee4e7 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2264102 Reviewed-by: Corentin Wallez <cwallez@chromium.org> Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Shahbaz Youssefi 86ae16b6 2020-06-23T01:03:00 Vulkan: Fix CPU path copy of 2D array textures Bug: angleproject:4744 Change-Id: I88d997c39a7d5f8fa9609c43c2cd192b237611e7 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2259202 Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Shahbaz Youssefi 6ef0387d 2020-06-16T23:32:47 Vulkan: Fix mipmap generation discarding levels above max Bug: angleproject:4551 Change-Id: I1f65e41049b8cc8065ff988bb708cb44acfdb98b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2257263 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
James Darpinian 18d412cb 2020-06-18T11:57:53 Fix readBuffer validation The argument to glReadBuffer should be validated against GL_MAX_COLOR_ATTACHMENTS, not GL_MAX_DRAW_BUFFERS. Bug: angleproject:4766 Change-Id: Ic184934bd01e68b936266eae69543ae66fd68ea3 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2252978 Reviewed-by: Kenneth Russell <kbr@chromium.org> Reviewed-by: Jonah Ryan-Davis <jonahr@google.com> Commit-Queue: Kenneth Russell <kbr@chromium.org>
Charlie Lao 054aeeed 2020-06-12T11:49:03 Vulkan: Batch vkUpdateDescriptorSets calls Right now we are making this calls multiple times as we loop through each shader stage. Qualcomm performance validation layer warns about this. This change will aggregate the calls into one call per dispatch. Bug: b/158787299 Change-Id: I48aa3752f708c26ffbca2fb7947cb8bbc0f76dcd Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2243321 Commit-Queue: Charlie Lao <cclao@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com> Reviewed-by: Tim Van Patten <timvp@google.com>
Ian Elliott 70e706f4 2020-06-22T18:14:44 Vulkan: Fix glBlitFramebuffer() for pre-rotation This involves cases of blitting to/from a rotated default framebuffer, potentially with scaling in one or both dimensions. Various adjustments are needed at different times in the stack, including in the custom BlitResolve fragment shaders. Various tests are affected, including the following: Test: angle_end2end_tests --gtest_filter=*EGLPreRotationLargeSurfaceTest.OrientedWindowWithBlitFramebuffer Test: angle_deqp_gles3_tests --gtest_filter=dEQP.GLES3/functional_fbo_invalidate_\* Bug: b/158337857 Change-Id: Ibb176e4215784e85c0f34e6e1c22ba662517fed2 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2242359 Reviewed-by: Ian Elliott <ianelliott@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Ian Elliott <ianelliott@google.com>
Corentin Wallez 89001914 2020-06-24T14:56:15 Suppress TextureTest failure on NVIDIA Shield. Texture2DTestES3.IncompatibleMipsButNoMipmapFiltering/ES3_OpenGL started failing on NVIDIA Shield right after it was introduced. TBR=syoussefi@chromium.org Bug: angleproject:4786 Change-Id: I9805e4d22a01395a8b0eb47243b07fbf2abd6f4a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2264092 Commit-Queue: Corentin Wallez <cwallez@chromium.org> Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Shahbaz Youssefi 62a2f513 2020-06-23T13:16:19 Vulkan: Remove DispatchHelper This class is no longer used. Bug: angleproject:4029 Change-Id: I2758b286ae10856a5dff3decbb1cf9c58b44e354 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2260936 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Shahbaz Youssefi cf11beed 2020-06-22T15:51:51 Add mip-related corner-case tests Bug: angleproject:4780 Bug: angleproject:4781 Change-Id: Iaf8e1df576c3676249751413a646244da41a0eaf Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2258476 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Shahbaz Youssefi ce3d3413 2020-06-23T09:29:05 Update glslang_validator binary for Linux. This binary was updated using update_glslang_binary.py. Please see instructions in tools/glslang/README.md. Bug: None Change-Id: Ib1c3ae292a90ec6aabc79b9396ca2e35007edc16 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2260573 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Antonio Maiorano b47cc50a 2020-06-22T10:59:09 Enable validation layer custom extensions With this change, Vulkan-ValidationLayers will allow the specified extensions to pass through, instead of being nulled out: * VK_STRUCTURE_TYPE_SAMPLER_FILTERING_PRECISION_GOOGLE * VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_FEATURES_EXT Bug: b/159027603 Bug: b/154620295 Change-Id: I0ace3acdac06a6c115834ef88b0c883fa2dd4744 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2246304 Commit-Queue: Antonio Maiorano <amaiorano@google.com> Reviewed-by: Antonio Maiorano <amaiorano@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Shahbaz Youssefi ea15439b 2020-06-23T00:17:52 Add mipmap generation perf test for emulated formats Add a variation to mipmap generation perf test to measure performance when given a format that requires emulation in the Vulkan backend, in this case GL_RGB. Bug: angleproject:4551 Change-Id: I4c533d13e35279fec9e007691fb64353735040d7 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2259199 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
angle-autoroll 7db2dcec 2020-06-19T07:01:08 Roll Vulkan-ValidationLayers from 04f0b691eb4c to 74ed6cfd05c1 (20 revisions) https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-ValidationLayers.git/+log/04f0b691eb4c..74ed6cfd05c1 2020-06-18 tony@lunarg.com layers: Remove leading comma in lists 2020-06-18 mark@lunarg.com corechecks: Fix DrawIndexedIndirect VUID name 2020-06-18 jeremyk@lunarg.com tests: Add combined image sampler test 2020-06-18 jeremyk@lunarg.com layers: Add combined image sampler check 2020-06-18 jeremyk@lunarg.com layers: Add CMD_TYPE parameter to pipeline binding 2020-06-18 tony@lunarg.com layers: Add is_khr to acceleration_structure_state 2020-06-17 mark@lunarg.com tests: Don't run ManySmallIndexedDrawCall test on shieldTV 2020-06-17 s.fricke@samsung.com tests: Add export handleType VUIDs 2020-06-17 s.fricke@samsung.com layers: Add export handleType VUIDs 2020-06-17 s.fricke@samsung.com layers: Wrap non external AHB logic together 2020-06-17 s.fricke@samsung.com tests: Validate maxSamplerAllocationCount 2020-06-17 s.fricke@samsung.com layers: Validate maxSamplerAllocationCount 2020-06-17 s.fricke@samsung.com layers: Add function calls to error log messages 2020-06-17 mark@lunarg.com tests: Add filters for BP Android test failures 2020-06-17 mark@lunarg.com tests: Compile best practices tests for Android 2020-06-17 mark@lunarg.com tests: Replace setenv with private settings extension 2020-06-17 mark@lunarg.com layers: Add private settings extension and write support 2020-06-17 s.fricke@samsung.com layers: Remove invalid check for AHB format 2020-06-17 szilard.papp@arm.com tests: Adding test for triple buffering 2020-06-17 szilard.papp@arm.com practices: Adding checks for triple buffering If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/vulkan-validation-layers-angle-autoroll Please CC courtneygo@google.com on the revert to ensure that a human is aware of the problem. To report a problem with the AutoRoller itself, please file a bug: https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug Documentation for the AutoRoller is here: https://skia.googlesource.com/buildbot/+doc/master/autoroll/README.md Bug: None Tbr: courtneygo@google.com Change-Id: I8c35e56e998560c53e8b54bfd26749d334172b30 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2254490 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Tobin Ehlis <tobine@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Tobin Ehlis cfbf769d 2020-06-22T10:14:02 Vulkan:Level/Layer hash fix-up Simplify has function for level/layer of imageView and add asserts to make sure that there won't be hash collisions. Bug: angleproject:4651 Change-Id: I8ab86a4f3d7aa668ad2c08e61bd5fd57744fcd12 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2257265 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Tobin Ehlis <tobine@google.com>
Le Hoang Quyen 113c5e29 2020-05-11T22:49:03 Metal: deferred render command encoder creation. MTLRenderCommandEncoder creation will be deferred until a render pass ends. Commands will be stored into a back-end owned buffer during render pass. At the end of the render pass, those commands will be re-encoded into an actual MTLRenderCommandEncoder. Benefits: - Useful for future implementation of occlusion query buffer where it could be allocated right before the end of a render pass to be big enough to store all queries within the render pass. - It's possible to change load option (deferred clear) as long as there is no draw call issued yet. This is not implemented yet. - Possibility of commands' re-ordering. Bug: angleproject:2634 Change-Id: I1348716aa882c0540d9120bf175d8dac13fb58bd Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2193196 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Jonah Ryan-Davis <jonahr@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Xiaoxuan Liu a7587fcf 2020-06-22T14:59:30 Vulkan: Skip Texture2DArrayCopy.SnormFormats on Mali GPU. Bug: angleproject:4744 Change-Id: I911b184daffde616d874af8cd698f1f796a9cfcc Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2257120 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Corentin Wallez 47ad6801 2020-06-22T14:27:28 Suppress TransformFeedbackTest failure on Mac AMD. TBR=jmadill@chromium.org Bug: angleproject:4775 Change-Id: I22e8c0c42e48c4c2d0527b39ec740497083656c2 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2256208 Commit-Queue: Corentin Wallez <cwallez@chromium.org> Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Shahbaz Youssefi b772a955 2020-06-16T23:32:47 Vulkan: Make texture syncState aware of upcoming generateMipmap By letting TextureVk::syncState know it's being called for generateMipmap, it can make a better decision to initialize the image: - Staged updates to mips that are going to be overwritten are dropped - The image is created with full mipchain to avoid a redefine in the following generateMipmap() call. Bug: angleproject:4551 Change-Id: Ic70ee6c0a0b29c7bd62beaff612b2f2d5276defb Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2249340 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com>
Courtney Goeltzenleuchter 2919dc6e 2020-06-15T18:39:39 Add immutable samplers to descriptor set layout To support YUV conversion we need to track the use of immutable samplers in the descriptor set layout. Bug: b/155487768 Change-Id: Ic7dc6a08551f5125c4a519b5cfada312f95ab914 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2225423 Commit-Queue: Courtney Goeltzenleuchter <courtneygo@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Ian Elliott <ianelliott@google.com>
Jonah Ryan-Davis f56ba018 2020-06-19T11:30:59 Fix TSAN build error This typo was hidden behind a THREAD_SANITIZER flag so it was uncaught by the CQ. I verified this fix locally. Bug: chromium:1097082 Change-Id: I4e31d1d1253cbcaf292c9a588bcd54fc298e85b6 TBR=jmadill@chromium.org Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2254558 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Jonah Ryan-Davis <jonahr@google.com> Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
Tobin Ehlis 34ca1ac7 2020-06-16T12:05:12 Vulkan: Fix FramebufferVk cache Migrate Serial from Image to ImageView. Imageviews are what are utimately used in FramebufferVk, so move the Serials into the ImageViewHelper class. Since that class also knows the level/layer of the imageView, we can revert to using a single Serial per ImageView instead of the AttachmentSerial that included the layer and level. ImageViewHelper caches Serials per layer/level combo. Bug: angleproject:4651 Change-Id: I3741d7d03523eada84295cb712c1cc1e6e3c3867 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2248203 Commit-Queue: Tobin Ehlis <tobine@google.com> Reviewed-by: Mohan Maiya <m.maiya@samsung.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill fe902f4b 2020-06-19T14:28:36 Test Runner: Stub histogram writer. The Android tests require a valid output for the perf test results. The smallest valid output is an empty array. Bug: angleproject:3162 Change-Id: I1bf7602b02358d634347d587b406c0c2d7c838a2 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2254088 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Brian Sheedy <bsheedy@chromium.org> Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Jamie Madill b11af52f 2020-06-19T14:39:29 Suppress failing XFB tests on Intel/Win/Vulkan. Bug: angleproject:4533 Bug: angleproject:4767 Change-Id: I34973d4160df993f2b1ed4d97d5d9f3871ecb9f3 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2254090 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Brian Sheedy <bsheedy@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Manh Nguyen 9dee8e3f 2020-06-15T10:59:18 Automate testing of capture_replay automation script will: 1. compile all tests in angle_end2end with framecapture enabled 2. run each test with frame capture 3. compile CaptureReplayTest with cpp trace files 4. Run CaptureReplayTest Test: run_tests_with_framecapture.py Bug: angleproject:4749 Change-Id: Ieb21c6137653632d73beedea48712e46fc15a0f3 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2246321 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Manh Nguyen <nguyenmh@google.com>
Mohan Maiya f16e94cd 2020-06-17T10:43:19 Prefer retrieval of TLS values through ASM code on Android On the Android platform prefer using the ASM code to retrieve TLS context object even for single threaded apps. This helps get rid of a branch in GetGlobalContext() and GetValidGlobalContext() further improving the CPU perf of TLS operations. Bug: angleproject:4717 Change-Id: I58d3d3b7061d613b24f945c07bed497c7c4be25c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2250318 Commit-Queue: Mohan Maiya <m.maiya@samsung.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
Cody Northrop c028fc73 2020-06-19T09:06:03 Tests: Update traces to include draw surface width/height The traces now contain the original resolution they ran with, so we can set that based on testID. This fixes correctness problems on Android, where only a fraction of the screen could be seen during replay. Bug: b/159238311 Test: angle_perftests --gtest_filter="*Trace*" Change-Id: I47b92ee31681998260bad059cde0856a25ae0fc6 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2250863 Commit-Queue: Cody Northrop <cnorthrop@google.com> Reviewed-by: Manh Nguyen <nguyenmh@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Courtney Goeltzenleuchter e474cc9e 2020-06-18T16:03:30 Download restricted trace data To ensure that things are built we need to update the modification time on the files we download. This adds a script to download the requested files and then touch everything that was downloaded in the traces folders. Bug: chromium:1096577 Change-Id: Idce6abb6100e7c662429a9db71b1a44a78dd88a6 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2252544 Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Courtney Goeltzenleuchter <courtneygo@google.com>