New issue
Advanced search Search tips

Issue 693704 link

Starred by 1 user

Issue metadata

Status: Fixed
Owner: ----
Closed: Jul 12
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Linux
Pri: 3
Type: Task


Participants' hotlists:
layoutng


Sign in to add a comment

Support shaping latin-1 text

Project Member Reported by e...@chromium.org, Feb 17 2017

Issue description

With LayoutNG NGInlineNode doesn't require up-conversion to utf-16 for BiDi resolution for latin1 content. However the shaper still does.

Harfbuzz has support for shaping latin-1 content. Adding a latin-1 path could not only reduce memory overhead but also increase performance somewhat for latin-1 content.

Whether this is worth doing is debatable.

 
Project Member

Comment 1 by sheriffbot@chromium.org, Feb 21 2018

Labels: Hotlist-Recharge-Cold
Status: Untriaged (was: Available)
This issue has been Available for over a year. If it's no longer important or seems unlikely to be fixed, please consider closing it out. If it is important, please re-triage the issue.

Sorry for the inconvenience if the bug really should have been left as Available. If you change it back, also remove the "Hotlist-Recharge-Cold" label.

For more details visit https://www.chromium.org/issue-tracking/autotriage - Your friendly Sheriffbot

Comment 2 by e...@chromium.org, Feb 22 2018

Status: Available (was: Untriaged)
Project Member

Comment 3 by bugdroid1@chromium.org, Jul 12

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/d8fd6f68373fbe065c9d51d64ab02eafef02701f

commit d8fd6f68373fbe065c9d51d64ab02eafef02701f
Author: Emil A Eklund <eae@chromium.org>
Date: Thu Jul 12 22:45:09 2018

Add support for shaping latin-1

Add support for shaping latin-1 without first up-converting to UTF-16 in
HarfBuzzShaper and to the LayoutNG text layout & line breaking pipeline.

This allow for moderate improvements in memory usage and performance for
latin-1 content, espeically for subsequent layouts as text up-convertion
is avoided therefore allowing script segmentation to be avoided as well.

Notably the layout/line-layout-repeat-append performance test gets twice
as fast with this change. Other layout perf tests improve very slightly.

Increases performance of the ShapingLineBreakerPerfTest::ShapeLatinText
micro benchmark by about 5x. From 200 runs/s to 1000 runs/s on a T430s.

Legacy layout retains the UTF-16 up-conversion logic and isn't affected.

Bug: 636993,  693704 
Test: perf_tests/layout/line-layout-repeat-append.html
Cq-Include-Trybots: luci.chromium.try:linux_layout_tests_layout_ng
Change-Id: I7fdb9ab228b61b22e9ef39cdfb8de6c360e83e3f
Reviewed-on: https://chromium-review.googlesource.com/1132270
Commit-Queue: Emil A Eklund <eae@chromium.org>
Reviewed-by: Koji Ishii <kojii@chromium.org>
Cr-Commit-Position: refs/heads/master@{#574759}
[modify] https://crrev.com/d8fd6f68373fbe065c9d51d64ab02eafef02701f/third_party/blink/renderer/core/layout/ng/inline/ng_inline_node.cc
[modify] https://crrev.com/d8fd6f68373fbe065c9d51d64ab02eafef02701f/third_party/blink/renderer/core/layout/ng/inline/ng_line_breaker.cc
[modify] https://crrev.com/d8fd6f68373fbe065c9d51d64ab02eafef02701f/third_party/blink/renderer/core/layout/ng/inline/ng_line_truncator.cc
[modify] https://crrev.com/d8fd6f68373fbe065c9d51d64ab02eafef02701f/third_party/blink/renderer/platform/fonts/shaping/caching_word_shape_iterator.cc
[modify] https://crrev.com/d8fd6f68373fbe065c9d51d64ab02eafef02701f/third_party/blink/renderer/platform/fonts/shaping/case_mapping_harf_buzz_buffer_filler.cc
[modify] https://crrev.com/d8fd6f68373fbe065c9d51d64ab02eafef02701f/third_party/blink/renderer/platform/fonts/shaping/case_mapping_harf_buzz_buffer_filler.h
[modify] https://crrev.com/d8fd6f68373fbe065c9d51d64ab02eafef02701f/third_party/blink/renderer/platform/fonts/shaping/harf_buzz_shaper.cc
[modify] https://crrev.com/d8fd6f68373fbe065c9d51d64ab02eafef02701f/third_party/blink/renderer/platform/fonts/shaping/harf_buzz_shaper.h
[modify] https://crrev.com/d8fd6f68373fbe065c9d51d64ab02eafef02701f/third_party/blink/renderer/platform/fonts/shaping/harf_buzz_shaper_fuzzer.cc
[modify] https://crrev.com/d8fd6f68373fbe065c9d51d64ab02eafef02701f/third_party/blink/renderer/platform/fonts/shaping/harf_buzz_shaper_test.cc
[modify] https://crrev.com/d8fd6f68373fbe065c9d51d64ab02eafef02701f/third_party/blink/renderer/platform/fonts/shaping/shaping_line_breaker_test.cc
[modify] https://crrev.com/d8fd6f68373fbe065c9d51d64ab02eafef02701f/third_party/blink/renderer/platform/testing/shaping_line_breaker_perf_test.cc
[modify] https://crrev.com/d8fd6f68373fbe065c9d51d64ab02eafef02701f/third_party/blink/renderer/platform/text/text_run.cc
[modify] https://crrev.com/d8fd6f68373fbe065c9d51d64ab02eafef02701f/third_party/blink/renderer/platform/text/text_run.h

Status: Fixed (was: Available)

Sign in to add a comment