summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2018-10-11Merge "Suppress implicit-fallthrough warnings."android-o-mr1-iot-release-smart-display-r3oreo-mr1-1.2-iot-releaseChih-hung Hsieh
2018-10-11Fix use-after-free in minikinSeigo Nonaka
getString().c_str() must not be kept outside the scope. At the same time, the Locale::getString() returns BCP47 complient language tag, so good to use uloc_forLanguageTag instead of uloc_getName. Bug: 117423709 Test: minikin_tests Change-Id: I1fd1994b1be5e797d357f92dea10f9de1545ae78 (cherry picked from commit 1ddb0c5a672073bc79249262d70c4ee85630c622)
2018-10-11Suppress implicit-fallthrough warnings.Chih-Hung Hsieh
Bug: 112564944 Test: make checkbuild Merged-In: Idf138c8054f57e8a291d7600d409ffff11514cf8 Change-Id: Ia2800a050d85fcbd6a24452e0768a4b196f24e45
2018-10-05Remove ICU C++ usage in Minikin.qqd
Remove ICU C++ usage in Minikin, mainly WordBreaker related. Bug: 113353383 Test: minikin_tests Merged-In: I8f407f3d7896584a351e6bdde1ad27534626fca3 Change-Id: I8f407f3d7896584a351e6bdde1ad27534626fca3 (cherry picked from commit d04e22c777c78d449a51e417b602673faf9e8206)
2018-08-31Disable failing test cases with ICU62android-o-mr1-iot-release-1.0.5android-o-mr1-iot-release-1.0.4Seigo Nonaka
Bug: 113615133 Bug: 111298800 Test: minikin_tests Merged-In: I75a56c2c61811b2aad3e2abaa3e2d717cb8546b2 Change-Id: I75a56c2c61811b2aad3e2abaa3e2d717cb8546b2 (cherry picked from commit f15b79aadb03730dae753321d52ccf0baf7ef664)
2018-08-06Merge Android Pie into masterandroid-o-mr1-iot-release-1.0.3Xin Li
Bug: 112104996 Change-Id: I8ad4533a6617558c978074d59f4f2731be9d3dc3
2018-06-08Merge pi-dev-plus-aosp-without-vendor into stage-aosp-mastertemp_p_mergeXin Li
Bug: 79597307 Change-Id: I029a92203ffba47092289e9a39d7a7925880d4fc
2018-05-15[automerger skipped] Fix fvar table size validation logic - DO NOT MERGE am: ↵Seigo Nonaka
3085d8c96a -s ours am: 7fa5424356 -s ours am: 18b7993857 -s ours am: dc791168bf -s ours Change-Id: Ic5df9ac92e6aff263df39555e80d98f325bd2130
2018-05-15[automerger skipped] Fix fvar table size validation logic - DO NOT MERGE am: ↵android-9.0.0_r47android-9.0.0_r46android-9.0.0_r45android-9.0.0_r44android-9.0.0_r43android-9.0.0_r42android-9.0.0_r41android-9.0.0_r40android-9.0.0_r39android-9.0.0_r38android-9.0.0_r37android-9.0.0_r36android-9.0.0_r35android-9.0.0_r34android-9.0.0_r33android-9.0.0_r32android-9.0.0_r31android-9.0.0_r30android-9.0.0_r22android-9.0.0_r21android-9.0.0_r20android-9.0.0_r19android-9.0.0_r16android-9.0.0_r12android-9.0.0_r11pie-qpr3-s1-releasepie-qpr3-releasepie-qpr3-b-releasepie-qpr2-releasepie-qpr1-s3-releasepie-qpr1-s2-releasepie-qpr1-s1-releasepie-qpr1-releasepie-dr1-releasepie-dr1-devpie-devpie-b4s4-releasepie-b4s4-devSeigo Nonaka
3085d8c96a -s ours am: 7fa5424356 -s ours am: 18b7993857 -s ours Change-Id: I1c34fde5cff7a373e37a42a506d4428996ba03d2
2018-05-15[automerger skipped] Fix fvar table size validation logic - DO NOT MERGE am: ↵Seigo Nonaka
3085d8c96a -s ours am: 7fa5424356 -s ours Change-Id: Ib2af886d35b7a529e6a346d7bf68d7e37f1c2bc2
2018-05-15[automerger skipped] Fix fvar table size validation logic - DO NOT MERGESeigo Nonaka
am: 3085d8c96a -s ours Change-Id: I61669eb11478539b52ca3a3e87cbb42fab2a0cb1
2018-05-14[automerger skipped] Fix fvar table size validation logic - DO NOT MERGE am: ↵Seigo Nonaka
1a408ab0ef -s ours am: 1a29efc1ab -s ours Change-Id: I4676884a8c1f3bbace2fc931e87d612580ce3ef9
2018-05-14[automerger skipped] Fix fvar table size validation logic - DO NOT MERGESeigo Nonaka
am: 1a408ab0ef -s ours Change-Id: I71406c299dd82409fabec994bf46026135c3ffaa
2018-05-14Fix fvar table size validation logic - DO NOT MERGESeigo Nonaka
The table size calculation was wrong. "axisOffset + axisOffset * axisCount" should be "axisOffset + axisSize * axisCount". Bug: 77822336 Test: minikin_tests Change-Id: I0cc88299f44bdad484497d9a55376764446fed12 Merged-In: I0cc88299f44bdad484497d9a55376764446fed12
2018-05-11Fix fvar table size validation logicSeigo Nonaka
am: ed37c4dd5c Change-Id: I2facdfb3dccf0684bcda02cb89507a1d4159f5b6
2018-05-11Fix fvar table size validation logic - DO NOT MERGESeigo Nonaka
The table size calculation was wrong. "axisOffset + axisOffset * axisCount" should be "axisOffset + axisSize * axisCount". Bug: 77822336 Test: minikin_tests Change-Id: I0cc88299f44bdad484497d9a55376764446fed12 Merged-In: I0cc88299f44bdad484497d9a55376764446fed12
2018-05-10Fix fvar table size validation logicSeigo Nonaka
The table size calculation was wrong. "axisOffset + axisOffset * axisCount" should be "axisOffset + axisSize * axisCount". Bug: 77822336 Test: minikin_tests Change-Id: I0cc88299f44bdad484497d9a55376764446fed12 (cherry picked from commit 3ffe5b5321c28eef3bf15435d27439bd6282fecd)
2018-04-23Update Emoji.cpp for emoji 11Siyamed Sinir
am: beeb49c475 Change-Id: I2b5f2ee10afbfce6775886198f3d06f8abb1c25d
2018-04-19Update Emoji.cpp for emoji 11Siyamed Sinir
This CL removes the Emoji 5.0 info from Emoji.java since they are supported by ICU. It adds emoji added in Emoji 11. Test: Verified that ICU handles Emoji 5.0 emoji Test: Verified hardware keyboard backspace with hair color emoji Test: Visually verified cursor moves with hardware keyboard Bug: 77148691 Change-Id: I2cae8f8f5fc6014f715b591ac14e2928da661cde (cherry picked from commit 31790982cccdcdee1d73a743a2b3d3383f33a01c)
2018-04-10Include MinikinPaint into cache keySeigo Nonaka
am: 3da4269e60 Change-Id: I81bdbda41280e0f06518ec4748326c4877816286
2018-04-04Include MinikinPaint into cache keySeigo Nonaka
MeasruedText::buildLayout can not be used for acquiring bounding box since the input range can across the style boundary. To make things correctly, include MinikinPaint as the key of the LayoutPiece. This is totally same as the LayoutCacheKey in LayoutCache, so reuses LayoutCacheKey instead of self defined key class in LayoutPiece. This increases the memory usage and ideally run index can be used for layout cache key instead of full MinikinPaint, but let me make thing correct first. Here is a raw performance result. android.text.PrecomputedTextMemoryUsageTest: MemoryUsage Hyphenation : 50,873 -> 59,721: (+17.4%) Hyphenation WidthOnly : 8,856 -> 8,856: (+0.0%) NoHyphenation : 26,386 -> 29,242: (+10.8%) NoHyphenation WidthOnly : 8,000 -> 8,000: (+0.0%) android.text.PrecomputedTextPerfTest: create NoStyle Hyphenation : 18,378,988 -> 18,332,327: (-0.3%) NoStyle Hyphenation WidthOnly : 18,332,392 -> 18,397,337: (+0.4%) NoStyle NoHyphenation : 7,385,258 -> 7,390,699: (+0.1%) NoStyle NoHyphenation WidthOnly : 7,403,445 -> 7,388,476: (-0.2%) Style Hyphenation : 12,637,464 -> 12,624,799: (-0.1%) Style Hyphenation WidthOnly : 12,667,559 -> 12,642,056: (-0.2%) Style NoHyphenation : 12,348,519 -> 12,241,291: (-0.9%) Style NoHyphenation WidthOnly : 12,325,515 -> 12,317,746: (-0.1%) android.text.StaticLayoutPerfTest: create PrecomputedText Balanced Hyphenation : 691,388 -> 680,137: (-1.6%) Balanced NoHyphenation : 502,038 -> 495,980: (-1.2%) Greedy Hyphenation : 451,619 -> 446,380: (-1.2%) Greedy NoHyphenation : 449,011 -> 444,621: (-1.0%) RandomText Balanced Hyphenation : 17,639,029 -> 17,609,190: (-0.2%) Balanced NoHyphenation : 7,295,497 -> 7,251,221: (-0.6%) Greedy Hyphenation : 7,268,452 -> 7,201,506: (-0.9%) Greedy NoHyphenation : 7,215,397 -> 7,225,217: (+0.1%) draw PrecomputedText NoStyle : 588,349 -> 620,041: (+5.4%) NoStyle WithoutCache : 613,312 -> 645,161: (+5.2%) Style : 911,309 -> 938,200: (+3.0%) Style WithoutCache : 920,240 -> 955,410: (+3.8%) RandomText NoStyle : 542,517 -> 555,951: (+2.5%) NoStyle WithoutCache : 6,747,436 -> 6,723,770: (-0.4%) Style : 1,022,591 -> 1,034,170: (+1.1%) Style WithoutCache : 2,862,071 -> 2,835,226: (-0.9%) android.widget.TextViewPrecomputedTextPerfTest: newLayout PrecomputedText : 791,018 -> 785,320: (-0.7%) PrecomputedText Selectable : 1,569,428 -> 1,190,267: (-24.2%) RandomText : 17,146,396 -> 17,064,908: (-0.5%) RandomText Selectable : 18,239,348 -> 18,225,575: (-0.1%) onDraw PrecomputedText : 1,263,842 -> 1,286,294: (+1.8%) PrecomputedText Selectable : 1,380,186 -> 1,303,995: (-5.5%) RandomText : 17,734,725 -> 17,823,735: (+0.5%) RandomText Selectable : 18,549,828 -> 18,610,101: (+0.3%) onMeasure PrecomputedText : 799,962 -> 809,164: (+1.2%) PrecomputedText Selectable : 1,747,993 -> 1,358,504: (-22.3%) RandomText : 17,155,624 -> 17,087,524: (-0.4%) RandomText Selectable : 18,435,408 -> 18,515,944: (+0.4%) setText PrecomputedText : 136,250 -> 133,602: (-1.9%) PrecomputedText Selectable : 213,980 -> 205,610: (-3.9%) RandomText : 16,512 -> 16,599: (+0.5%) RandomText Selectable : 56,143 -> 56,239: (+0.2%) Bug: 77495049 Test: atest CtsWidgetTestCases:EditTextTest CtsWidgetTestCases:TextViewFadingEdgeTest FrameworksCoreTests:TextViewFallbackLineSpacingTest FrameworksCoreTests:TextViewTest FrameworksCoreTests:TypefaceTest CtsGraphicsTestCases:TypefaceTest CtsWidgetTestCases:TextViewTest CtsTextTestCases FrameworksCoreTests:android.text CtsWidgetTestCases:TextViewPrecomputedTextTest Change-Id: I20d7cdd2f11960e334a1f2cd816679bb8f84e6cb
2018-03-24Discard hyphenation contextSeigo Nonaka
am: 2adb04f8ed Change-Id: I56f94ad3acf87c61b4cd76c0fe62f702582a064d
2018-03-23Discard hyphenation contextSeigo Nonaka
During line breaking, the hyphenated pieces are computed with context. On the other hand, during drawing, the context is not available. This ends up with cache miss during drawing. To increase the cache hit and making line break correct, remove context during line breaking. Bug: 65024629 Test: atest CtsWidgetTestCases:EditTextTest CtsWidgetTestCases:TextViewFadingEdgeTest FrameworksCoreTests:TextViewFallbackLineSpacingTest FrameworksCoreTests:TextViewTest FrameworksCoreTests:TypefaceTest CtsGraphicsTestCases:TypefaceTest CtsWidgetTestCases:TextViewTest CtsTextTestCases FrameworksCoreTests:android.text CtsWidgetTestCases:TextViewPrecomputedTextTest Test: minikin_test Change-Id: I27efa55825aa5060d742020661f831c69697aaf5
2018-03-23Revive support of duplicated entry in cmap format 4Seigo Nonaka
am: 048b45f69c Change-Id: I80cf85774257e0e447043c2a341cddf88744bc42
2018-03-21Revive support of duplicated entry in cmap format 4Seigo Nonaka
Minikin rejects unordered (including duplicated) cmap entries for security reasons. (Issue 32178311). The duplicated entries are invalid for cmap format 12 or cmap format 14 but valid for cmap format 4. Bug: 76103006 Test: manual Test: minikin_test Test: atest CtsWidgetTestCases:EditTextTest CtsWidgetTestCases:TextViewFadingEdgeTest FrameworksCoreTests:TextViewFallbackLineSpacingTest FrameworksCoreTests:TextViewTest FrameworksCoreTests:TypefaceTest CtsGraphicsTestCases:TypefaceTest CtsWidgetTestCases:TextViewTest CtsTextTestCases FrameworksCoreTests:android.text CtsWidgetTestCases:TextViewPrecomputedTextTest Change-Id: I902a11a93d01ccb609662e86e5ae2f3897940fb4
2018-03-15Precompute full hyphenation layoutSeigo Nonaka
am: 43a52c5ee6 Change-Id: Ieca1c79bbe374f7a9be215420864c0d96d158637
2018-03-14Precompute full hyphenation layoutSeigo Nonaka
The previous offset based computation doesn't work well for some cases, e.g. the final text for drawing may be a substring of the original string. The offset based matching doesn't work well for such case. This CL changes - Store the layout results during measuring hyphenation pieces. - Change the LayoutPiece key from offset to string. - This CL increases the heap usage about 23kb for 500 characters text. This changes the performance behaviors. android.text.PrecomputedTextMemoryUsageTest: MemoryUsage_Hyphenation : 28,448 -> 51,836: (+82.2%) MemoryUsage_Hyphenation_WidthOnly : 8,856 -> 8,856: (+0.0%) MemoryUsage_NoHyphenation : 27,592 -> 26,386: (-4.4%) MemoryUsage_NoHyphenation_WidthOnly : 8,000 -> 8,000: (+0.0%) android.text.PrecomputedTextPerfTest: create_NoStyled_Hyphenation : 17,162,475 -> 17,695,377: (+3.1%) create_NoStyled_Hyphenation_WidthOnly : 17,044,784 -> 17,677,423: (+3.7%) create_NoStyled_NoHyphenation : 7,108,911 -> 7,021,486: (-1.2%) create_NoStyled_NoHyphenation_WidthOnly : 7,102,481 -> 7,045,453: (-0.8%) create_Styled_Hyphenation : 12,394,607 -> 12,090,933: (-2.5%) create_Styled_Hyphenation_WidthOnly : 12,297,095 -> 12,105,491: (-1.6%) create_Styled_NoHyphenation : 11,886,364 -> 11,835,249: (-0.4%) create_Styled_NoHyphenation_WidthOnly : 12,018,548 -> 11,871,765: (-1.2%) android.text.StaticLayoutMultithreadPerfTest: create_RandomText_Thread_1 : 7,051,921 -> 6,998,143: (-0.8%) create_RandomText_Thread_2 : 7,112,819 -> 7,032,146: (-1.1%) create_RandomText_Thread_4 : 7,843,295 -> 7,860,874: (+0.2%) android.text.StaticLayoutPerfTest: create_PrecomputedText_Balanced_Hyphenation : 703,563 -> 709,839: (+0.9%) create_PrecomputedText_Balanced_NoHyphenation: 523,437 -> 527,671: (+0.8%) create_PrecomputedText_Greedy_Hyphenation : 470,881 -> 477,259: (+1.4%) create_PrecomputedText_Greedy_NoHyphenation : 471,487 -> 479,772: (+1.8%) create_RandomText_Balanced_Hyphenation : 17,166,857 -> 17,123,681: (-0.3%) create_RandomText_Balanced_NoHyphenation : 7,107,289 -> 7,040,572: (-0.9%) create_RandomText_Greedy_Hyphenation : 7,055,902 -> 7,000,681: (-0.8%) create_RandomText_Greedy_NoHyphenation : 7,032,325 -> 6,997,115: (-0.5%) draw_PrecomputedText_NoStyled : 527,505 -> 543,623: (+3.1%) draw_PrecomputedText_NoStyled_WithoutCache : 526,084 -> 564,742: (+7.3%) draw_PrecomputedText_Styled : 880,951 -> 838,581: (-4.8%) draw_PrecomputedText_Styled_WithoutCache : 874,259 -> 826,775: (-5.4%) draw_RandomText_NoStyled : 549,637 -> 538,162: (-2.1%) draw_RandomText_NoStyled_WithoutCache : 6,449,481 -> 6,401,486: (-0.7%) draw_RandomText_Styled : 1,001,350 -> 1,024,683: (+2.3%) draw_RandomText_Styled_WithoutCache : 2,759,161 -> 2,733,204: (-0.9%) android.widget.TextViewPrecomputedTextPerfTest: newLayout_PrecomputedText : 738,105 -> 736,130: (-0.3%) newLayout_PrecomputedText_Selectable : 17,410,426 -> 17,379,765: (-0.2%) newLayout_RandomText : 16,565,334 -> 16,495,200: (-0.4%) newLayout_RandomText_Selectable : 17,607,671 -> 17,482,439: (-0.7%) onDraw_PrecomputedText : 2,371,858 -> 1,274,921: (-46.2%) onDraw_PrecomputedText_Selectable : 17,493,221 -> 17,367,238: (-0.7%) onDraw_RandomText : 17,349,102 -> 17,224,949: (-0.7%) onDraw_RandomText_Selectable : 18,107,851 -> 18,067,397: (-0.2%) onMeasure_PrecomputedText : 756,229 -> 752,875: (-0.4%) onMeasure_PrecomputedText_Selectable : 17,725,005 -> 17,647,842: (-0.4%) onMeasure_RandomText : 16,636,892 -> 16,435,649: (-1.2%) onMeasure_RandomText_Selectable : 17,866,544 -> 17,724,819: (-0.8%) setText_PrecomputedText : 90,499 -> 92,894: (+2.6%) setText_PrecomputedText_Selectable : 146,906 -> 145,134: (-1.2%) setText_RandomText : 11,251 -> 11,130: (-1.1%) setText_RandomText_Selectable : 48,745 -> 48,900: (+0.3%) Bug: 72998298 Test: atest CtsWidgetTestCases:EditTextTest CtsWidgetTestCases:TextViewFadingEdgeTest FrameworksCoreTests:TextViewFallbackLineSpacingTest FrameworksCoreTests:TextViewTest FrameworksCoreTests:TypefaceTest CtsGraphicsTestCases:TypefaceTest CtsWidgetTestCases:TextViewTest CtsTextTestCases FrameworksCoreTests:android.text CtsWidgetTestCases:TextViewPrecomputedTextTest Test: minikin_tests Change-Id: I2290d7e06d9e2f4bc13f60246ce66ba1c1785cdd
2018-03-09Fix infinity loop due to negative widthSeigo Nonaka
am: 0385197086 Change-Id: I912f123239be95d7a4b773d024c247066257c78d
2018-03-08Fix infinity loop due to negative widthSeigo Nonaka
Due to combination of large indents and small width, the resulting width constraints may be negative. The previous implementation handles negative width but new implementation doesn't. It is good to put this non-negative regulation to getAt() interface rather than supporting negative width case in line breaker since negative width doesn't make sense. Bug: 74053423 Test: minikin_tests Test: atest CtsTextTestCases:StaticLayoutTest#testNegativeWidth Change-Id: Ie608dcdd560b3f81b48538a5706ff48344e027aa
2018-03-01Move LayoutCache to its own header with adding testsSeigo Nonaka
Move LayoutCache from Layout.cpp to LayoutCache.h This CL also changes: - LayoutCaceh::getOrCreate now accept callback function. - Add word spacing as a part of key. No performance regression is expected with this change. Raw performance scores: StaticLayout creation time: PrecomputedText Balanced Hyphenation : 681,861 -> 685,024: (+0.5%) PrecomputedText Balanced NoHyphenation: 503,699 -> 500,879: (-0.6%) PrecomputedText Greedy Hyphenation : 459,064 -> 457,000: (-0.4%) PrecomputedText Greedy NoHyphenation : 459,193 -> 456,099: (-0.7%) RandomText Balanced Hyphenation : 18,284,001 -> 18,294,896: (+0.1%) RandomText Balanced NoHyphenation : 7,515,897 -> 7,530,276: (+0.2%) RandomText Greedy Hyphenation : 7,486,415 -> 7,472,435: (-0.2%) RandomText Greedy NoHyphenation : 7,497,583 -> 7,476,589: (-0.3%) PrecomputedText creation time: NoStyled Hyphenation : 18,221,754 -> 18,185,433: (-0.2%) NoStyled Hyphenation WidthOnly : 18,229,685 -> 18,102,670: (-0.7%) NoStyled NoHyphenation : 7,527,504 -> 7,531,675: (+0.1%) NoStyled NoHyphenation WidthOnly : 7,547,070 -> 7,529,147: (-0.2%) Styled Hyphenation : 15,365,879 -> 15,407,789: (+0.3%) Styled Hyphenation WidthOnly : 15,329,510 -> 15,312,819: (-0.1%) Styled NoHyphenation : 14,939,280 -> 14,963,773: (+0.2%) Styled NoHyphenation WidthOnly : 15,003,010 -> 14,925,781: (-0.5%) StaticLayout draw time: PrecomputedText NoStyled : 527,376 -> 529,954: (+0.5%) PrecomputedText NoStyled WithoutCache : 519,093 -> 517,111: (-0.4%) PrecomputedText Styled : 811,913 -> 828,388: (+2.0%) PrecomputedText Styled WithoutCache : 839,357 -> 826,632: (-1.5%) RandomText NoStyled : 528,866 -> 527,918: (-0.2%) RandomText NoStyled WithoutCache : 6,958,169 -> 6,889,818: (-1.0%) RandomText Styled : 2,944,430 -> 2,938,203: (-0.2%) RandomText Styled WithoutCache : 3,389,387 -> 3,400,456: (+0.3%) Threaded StaticLayout creation time: RandomText Thread 1 : 7,491,159 -> 7,480,846: (-0.1%) RandomText Thread 2 : 7,598,486 -> 7,566,540: (-0.4%) RandomText Thread 4 : 8,347,088 -> 8,428,085: (+1.0%) Bug: 65024629 Test: minikin_tests Test: atest CtsWidgetTestCases:EditTextTest CtsWidgetTestCases:TextViewFadingEdgeTest FrameworksCoreTests:TextViewFallbackLineSpacingTest FrameworksCoreTests:TextViewTest FrameworksCoreTests:TypefaceTest CtsGraphicsTestCases:TypefaceTest CtsWidgetTestCases:TextViewTest CtsTextTestCases FrameworksCoreTests:android.text Change-Id: Ib7c66e0ee7efb57fc94f16df11eb12b051be8de4
2018-03-01Refactoring: Remove LayoutContextSeigo Nonaka
LayoutContext is no longer necessary. Pass MinikinPaint reference instead. No performance regression is expected. This CL changes the returned type of the findOrPushBackFace from int to uint8_t. 8 bits are enough for keeping the fonts since font collection can hold up to 255 font families. StaticLayout creation time: PrecomputedText NoStyled Balanced Hyphenation : 686,921 -> 690,947: (+0.6%) PrecomputedText NoStyled Balanced NoHyphenation: 520,043 -> 519,032: (-0.2%) PrecomputedText NoStyled Greedy Hyphenation : 464,292 -> 460,530: (-0.8%) PrecomputedText NoStyled Greedy NoHyphenation : 465,015 -> 465,243: (+0.0%) Styled Hyphenation : 15,398,146 -> 15,416,375: (+0.1%) Styled Hyphenation WidthOnly : 15,406,933 -> 15,394,211: (-0.1%) Styled NoHyphenation : 14,941,810 -> 15,006,610: (+0.4%) Styled NoHyphenation WidthOnly : 14,971,729 -> 14,934,425: (-0.2%) PrecomputedText creation time: Hyphenation : 18,037,023 -> 17,970,727: (-0.4%) Hyphenation WidthOnly : 18,033,921 -> 17,849,604: (-1.0%) NoHyphenation : 7,479,819 -> 7,386,944: (-1.2%) NoHyphenation WidthOnly : 7,485,902 -> 7,442,596: (-0.6%) RandomText Balanced Hyphenation : 18,130,594 -> 18,073,113: (-0.3%) RandomText Balanced NoHyphenation : 7,480,741 -> 7,444,878: (-0.5%) RandomText Greedy Hyphenation : 7,390,886 -> 7,429,952: (+0.5%) RandomText Greedy NoHyphenation : 7,423,729 -> 7,393,021: (-0.4%) StaticLayout draw time: PrecomputedText NoStyled : 541,811 -> 545,123: (+0.6%) PrecomputedText NoStyled WithoutCache : 534,859 -> 525,401: (-1.8%) PrecomputedText Styled : 811,161 -> 810,757: (-0.0%) PrecomputedText Styled WithoutCache : 837,386 -> 837,663: (+0.0%) RandomText NoStyled : 543,035 -> 548,710: (+1.0%) RandomText NoStyled WithoutCache : 6,817,703 -> 6,810,884: (-0.1%) RandomText Styled : 2,926,399 -> 2,898,167: (-1.0%) RandomText Styled WithoutCache : 3,358,838 -> 3,345,799: (-0.4%) Threaded StaticLayout creation time: RandomText Thread 1 : 7,416,925 -> 7,392,303: (-0.3%) RandomText Thread 2 : 7,540,979 -> 7,476,064: (-0.9%) RandomText Thread 4 : 8,356,506 -> 8,476,209: (+1.4%) Bug: 65024629 Test: minikin_test Change-Id: I7ac59abe10bea77b6dcba2f351c5d8b508acd2c3
2018-03-01Merge "Move BidiText to its own header with tests"TreeHugger Robot
2018-02-28Move BidiText to its own header with testsSeigo Nonaka
Also revised the doLayoutRunCached arguments to use string pieces. StaticLayout creation time: RandomText Balanced Hyphenation : 18,073,107 -> 18,016,001: (-0.3%) RandomText Balanced NoHyphenation : 7,450,524 -> 7,443,239: (-0.1%) RandomText Greedy Hyphenation : 7,400,186 -> 7,395,553: (-0.1%) RandomText Greedy NoHyphenation : 7,399,679 -> 7,388,850: (-0.1%) PrecomputedText Balanced Hyphenation : 689,868 -> 694,994: (+0.7%) PrecomputedText Balanced NoHyphenation: 516,777 -> 521,159: (+0.8%) PrecomputedText Greedy Hyphenation : 466,565 -> 467,685: (+0.2%) PrecomputedText Greedy NoHyphenation : 466,130 -> 469,467: (+0.7%) PrecomputedText creation time: NoStyled Hyphenation : 18,068,965 -> 17,992,733: (-0.4%) NoStyled Hyphenation WidthOnly : 18,028,284 -> 18,055,468: (+0.2%) NoStyled NoHyphenation : 7,454,650 -> 7,487,982: (+0.4%) NoStyled NoHyphenation WidthOnly : 7,445,369 -> 7,454,787: (+0.1%) Styled Hyphenation : 15,385,852 -> 15,357,579: (-0.2%) Styled Hyphenation WidthOnly : 15,390,795 -> 15,381,445: (-0.1%) Styled NoHyphenation : 14,975,306 -> 14,939,929: (-0.2%) Styled NoHyphenation WidthOnly : 14,983,997 -> 14,979,650: (-0.0%) StaticLayout draw time: PrecomputedText NoStyled : 536,392 -> 541,213: (+0.9%) PrecomputedText NoStyled WithoutCache : 528,682 -> 524,672: (-0.8%) PrecomputedText Styled : 806,088 -> 820,548: (+1.8%) PrecomputedText Styled WithoutCache : 856,605 -> 844,277: (-1.4%) RandomText NoStyled : 535,535 -> 547,398: (+2.2%) RandomText NoStyled WithoutCache : 6,819,228 -> 6,807,230: (-0.2%) RandomText Styled : 2,929,458 -> 2,930,573: (+0.0%) RandomText Styled WithoutCache : 3,360,559 -> 3,384,135: (+0.7%) Bug: 65024629 Test: minikin_tests Test: atest CtsWidgetTestCases:EditTextTest CtsWidgetTestCases:TextViewFadingEdgeTest FrameworksCoreTests:TextViewFallbackLineSpacingTest FrameworksCoreTests:TextViewTest FrameworksCoreTests:TypefaceTest CtsGraphicsTestCases:TypefaceTest CtsWidgetTestCases:TextViewTest CtsTextTestCases FrameworksCoreTests:android.text Change-Id: I5080db4c42be496771a4042464b48395bd1567eb
2018-02-23Stop including CR, LF characters in the previous runSeigo Nonaka
Bug: 73625594 Test: bit FrameworksCoreTests:android.text. Test: atest CtsWidgetTestCases:EditTextTest CtsWidgetTestCases:TextViewFadingEdgeTest FrameworksCoreTests:TextViewFallbackLineSpacingTest FrameworksCoreTests:TextViewTest FrameworksCoreTests:TypefaceTest CtsGraphicsTestCases:TypefaceTest CtsWidgetTestCases:TextViewTest CtsTextTestCases Change-Id: I809296e7edd9fe54d5defd83c7ddc5bb40a1d0e4
2018-02-22Fix test failure due to data directory detection logic changeSeigo Nonaka
The font data path resolving logic was changed in I01c8b885ce196f2f628d347c187691805a4d9c71. But the failing test was introduced just before this change. Need to update the test code for resolving the font path. Bug: 73786894 Test: minikin_tests Change-Id: I4010a221fb2a22062095c4c3ffeb646a0d0f5d51
2018-02-21Merge "Remove kTestFontDir and remove /system/fonts dependency from unit tests"TreeHugger Robot
2018-02-21Merge "Fix emoji presentation priority"TreeHugger Robot
2018-02-20Remove kTestFontDir and remove /system/fonts dependency from unit testsSeigo Nonaka
Bug: N/A Test: minikin_tests Test: minikin_stress_tests Change-Id: I01c8b885ce196f2f628d347c187691805a4d9c71
2018-02-20Fix emoji presentation prioritySeigo Nonaka
Some non emoji font supports emoji font. To avoid selecting such font in case emoji presentation style is provided, give higher score for the presentation match. StaticLayout creation time: RandomText Balanced Hyphenation : 18,490,608 -> 18,507,043: (+0.1%) RandomText Balanced NoHyphenation: 7,597,070 -> 7,619,731: (+0.3%) RandomText Greedy Hyphenation : 7,540,346 -> 7,566,300: (+0.3%) RandomText Greedy NoHyphenation : 7,548,161 -> 7,571,481: (+0.3%) PrecomputedText creation time: NoStyled Hyphenation : 18,289,621 -> 18,331,562: (+0.2%) NoStyled Hyphenation WidthOnly : 17,834,643 -> 17,852,181: (+0.1%) NoStyled NoHyphenation : 7,559,071 -> 7,579,943: (+0.3%) NoStyled NoHyphenation WidthOnly : 7,117,840 -> 7,142,599: (+0.3%) Styled Hyphenation : 15,257,108 -> 15,391,763: (+0.9%) Styled Hyphenation WidthOnly : 14,243,001 -> 14,425,028: (+1.3%) Styled NoHyphenation : 14,812,011 -> 14,920,500: (+0.7%) Styled NoHyphenation WidthOnly : 13,862,758 -> 13,959,173: (+0.7%) StaticLayout draw time: RandomText NoStyled WithoutCache : 6,952,595 -> 6,974,445: (+0.3%) RandomText Styled WithoutCache : 3,457,777 -> 3,442,473: (-0.4%) Bug: 69321418 Bug: 31608997 Test: minikin_test Change-Id: I167705b2e0d8c7d14df2a5e3a99b89dfea057713
2018-02-16Enable thread safety annotationSeigo Nonaka
Bug: 65024629 Test: minikin_tests Test: minikin_stress_tests Change-Id: I7a118b56c9ef241d9446126386f778466df15db8
2018-02-13Merge "Introduce equal operator to MinikinPaint"TreeHugger Robot
2018-02-10Merge "Remove global mutex lock from minikin"TreeHugger Robot
2018-02-09Fix stresstestsSeigo Nonaka
MinikinFontForTest is no longer available. Bug: N/A Test: minikin_stress_tests Change-Id: I9511b2241c199c9be4a96c83835296180210d3d3
2018-02-09Remove global mutex lock from minikinSeigo Nonaka
All modules are now free from gMinikinLock. This increases the performance of parallel text layout in background thread. Here is a raw performance score on walleye-userdebug StaticLayout creation time in parallel: RandomText Thread 1 : 7,348,118 -> 7,327,542: (-0.3%) RandomText Thread 2 : 13,872,214 -> 7,402,398: (-46.6%) RandomText Thread 4 : 24,999,986 -> 8,185,263: (-67.3%) StaticLayout creation time: MeasuredText Balanced Hyphenation : 774,245 -> 781,534: (+0.9%) MeasuredText Balanced NoHyphenation: 587,157 -> 574,882: (-2.1%) MeasuredText Greedy Hyphenation : 535,843 -> 523,630: (-2.3%) MeasuredText Greedy NoHyphenation : 534,965 -> 522,259: (-2.4%) RandomText Balanced Hyphenation : 17,886,651 -> 17,814,108: (-0.4%) RandomText Balanced NoHyphenation : 7,385,288 -> 7,410,588: (+0.3%) RandomText Greedy Hyphenation : 7,380,350 -> 7,296,407: (-1.1%) RandomText Greedy NoHyphenation : 7,358,680 -> 7,320,040: (-0.5%) MeasuredText creation time NoStyled Hyphenation : 17,587,451 -> 17,544,350: (-0.2%) NoStyled Hyphenation WidthOnly : 17,112,258 -> 17,092,507: (-0.1%) NoStyled NoHyphenation : 7,307,064 -> 7,296,519: (-0.1%) NoStyled NoHyphenation WidthOnly : 6,880,721 -> 6,848,543: (-0.5%) Styled Hyphenation : 14,753,919 -> 14,659,049: (-0.6%) Styled Hyphenation WidthOnly : 13,767,908 -> 13,755,623: (-0.1%) Styled NoHyphenation : 14,368,118 -> 14,337,125: (-0.2%) Styled NoHyphenation WidthOnly : 13,414,942 -> 13,375,858: (-0.3%) StaticLayout draw time: MeasuredText NoStyled : 676,438 -> 678,795: (+0.3%) MeasuredText NoStyled WithoutCache : 663,041 -> 654,687: (-1.3%) MeasuredText Styled : 885,574 -> 890,281: (+0.5%) MeasuredText Styled WithoutCache : 944,259 -> 928,675: (-1.7%) RandomText NoStyled : 562,361 -> 553,651: (-1.5%) RandomText NoStyled WithoutCache : 6,678,968 -> 6,696,637: (+0.3%) RandomText Styled : 2,970,369 -> 2,933,900: (-1.2%) RandomText Styled WithoutCache : 3,408,554 -> 3,387,260: (-0.6%) Bug: 37567215 Test: minikin_tests Test: minikin_stress_tests Test: atest CtsWidgetTestCases:EditTextTest CtsWidgetTestCases:TextViewFadingEdgeTest FrameworksCoreTests:TextViewFallbackLineSpacingTest FrameworksCoreTests:TextViewTest FrameworksCoreTests:TypefaceTest CtsGraphicsTestCases:TypefaceTest CtsWidgetTestCases:TextViewTest CtsTextTestCases CtsGraphicsTestCases:PaintTest Test: bit FrameworksCoreTests:android.text. Change-Id: I6aab090be6bfa65f1205b26b77c6c65823a3d94e
2018-02-08Merge "Introduce own mutex for LayoutCache"TreeHugger Robot
2018-02-08Merge "Make some thread-unsafe functions thread-safe in Layout.cpp"TreeHugger Robot
2018-02-08Fix OOB read due to integer overflow am: 2f88f76f25 am: 9b4c0edf32 am: ↵Seigo Nonaka
ca80a4f6a0 am: f12de43fff Change-Id: I2bc8ac83fc847e8d4f38a7b93c57c28f25c1b64b
2018-02-08Fix OOB read due to integer overflow am: 2f88f76f25 am: 9b4c0edf32Seigo Nonaka
am: ca80a4f6a0 Change-Id: I6bd2e32037e3f98aa86ff5b1618e08243f1ae5c1
2018-02-08Fix OOB read due to integer overflow am: 2f88f76f25Seigo Nonaka
am: 9b4c0edf32 Change-Id: I07431c17222135a8208ea3dec694821c86581bee
2018-02-08Fix OOB read due to integer overflowSeigo Nonaka
am: 2f88f76f25 Change-Id: Ie7d6a2147fe84bb532b1a59fbb771e7f9e234c41