|
|
Descriptiongpu, cmaa: reuse CopyTextureCHROMIUMResourceManager
In addition, prevent from using glCopyTexSubImage2D in
CopyTextureCHROMIUMResourceManager on Intel ChromeOS, because copy via
glDrawArrays is much faster in IA ChromeOS. However, glCopyTexSubImage2D is
faster in Android.
It looks Mesa bug, so I filed this issue to Mesa bugzilla; https://bugs.freedesktop.org/show_bug.cgi?id=98478
Perf data >
test site: http://webglsamples.org/aquarium/aquarium.html
glCopyTexSubImage2D glDrawArrays
4k fish on Chromebook Pixel 2015 (Broadwell): 22 FPS 32.6 FPS
4k fish on Ubuntu and Haswell: 23 FPS 30.9 FPS
500 fish on Android OnePlus One (Adreno 330): 25 FPS 22.5 FPS
BUG=535198
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel
Committed: https://crrev.com/0c8b1229552985d8ed976b8d47e66ff983afceac
Cr-Commit-Position: refs/heads/master@{#429240}
Patch Set 1 #
Total comments: 2
Patch Set 2 : reuse CopyTextureCHROMIUMResourceManager #
Total comments: 3
Patch Set 3 : fix gl_tests #Patch Set 4 : revert unrelated change #
Messages
Total messages: 37 (27 generated)
Description was changed from ========== gpu, cmaa: optimize copy. If input texture format is not RGBA8, CMAA copies the input texture to RGBA8. Currently, CMAA copies texture using glCopyTexSubImage2D, but copy via glDrawArrays is much faster in IA ChromeOS. However, glCopyTexSubImage2D is faster in Android. It looks Mesa bug. I'll file this issue to Mesa bugzilla. Perf data > test site: http://webglsamples.org/aquarium/aquarium.html glDrawArrays glCopyTexSubImage2D 4k fish on Chromebook Pixel 2015 (Broadwell): 22 FPS 32.6 FPS 4k fish on Ubuntu and Haswell: 23 FPS 30.9 FPS 500 fish on Android OnePlus One: 25 FPS 22.5 FPS BUG=535198 ========== to ========== gpu, cmaa: optimize copy. If input texture format is not RGBA8, CMAA copies the input texture to RGBA8. Currently, CMAA copies texture using glCopyTexSubImage2D, but copy via glDrawArrays is much faster in IA ChromeOS. However, glCopyTexSubImage2D is faster in Android. It looks Mesa bug. I'll file this issue to Mesa bugzilla. Perf data > test site: http://webglsamples.org/aquarium/aquarium.html glDrawArrays glCopyTexSubImage2D 4k fish on Chromebook Pixel 2015 (Broadwell): 22 FPS 32.6 FPS 4k fish on Ubuntu and Haswell: 23 FPS 30.9 FPS 500 fish on Android OnePlus One: 25 FPS 22.5 FPS BUG=535198 CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel ==========
The CQ bit was checked by dongseong.hwang@chromium.org to run a CQ dry run
Description was changed from ========== gpu, cmaa: optimize copy. If input texture format is not RGBA8, CMAA copies the input texture to RGBA8. Currently, CMAA copies texture using glCopyTexSubImage2D, but copy via glDrawArrays is much faster in IA ChromeOS. However, glCopyTexSubImage2D is faster in Android. It looks Mesa bug. I'll file this issue to Mesa bugzilla. Perf data > test site: http://webglsamples.org/aquarium/aquarium.html glDrawArrays glCopyTexSubImage2D 4k fish on Chromebook Pixel 2015 (Broadwell): 22 FPS 32.6 FPS 4k fish on Ubuntu and Haswell: 23 FPS 30.9 FPS 500 fish on Android OnePlus One: 25 FPS 22.5 FPS BUG=535198 CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel ========== to ========== gpu, cmaa: optimize copy. If input texture format is not RGBA8, CMAA copies the input texture to RGBA8. Currently, CMAA copies texture using glCopyTexSubImage2D, but copy via glDrawArrays is much faster in IA ChromeOS. However, glCopyTexSubImage2D is faster in Android. It looks Mesa bug. I'll file this issue to Mesa bugzilla. Perf data > test site: http://webglsamples.org/aquarium/aquarium.html glDrawArrays glCopyTexSubImage2D 4k fish on Chromebook Pixel 2015 (Broadwell): 22 FPS 32.6 FPS 4k fish on Ubuntu and Haswell: 23 FPS 30.9 FPS 500 fish on Android OnePlus One (Adreno 330): 25 FPS 22.5 FPS BUG=535198 CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel ==========
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
Description was changed from ========== gpu, cmaa: optimize copy. If input texture format is not RGBA8, CMAA copies the input texture to RGBA8. Currently, CMAA copies texture using glCopyTexSubImage2D, but copy via glDrawArrays is much faster in IA ChromeOS. However, glCopyTexSubImage2D is faster in Android. It looks Mesa bug. I'll file this issue to Mesa bugzilla. Perf data > test site: http://webglsamples.org/aquarium/aquarium.html glDrawArrays glCopyTexSubImage2D 4k fish on Chromebook Pixel 2015 (Broadwell): 22 FPS 32.6 FPS 4k fish on Ubuntu and Haswell: 23 FPS 30.9 FPS 500 fish on Android OnePlus One (Adreno 330): 25 FPS 22.5 FPS BUG=535198 CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel ========== to ========== gpu, cmaa: optimize copy. If input texture format is not RGBA8, CMAA copies the input texture to RGBA8. Currently, CMAA copies texture using glCopyTexSubImage2D, but copy via glDrawArrays is much faster in IA ChromeOS. However, glCopyTexSubImage2D is faster in Android. It looks Mesa bug, so I filed this issue to Mesa bugzilla; https://bugs.freedesktop.org/show_bug.cgi?id=98478 Perf data > test site: http://webglsamples.org/aquarium/aquarium.html glDrawArrays glCopyTexSubImage2D 4k fish on Chromebook Pixel 2015 (Broadwell): 22 FPS 32.6 FPS 4k fish on Ubuntu and Haswell: 23 FPS 30.9 FPS 500 fish on Android OnePlus One (Adreno 330): 25 FPS 22.5 FPS BUG=535198 CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel ==========
dongseong.hwang@intel.com changed reviewers: + adrian.belgun@intel.com, piman@chromium.org
piman@, could you review this strange issue? adrian@, it may be what you mentioned earlier. I think it resolves your concern. https://codereview.chromium.org/2460973002/diff/1/gpu/command_buffer/service/... File gpu/command_buffer/service/gles2_cmd_apply_framebuffer_attachment_cmaa_intel.cc (right): https://codereview.chromium.org/2460973002/diff/1/gpu/command_buffer/service/... gpu/command_buffer/service/gles2_cmd_apply_framebuffer_attachment_cmaa_intel.cc:556: const bool draw = true; Mesa may will fix it or future Intel Chromebook may have different behavior. So I remain dead code here. It makes us to test very quickly.
Description was changed from ========== gpu, cmaa: optimize copy. If input texture format is not RGBA8, CMAA copies the input texture to RGBA8. Currently, CMAA copies texture using glCopyTexSubImage2D, but copy via glDrawArrays is much faster in IA ChromeOS. However, glCopyTexSubImage2D is faster in Android. It looks Mesa bug, so I filed this issue to Mesa bugzilla; https://bugs.freedesktop.org/show_bug.cgi?id=98478 Perf data > test site: http://webglsamples.org/aquarium/aquarium.html glDrawArrays glCopyTexSubImage2D 4k fish on Chromebook Pixel 2015 (Broadwell): 22 FPS 32.6 FPS 4k fish on Ubuntu and Haswell: 23 FPS 30.9 FPS 500 fish on Android OnePlus One (Adreno 330): 25 FPS 22.5 FPS BUG=535198 CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel ========== to ========== gpu, cmaa: optimize copy. If input texture format is not RGBA8, CMAA copies the input texture to RGBA8. Currently, CMAA copies texture using glCopyTexSubImage2D, but copy via glDrawArrays is much faster in IA ChromeOS. However, glCopyTexSubImage2D is faster in Android. It looks Mesa bug, so I filed this issue to Mesa bugzilla; https://bugs.freedesktop.org/show_bug.cgi?id=98478 Perf data > test site: http://webglsamples.org/aquarium/aquarium.html glCopyTexSubImage2D glDrawArrays 4k fish on Chromebook Pixel 2015 (Broadwell): 22 FPS 32.6 FPS 4k fish on Ubuntu and Haswell: 23 FPS 30.9 FPS 500 fish on Android OnePlus One (Adreno 330): 25 FPS 22.5 FPS BUG=535198 CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel ==========
The CQ bit was unchecked by commit-bot@chromium.org
Dry run: Try jobs failed on following builders: linux_chromium_chromeos_rel_ng on master.tryserver.chromium.linux (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.linux/builders/linux_chromium_...)
https://codereview.chromium.org/2460973002/diff/1/gpu/command_buffer/service/... File gpu/command_buffer/service/gles2_cmd_apply_framebuffer_attachment_cmaa_intel.cc (right): https://codereview.chromium.org/2460973002/diff/1/gpu/command_buffer/service/... gpu/command_buffer/service/gles2_cmd_apply_framebuffer_attachment_cmaa_intel.cc:551: void ApplyFramebufferAttachmentCMAAINTELResourceManager::CopyTexture( We already have a facility to copy a texture using a draw, in CopyTextureCHROMIUMResourceManager - that is used for CopyTextureCHROMIUM Could we use that instead, to avoid duplicating functionality? We can pass the CopyTextureCHROMIUMResourceManager to the ApplyFramebufferAttachmentCMAAINTELResourceManager so that it can call into it.
Description was changed from ========== gpu, cmaa: optimize copy. If input texture format is not RGBA8, CMAA copies the input texture to RGBA8. Currently, CMAA copies texture using glCopyTexSubImage2D, but copy via glDrawArrays is much faster in IA ChromeOS. However, glCopyTexSubImage2D is faster in Android. It looks Mesa bug, so I filed this issue to Mesa bugzilla; https://bugs.freedesktop.org/show_bug.cgi?id=98478 Perf data > test site: http://webglsamples.org/aquarium/aquarium.html glCopyTexSubImage2D glDrawArrays 4k fish on Chromebook Pixel 2015 (Broadwell): 22 FPS 32.6 FPS 4k fish on Ubuntu and Haswell: 23 FPS 30.9 FPS 500 fish on Android OnePlus One (Adreno 330): 25 FPS 22.5 FPS BUG=535198 CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel ========== to ========== gpu, cmaa: reuse CopyTextureCHROMIUMResourceManager In addition, prevent from using glCopyTexSubImage2D in CopyTextureCHROMIUMResourceManager on Intel ChromeOS, because copy via glDrawArrays is much faster in IA ChromeOS. However, glCopyTexSubImage2D is faster in Android. It looks Mesa bug, so I filed this issue to Mesa bugzilla; https://bugs.freedesktop.org/show_bug.cgi?id=98478 Perf data > test site: http://webglsamples.org/aquarium/aquarium.html glCopyTexSubImage2D glDrawArrays 4k fish on Chromebook Pixel 2015 (Broadwell): 22 FPS 32.6 FPS 4k fish on Ubuntu and Haswell: 23 FPS 30.9 FPS 500 fish on Android OnePlus One (Adreno 330): 25 FPS 22.5 FPS BUG=535198 CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel ==========
piman@, could you review? After landing https://codereview.chromium.org/2465963002/, I rebase it. Interestingly, CopyTextureCHROMIUMResourceManager is fater than previous custom shader. for 4k aquarium on Pixel 2, this CL speed up 32.5 FPS -> 34.5 FPS I cannot understand where the speed up if from.
The CQ bit was checked by dongseong.hwang@chromium.org to run a CQ dry run
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
Patchset #2 (id:20001) has been deleted
The CQ bit was checked by dongseong.hwang@chromium.org to run a CQ dry run
Patchset #2 (id:20001) has been deleted
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
The CQ bit was unchecked by commit-bot@chromium.org
Dry run: Try jobs failed on following builders: linux_chromium_rel_ng on master.tryserver.chromium.linux (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.linux/builders/linux_chromium_...) mac_optional_gpu_tests_rel on master.tryserver.chromium.mac (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.mac/builders/mac_optional_gpu_...)
https://codereview.chromium.org/2460973002/diff/40001/gpu/command_buffer/serv... File gpu/command_buffer/service/gles2_cmd_copy_texture_chromium.cc (right): https://codereview.chromium.org/2460973002/diff/40001/gpu/command_buffer/serv... gpu/command_buffer/service/gles2_cmd_copy_texture_chromium.cc:334: NOTREACHED(); I think this needs to be expanded to more formats. See test failures. You can take a look at the logic we have in GLES2DecoderImpl::DoCopyTexImage2D to check the API behavior. Maybe here you can use TextureManager::ExtractFormatFromStorageFormat ?
The CQ bit was checked by dongseong.hwang@chromium.org to run a CQ dry run
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
Thank you for review. https://codereview.chromium.org/2460973002/diff/40001/gpu/command_buffer/serv... File gpu/command_buffer/service/gles2_cmd_copy_texture_chromium.cc (right): https://codereview.chromium.org/2460973002/diff/40001/gpu/command_buffer/serv... gpu/command_buffer/service/gles2_cmd_copy_texture_chromium.cc:334: NOTREACHED(); On 2016/11/01 19:04:59, piman wrote: > I think this needs to be expanded to more formats. See test failures. exactly, this DCHECK causes crash. Done. > You can take a look at the logic we have in GLES2DecoderImpl::DoCopyTexImage2D > to check the API behavior. It's used by only below SourceFormatContainSupersetOfDestFormat, so I add sufficient format to satisfy the below function. > Maybe here you can use TextureManager::ExtractFormatFromStorageFormat ? The function consider GL_COMPRESSED_RGBA_S3TC_DXT1_EXT as RGBA, which is impossible to use glCopyTexSubImage2D. I want to express (UnsizedFormatFrom(source_internal_format) == UnsizedFormatFrom(dest_internal_format) && (source_internal_format != GL_BGRA_EXT && source_internal_format != GL_BGRA8_EXT) || (source_internal_format == GL_RGBA && dest_internal_format) == GL_RGB) || (source_internal_format == GL_RGBA8 && dest_internal_format) == GL_RGB) || (source_internal_format == GL_RGBA && dest_internal_format) == GL_RGB8) || (source_internal_format == GL_RGBA8 && dest_internal_format) == GL_RGB8); However, it's too long so just make this helper function.
The CQ bit was checked by dongseong.hwang@chromium.org to run a CQ dry run
https://codereview.chromium.org/2460973002/diff/40001/gpu/command_buffer/serv... File gpu/command_buffer/service/gles2_cmd_copy_texture_chromium.cc (right): https://codereview.chromium.org/2460973002/diff/40001/gpu/command_buffer/serv... gpu/command_buffer/service/gles2_cmd_copy_texture_chromium.cc:334: NOTREACHED(); On 2016/11/01 19:30:05, dshwang wrote: > On 2016/11/01 19:04:59, piman wrote: > > I think this needs to be expanded to more formats. See test failures. > exactly, this DCHECK causes crash. Done. > > > You can take a look at the logic we have in GLES2DecoderImpl::DoCopyTexImage2D > > to check the API behavior. > > It's used by only below SourceFormatContainSupersetOfDestFormat, so I add > sufficient format to satisfy the below function. > > > Maybe here you can use TextureManager::ExtractFormatFromStorageFormat ? > > The function consider GL_COMPRESSED_RGBA_S3TC_DXT1_EXT as RGBA, which is > impossible to use glCopyTexSubImage2D. > > I want to express > (UnsizedFormatFrom(source_internal_format) == > UnsizedFormatFrom(dest_internal_format) && (source_internal_format != > GL_BGRA_EXT && source_internal_format != GL_BGRA8_EXT) || > (source_internal_format == GL_RGBA && dest_internal_format) == GL_RGB) || > (source_internal_format == GL_RGBA8 && dest_internal_format) == GL_RGB) || > (source_internal_format == GL_RGBA && dest_internal_format) == GL_RGB8) || > (source_internal_format == GL_RGBA8 && dest_internal_format) == GL_RGB8); > > However, it's too long so just make this helper function. I gave up this non-trivial change which cause lots of webgl conformance test failures on Mac. It's not needed in this CL. So remove it. I cannot understand why mac fail. I'll figure out and submit another CL about it.
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
lgtm
The CQ bit was unchecked by commit-bot@chromium.org
Dry run: This issue passed the CQ dry run.
The CQ bit was checked by dongseong.hwang@intel.com
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
Message was sent while issue was closed.
Description was changed from ========== gpu, cmaa: reuse CopyTextureCHROMIUMResourceManager In addition, prevent from using glCopyTexSubImage2D in CopyTextureCHROMIUMResourceManager on Intel ChromeOS, because copy via glDrawArrays is much faster in IA ChromeOS. However, glCopyTexSubImage2D is faster in Android. It looks Mesa bug, so I filed this issue to Mesa bugzilla; https://bugs.freedesktop.org/show_bug.cgi?id=98478 Perf data > test site: http://webglsamples.org/aquarium/aquarium.html glCopyTexSubImage2D glDrawArrays 4k fish on Chromebook Pixel 2015 (Broadwell): 22 FPS 32.6 FPS 4k fish on Ubuntu and Haswell: 23 FPS 30.9 FPS 500 fish on Android OnePlus One (Adreno 330): 25 FPS 22.5 FPS BUG=535198 CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel ========== to ========== gpu, cmaa: reuse CopyTextureCHROMIUMResourceManager In addition, prevent from using glCopyTexSubImage2D in CopyTextureCHROMIUMResourceManager on Intel ChromeOS, because copy via glDrawArrays is much faster in IA ChromeOS. However, glCopyTexSubImage2D is faster in Android. It looks Mesa bug, so I filed this issue to Mesa bugzilla; https://bugs.freedesktop.org/show_bug.cgi?id=98478 Perf data > test site: http://webglsamples.org/aquarium/aquarium.html glCopyTexSubImage2D glDrawArrays 4k fish on Chromebook Pixel 2015 (Broadwell): 22 FPS 32.6 FPS 4k fish on Ubuntu and Haswell: 23 FPS 30.9 FPS 500 fish on Android OnePlus One (Adreno 330): 25 FPS 22.5 FPS BUG=535198 CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel ==========
Message was sent while issue was closed.
Committed patchset #4 (id:80001)
Message was sent while issue was closed.
Description was changed from ========== gpu, cmaa: reuse CopyTextureCHROMIUMResourceManager In addition, prevent from using glCopyTexSubImage2D in CopyTextureCHROMIUMResourceManager on Intel ChromeOS, because copy via glDrawArrays is much faster in IA ChromeOS. However, glCopyTexSubImage2D is faster in Android. It looks Mesa bug, so I filed this issue to Mesa bugzilla; https://bugs.freedesktop.org/show_bug.cgi?id=98478 Perf data > test site: http://webglsamples.org/aquarium/aquarium.html glCopyTexSubImage2D glDrawArrays 4k fish on Chromebook Pixel 2015 (Broadwell): 22 FPS 32.6 FPS 4k fish on Ubuntu and Haswell: 23 FPS 30.9 FPS 500 fish on Android OnePlus One (Adreno 330): 25 FPS 22.5 FPS BUG=535198 CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel ========== to ========== gpu, cmaa: reuse CopyTextureCHROMIUMResourceManager In addition, prevent from using glCopyTexSubImage2D in CopyTextureCHROMIUMResourceManager on Intel ChromeOS, because copy via glDrawArrays is much faster in IA ChromeOS. However, glCopyTexSubImage2D is faster in Android. It looks Mesa bug, so I filed this issue to Mesa bugzilla; https://bugs.freedesktop.org/show_bug.cgi?id=98478 Perf data > test site: http://webglsamples.org/aquarium/aquarium.html glCopyTexSubImage2D glDrawArrays 4k fish on Chromebook Pixel 2015 (Broadwell): 22 FPS 32.6 FPS 4k fish on Ubuntu and Haswell: 23 FPS 30.9 FPS 500 fish on Android OnePlus One (Adreno 330): 25 FPS 22.5 FPS BUG=535198 CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel Committed: https://crrev.com/0c8b1229552985d8ed976b8d47e66ff983afceac Cr-Commit-Position: refs/heads/master@{#429240} ==========
Message was sent while issue was closed.
Patchset 4 (id:??) landed as https://crrev.com/0c8b1229552985d8ed976b8d47e66ff983afceac Cr-Commit-Position: refs/heads/master@{#429240} |