- 22 Mar, 2019 12 commits
-
-
Nicolas Capens authored
Array<> emits GEP instructions on every access, which aren't necessary. Note that these temporaries are required because the If/Else blocks both write to them, while the destination intermediate object is an rvalue which can only be initialized once to maintain SSA form. Also EmitAccessChain was moved to match the declaration order. Bug b/128539387 Change-Id: I726fb0fd28b0a19a61e8759679e30bc699f3279d Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/27788 Presubmit-Ready: Nicolas Capens <nicolascapens@google.com> Tested-by:
Nicolas Capens <nicolascapens@google.com> Reviewed-by:
Chris Forbes <chrisforbes@google.com> Kokoro-Presubmit: kokoro <noreply+kokoro@google.com>
-
Nicolas Capens authored
SIMD vector load and store are already atomic on x86 and ARM, and Vulkan only supports atomic operations on "scalar 32-bit integer type". Memory order semantics are handled in a follow-up change. Bug b/127472316 Test: dEQP-VK.spirv_assembly.instruction.compute.opatomic.load Test: dEQP-VK.spirv_assembly.instruction.compute.opatomic.store Change-Id: I4481fe7b7aa792b63f516bd3cb1aab1d773bbcbd Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/27649 Presubmit-Ready: Nicolas Capens <nicolascapens@google.com> Tested-by:
Nicolas Capens <nicolascapens@google.com> Kokoro-Presubmit: kokoro <noreply+kokoro@google.com> Reviewed-by:
Chris Forbes <chrisforbes@google.com>
-
Alexis Hetu authored
"-Wno-error=header-hygiene" was redundant with "-Wno-header-hygiene". Removed it. Change-Id: I5b75e8d42ef78c230cf064372f99db7950caf262 Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/27868Tested-by:
Alexis Hétu <sugoi@google.com> Presubmit-Ready: Alexis Hétu <sugoi@google.com> Reviewed-by:
Nicolas Capens <nicolascapens@google.com>
-
Ben Clayton authored
Change-Id: I9274f2141f14959ba614b57d45a637232baad5c8 Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/27469Reviewed-by:
Nicolas Capens <nicolascapens@google.com> Tested-by:
Ben Clayton <bclayton@google.com>
-
Ben Clayton authored
Bug: b/129056755 Change-Id: I01518b3cb802c45f2b3cc14e6e2c2f81416b4cd4 Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/27782Reviewed-by:
Nicolas Capens <nicolascapens@google.com> Tested-by:
Ben Clayton <bclayton@google.com>
-
Nico Weber authored
Bug: chromium:944675 Change-Id: Icfe9d147fc6be936aac5a45f3bb6526022e5e898 Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/27848 Presubmit-Ready: Nico Weber <thakis@chromium.org> Kokoro-Presubmit: kokoro <noreply+kokoro@google.com> Reviewed-by:
Nicolas Capens <nicolascapens@google.com> Tested-by:
Nico Weber <thakis@chromium.org>
-
Ben Clayton authored
I have no idea why this has suddenly started firing. Bug: b/123933266 Change-Id: If94903e2b549bd628eb912569c1bb803bd576951 Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/27777 Presubmit-Ready: Ben Clayton <bclayton@google.com> Reviewed-by:
Nicolas Capens <nicolascapens@google.com> Tested-by:
Ben Clayton <bclayton@google.com> Kokoro-Presubmit: kokoro <noreply+kokoro@google.com>
-
Ben Clayton authored
sw::Intermediate would only clear the contents to zero in debug builds, but would always validate that these were nullptr in release (ASSERT still warns in release). Given the cost nullifying this memory is negligable in comparison to the actual LLVM JIT, always clear. Changed a bunch of ASSERT()s to ASSERT_MSG() where the additional information is useful. Replaced a few remaining calls to assert() with ASSERT() Bug: b/127433389 Change-Id: Ifac89ca061bf7d61ff7d0de1792eeda18fad275c Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/27568 Presubmit-Ready: Ben Clayton <bclayton@google.com> Tested-by:
Ben Clayton <headlessclayton@gmail.com> Kokoro-Presubmit: kokoro <noreply+kokoro@google.com> Reviewed-by:
Chris Forbes <chrisforbes@google.com> Reviewed-by:
Nicolas Capens <nicolascapens@google.com>
-
SwiftShader Regression Bot authored
Change-Id: Ic3dcd942fe0f8d56536633434ce0b8ac6da8d066 Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/27778Reviewed-by:
Ben Clayton <bclayton@google.com> Tested-by:
Ben Clayton <bclayton@google.com>
-
Ben Clayton authored
While not necessary for swiftshader, this is needed to compare against certain system vulkan drivers. Bug: b/128527271 Change-Id: I64c9e39659d565a0369c2989a324e4c09dbf7c02 Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/27773 Presubmit-Ready: Ben Clayton <headlessclayton@gmail.com> Tested-by:
Ben Clayton <bclayton@google.com> Reviewed-by:
Nicolas Capens <nicolascapens@google.com> Kokoro-Presubmit: kokoro <noreply+kokoro@google.com>
-
Ben Clayton authored
The system vulkan driver can get sulky if you don't free memory. Bug: b/123749916 Change-Id: I9bf2de63a788200c401b41fa3efdfb36f3c15245 Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/27772 Presubmit-Ready: Ben Clayton <headlessclayton@gmail.com> Tested-by:
Ben Clayton <bclayton@google.com> Reviewed-by:
Nicolas Capens <nicolascapens@google.com> Kokoro-Presubmit: kokoro <noreply+kokoro@google.com>
-
Ben Clayton authored
It seems an update has started make these C++ extension PCH files show up in version control. Change-Id: I9af5dbf7e74bf8fb7d9ef25e84cce28b7424dda8 Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/27771 Presubmit-Ready: Ben Clayton <bclayton@google.com> Reviewed-by:
Nicolas Capens <nicolascapens@google.com> Tested-by:
Ben Clayton <headlessclayton@gmail.com> Kokoro-Presubmit: kokoro <noreply+kokoro@google.com>
-
- 21 Mar, 2019 13 commits
-
-
Nicolas Capens authored
Bug b/126742833 Change-Id: Ic07ebc74f342566905690a6059c742c4c2c47acd Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/27791Tested-by:
Nicolas Capens <nicolascapens@google.com> Presubmit-Ready: Nicolas Capens <nicolascapens@google.com> Reviewed-by:
Alexis Hétu <sugoi@google.com>
-
Chris Forbes authored
This isn't used. We have Ben's shiny new descriptor-based UBO system now instead. Change-Id: If971e6bce3ddfb149d33dc5c42294d7b75c31888 Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/26609Tested-by:
Chris Forbes <chrisforbes@google.com> Presubmit-Ready: Chris Forbes <chrisforbes@google.com> Reviewed-by:
Nicolas Capens <nicolascapens@google.com> Kokoro-Presubmit: kokoro <noreply+kokoro@google.com>
-
Nicolas Capens authored
Since we're essentially assigning from one rvalue to another, move() seems to describe the intent better and even matches register-to-register move instructions. Bug b/128539387 Change-Id: I409b3ede9578a100f25ea92e61f7492a38341ca4 Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/26869 Presubmit-Ready: Nicolas Capens <nicolascapens@google.com> Tested-by:
Nicolas Capens <nicolascapens@google.com> Reviewed-by:
Chris Forbes <chrisforbes@google.com>
-
Chris Forbes authored
Bug: b/129069789 Test: dEQP-VK.glsl.derivate.* Change-Id: Iac1b5ed51dae0f6d8937b2162eb0a662d02b34ba Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/27729 Presubmit-Ready: Chris Forbes <chrisforbes@google.com> Reviewed-by:
Nicolas Capens <nicolascapens@google.com> Tested-by:
Chris Forbes <chrisforbes@google.com> Kokoro-Presubmit: kokoro <noreply+kokoro@google.com>
-
Alexis Hetu authored
Basic support for executing secondary command buffers, without support for any inheritance features. Bug b/118619338 Change-Id: Ie3453018a45a722ecfa4f1acd20c95442fbb3d9b Tests: dEQP-VK.memory.pipeline_barrier.host_write_transfer_src.* Tests: dEQP-VK.api.command_buffers.allocate_single_secondary Tests: dEQP-VK.api.command_buffers.allocate_many_secondary Tests: dEQP-VK.api.command_buffers.trim_command_pool_secondary Tests: dEQP-VK.api.command_buffers.record_single_secondary Tests: dEQP-VK.api.command_buffers.record_many_secondary Tests: dEQP-VK.api.command_buffers.submit_twice_secondary Tests: dEQP-VK.api.command_buffers.record_one_time_submit_secondary Tests: dEQP-VK.api.command_buffers.secondary_execute Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/27493Tested-by:
Alexis Hétu <sugoi@google.com> Kokoro-Presubmit: kokoro <noreply+kokoro@google.com> Reviewed-by:
Nicolas Capens <nicolascapens@google.com>
-
Chris Forbes authored
- secondaryColor control only made sense in fixed-function - Vulkan provoking vertex is always the first vertex Bug: b/125909515 Test: dEQP-VK.rasterization.flatshading.* Change-Id: I9b6826e093076ee7ca5ef6deaf1b1fbd1c2f39e3 Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/27509 Presubmit-Ready: Chris Forbes <chrisforbes@google.com> Tested-by:
Chris Forbes <chrisforbes@google.com> Kokoro-Presubmit: kokoro <noreply+kokoro@google.com> Reviewed-by:
Nicolas Capens <nicolascapens@google.com>
-
Chris Forbes authored
Heavy-handed implementation of implicit or explicit VkSubpassDependency to VK_SUBPASS_EXTERNAL after a subpass. Fixes various test flake. Test: dEQP-VK.glsl.derivate.* Change-Id: I9cb60828e6aff344e28dd7a8e1a867b5c8a11c22 Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/27708Tested-by:
Chris Forbes <chrisforbes@google.com> Presubmit-Ready: Chris Forbes <chrisforbes@google.com> Reviewed-by:
Nicolas Capens <nicolascapens@google.com> Kokoro-Presubmit: kokoro <noreply+kokoro@google.com>
-
Alexis Hetu authored
There are no more dependencies on sw::Surface, it can now be removed. Bug b/126883332 Change-Id: I8d2deaa6eb78ffc1ce7be6614876a3c9a30da341 Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/27492Reviewed-by:
Nicolas Capens <nicolascapens@google.com> Tested-by:
Alexis Hétu <sugoi@google.com> Kokoro-Presubmit: kokoro <noreply+kokoro@google.com>
-
Alexis Hetu authored
vk::Format was expanded to include more format related checks and the sampler object now uses them. Whether or not the Sampler code ends up actually being used is unsure, but the code has been updated to use vk::Image instead of sw::Surface. This should be the last sw::Surface reference in Vulkan code. Bug b/126883332 Change-Id: Ib1b4c3ce87d0fdad5ac7238b7e86211a499871a5 Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/27490Tested-by:
Alexis Hétu <sugoi@google.com> Presubmit-Ready: Alexis Hétu <sugoi@google.com> Kokoro-Presubmit: kokoro <noreply+kokoro@google.com> Reviewed-by:
Nicolas Capens <nicolascapens@google.com>
-
Alexis Hetu authored
Implemented waitEvents as a sync operation, like pipeline barriers, since, as the Vulkan spec states: "vkCmdWaitEvents is used with vkCmdSetEvent to define a memory dependency between two sets of action commands, roughly in the same way as pipeline barriers, but split into two commands such that work between the two may execute unhindered." Only the pEvents parameter is supported and currently doesn't support pMemoryBarrier, pBufferMemoryBarriers or pImageMemoryBarriers. Bug b/118620868 Change-Id: I30ccc65c65dfc7d9a99e25ebb535061c618375cb Tests: dEQP-VK.api.command_buffers.record_simul_use_primary Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/27348Tested-by:
Alexis Hétu <sugoi@google.com> Presubmit-Ready: Alexis Hétu <sugoi@google.com> Reviewed-by:
Chris Forbes <chrisforbes@google.com> Reviewed-by:
Nicolas Capens <nicolascapens@google.com> Kokoro-Presubmit: kokoro <noreply+kokoro@google.com>
-
Nicolas Capens authored
Previously the pointee type of OpVariable was determined starting from the result ID. It just obtains the 'Object' which has the type collected from the OpVariable instruction itself. So the object lookup can be skipped by using the latter directly again. Bug b/129000021 Change-Id: I882d837c4cc1c7a8d0b19de38dc8ee19e622af33 Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/27651 Presubmit-Ready: Nicolas Capens <nicolascapens@google.com> Tested-by:
Nicolas Capens <nicolascapens@google.com> Reviewed-by:
Chris Forbes <chrisforbes@google.com> Kokoro-Presubmit: kokoro <noreply+kokoro@google.com>
-
SwiftShader Regression Bot authored
Change-Id: I250bf1da0e6f1556af67f320b7cafabc4724f34f Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/27572Reviewed-by:
Ben Clayton <bclayton@google.com> Tested-by:
Ben Clayton <bclayton@google.com>
-
Chris Forbes authored
- OpDPdx - OpDPdy - OpFwidth - OpDPdxCoarse - OpDPdyCoarse - OpFwidthCoarse - OpDPdxFine - OpDPdyFine - OpFwidthFine We have flexibility in how we implement the OpDPdx, OpDPdy and OpFwidth instructions; they can return either coarse or fine derivatives. I have chosen to make them equivalent to the coarse derivatives since those are slightly cheaper to compute. Added a static assert to ensure we revisit these when considering other vector widths. Bug: b/129002115 Test: dEQP-VK.glsl.derivate.* Change-Id: I75224c1e77c1eefac4f219be5662836daa86a098 Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/27689Tested-by:
Chris Forbes <chrisforbes@google.com> Presubmit-Ready: Chris Forbes <chrisforbes@google.com> Reviewed-by:
Nicolas Capens <nicolascapens@google.com> Kokoro-Presubmit: kokoro <noreply+kokoro@google.com>
-
- 20 Mar, 2019 5 commits
-
-
Chris Forbes authored
Choice of tests is slightly odd -- but there are a number of tests in this group which *don't* use the derivative instructions (glslang is smart enough to not emit them when the expression is known to be uniform). Bug: b/126330097 Test: dEQP-VK.glsl.derivate.* Test: dEQP-VK.ubo.* Change-Id: I8864149104f2ea9b62c75ceae59da4ff8adebc32 Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/26548Tested-by:
Chris Forbes <chrisforbes@google.com> Presubmit-Ready: Chris Forbes <chrisforbes@google.com> Reviewed-by:
Ben Clayton <bclayton@google.com> Reviewed-by:
Nicolas Capens <nicolascapens@google.com> Kokoro-Presubmit: kokoro <noreply+kokoro@google.com>
-
Nicolas Capens authored
Was wrongly assuming that if ..\deqp exists, the build directory must be deqp\build. Change-Id: I0e071565d9c41940efbcd4453de70f2994ad1be5 Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/27652Tested-by:
Nicolas Capens <nicolascapens@google.com> Reviewed-by:
Alexis Hétu <sugoi@google.com>
-
Chris Forbes authored
I'm about to build some more on top of this; don't want to write it multiple times. Change-Id: I9ca84536f47b886e9f03edcaa6dc5dfe6e34091d Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/26688Tested-by:
Chris Forbes <chrisforbes@google.com> Presubmit-Ready: Chris Forbes <chrisforbes@google.com> Reviewed-by:
Alexis Hétu <sugoi@google.com> Reviewed-by:
Nicolas Capens <nicolascapens@google.com> Kokoro-Presubmit: kokoro <noreply+kokoro@google.com>
-
Nicolas Capens authored
Intermediate::Scalar was defined as RValue<SIMD::Float>, even though it can hold integers as well. Use abstract Reactor values instead which don't have a statically defined type. This change does not yet avoid bitcasting on access. The EmitLoad() implementation still assumes values come in as float. Bug b/128539387 Change-Id: I18f449ebf68db7ddd81679d6d028911e6c02fc38 Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/26868 Presubmit-Ready: Nicolas Capens <nicolascapens@google.com> Kokoro-Presubmit: kokoro <noreply+kokoro@google.com> Tested-by:
Nicolas Capens <nicolascapens@google.com> Reviewed-by:
Ben Clayton <bclayton@google.com> Reviewed-by:
Chris Forbes <chrisforbes@google.com>
-
SwiftShader Regression Bot authored
Change-Id: Ibfb2c1126253d98d15016b464e79e06f4d1bac8a Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/27570Reviewed-by:
Ben Clayton <bclayton@google.com> Tested-by:
Ben Clayton <bclayton@google.com>
-
- 19 Mar, 2019 10 commits
-
-
Chris Forbes authored
Previously this was left uninitialized, with exciting results when a shader used it for buffer indexing etc. Bug: b/126871859 Test: dEQP-VK.*push_constant* Test: dEQP-VK.glsl.* Test: dEQP-VK.spirv_assembly.* Change-Id: I57fb9e22cbe57a87072b1039a7d799bedd28ae91 Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/27628 Presubmit-Ready: Chris Forbes <chrisforbes@google.com> Reviewed-by:
Nicolas Capens <nicolascapens@google.com> Reviewed-by:
Ben Clayton <bclayton@google.com> Tested-by:
Chris Forbes <chrisforbes@google.com> Kokoro-Presubmit: kokoro <noreply+kokoro@google.com>
-
Chris Forbes authored
Bug: b/128690261 Bug: b/128872954 Test: dEQP-VK.*push_constant* Test: dEQP-VK.glsl.* Test: dEQP-VK.spirv_assembly.* Change-Id: I0f8d103288777cd03347b32366ed5c5606e38b8d Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/27588 Presubmit-Ready: Chris Forbes <chrisforbes@google.com> Reviewed-by:
Nicolas Capens <nicolascapens@google.com> Tested-by:
Chris Forbes <chrisforbes@google.com> Kokoro-Presubmit: kokoro <noreply+kokoro@google.com>
-
Chris Forbes authored
- Proper support for calculating offsets in explicit-layout storage classes (push constant, uniform, and storage buffer) according to the Offset, ArrayStride and MatrixStride decorations. - Plumb a block of push constant data throughout the pipeline - Implement push constant update commands Bug: b/128690261 Bug: b/128872954 Test: dEQP-VK.*push_constant* Test: dEQP-VK.glsl.* Test: dEQP-VK.spirv_assembly.* Change-Id: I7d5a66ac4aafd6b637b4693eb6ce96a327b4904e Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/27528Tested-by:
Chris Forbes <chrisforbes@google.com> Presubmit-Ready: Chris Forbes <chrisforbes@google.com> Reviewed-by:
Ben Clayton <bclayton@google.com> Reviewed-by:
Nicolas Capens <nicolascapens@google.com> Kokoro-Presubmit: kokoro <noreply+kokoro@google.com>
-
Nicolas Capens authored
Also copy the DLLs to build/ This makes it consistent with the CMake build. Bug b/116336664 Bug b/29024574 Change-Id: I747a52383492c3ec5493f1a232cbbf5c98aec219 Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/27608 Presubmit-Ready: Nicolas Capens <nicolascapens@google.com> Kokoro-Presubmit: kokoro <noreply+kokoro@google.com> Tested-by:
Nicolas Capens <nicolascapens@google.com> Reviewed-by:
Ben Clayton <bclayton@google.com> Reviewed-by:
Alexis Hétu <sugoi@google.com>
-
Chris Forbes authored
Treat OpUndef identically to OpConstantNull for now. Change-Id: I721f2bf5e053d6a8d6f563272b1d44b6636a157c Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/27529Tested-by:
Chris Forbes <chrisforbes@google.com> Presubmit-Ready: Chris Forbes <chrisforbes@google.com> Reviewed-by:
Ben Clayton <bclayton@google.com>
-
Ben Clayton authored
List most common failures on the daily report. Change-Id: Ia07f73601727f71e5f2abee7c40886e2a05209bb Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/27472Reviewed-by:
Nicolas Capens <nicolascapens@google.com> Tested-by:
Ben Clayton <bclayton@google.com>
-
Ben Clayton authored
Confusingly the "Code-Review" label uses 'Value' for -1 / +1, and 'Approved' for +2s. Changes that were ready to land were not being prioritized over no-code review. Change-Id: Ia31adcbbba70b2f52b9abc7299f4bafdcdb8fe48 Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/27170Tested-by:
Ben Clayton <bclayton@google.com> Reviewed-by:
Nicolas Capens <nicolascapens@google.com>
-
Ben Clayton authored
If a test failed to build, an error was logged to stdout, but the error was not posted to the change. This meant the change would be picked up by regres again, and the process would repeat ad-infinitum. Posting of the build error used to work, but was broken by bfaf4e825b. Change-Id: I1e59f0d2e5ee26eb002aa2c596dc5491e48a9c87 Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/27169Tested-by:
Ben Clayton <bclayton@google.com> Reviewed-by:
Nicolas Capens <nicolascapens@google.com>
-
Nicolas Capens authored
Cube textures must be cube complete to generate mipmaps, but when the base level is undefined the glGenerateMipmap command must be silently ignored. This was previously leading to a null dereference. Bug chromium:924022 Bug https://gitlab.khronos.org/opengl/API/issues/72 Change-Id: I5d6e8533118e554efa12045fc376126c7b00f263 Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/27491 Presubmit-Ready: Nicolas Capens <nicolascapens@google.com> Tested-by:
Nicolas Capens <nicolascapens@google.com> Kokoro-Presubmit: kokoro <noreply+kokoro@google.com> Reviewed-by:
Alexis Hétu <sugoi@google.com>
-
Nicolas Capens authored
Bug b/126126820 Change-Id: Iaf3991d58c64995018ba0d15773b65d463e03fad Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/27549Reviewed-by:
Ben Clayton <bclayton@google.com> Tested-by:
Nicolas Capens <nicolascapens@google.com> Kokoro-Presubmit: kokoro <noreply+kokoro@google.com>
-