freetype-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [ft-devel] Pixel Differences after 2ea511eed8 and 7a81b63abc2b3


From: Dominik Röttsches
Subject: Re: [ft-devel] Pixel Differences after 2ea511eed8 and 7a81b63abc2b3
Date: Fri, 24 May 2019 15:21:49 +0300

Hi Alexei,

On Tue, May 21, 2019 at 6:49 AM Alexei Podtelezhnikov <address@hidden> wrote:


On Thu, May 16, 2019 at 2:11 PM Dominik Röttsches <address@hidden> wrote:
b) I would prefer 7a81b63abc2b3da0d7f0950f69377d2b3f54b0fb to be reworked so it doesn't cause pixel differences if possible, or reverted. Similarly with the current reasoning, I do not find 2ea511eed81770f423544525adebf7f954b8be93 a change that is strictly required or justified.

Dominik,

I have just committed the benchmarking numbers: Bezier bisections are faster by 20-30%, which ultimately translates to 2-3% of rendering speed. The other change gives 1% more. Not much right? I have been squeezing these percentage points over past 6 years and it adds up to about 30% by now. Considering that FT_Render_Glyph is called at least 10^12 times globally daily, it is important.

IMHO,  the bit-level consistency that you are asking is flawed in the case of font rasterization. For what it is worth, rasterization is approximation, i.e, Bézier curves are flattened. There is so many *correct* ways to do it looking for that performance. Not everything has to be a bug fix, not every bit matters.

I appreciate your knowledgeable work on performance in this area. I am not asking for strict bit level consistency but I am asking to weigh pixel rasterisation changes against the effects on embedding projects and workflows. Neither have I claimed the changes are distinctly incorrect. I am asking for a tighter workflow, unit testing in FreeType and FreeType development catching pixel differences early before causing redundant and multiplied efforts in downstream embedded projects and to evaluate a performance tweak against the costs of pixel changes. Similarly, if FreeType had performance tracking bots it would be easy to follow the benefits of a performance improvement and such decisions would be come more data driven.

Committing something with a brief message which can be paraphrased as "looks better to me" without benchmarks and without a discussion on the mailing list or a bug report as further context is in my opinion not sufficient to justify the headache of re-evaluating thousands of test baselines, with the risk of missing actual failures - as we explained before. This applies to PDFium, Chromium and I am sure more projects. The fact that FreeType does not unit test or perform try bot runs in CI makes it easy to ignore the additional work that changes like this do cause - which leads to a biased, project local evaluation of the value of such a CL. 

I am not sure what you mean by "I have just committed the benchmarking numbers" - did you publish them somewhere? In any event, you seem to have the benchmarking numbers - why not put such figures with reproduction steps in to the commit message or in an issue on the issue tracker next time, ideally before the commit?

Ben Wagner has helpfully set up a FreeType autoroller into Chromium which will soon allow us to track differences on individual changes and alert us earlier when we start to see breakage - this will notify us earlier about regressions and pixel failures and we can discuss such issues sooner before running into the set of issues that we're facing with rolling from 2.10 to ToT.

In the meantime, I understood from Werner's comment in https://savannah.nongnu.org/bugs/?56321#comment6 that my request will be taken into consideration in future similar changes. 

Dominik

reply via email to

[Prev in Thread] Current Thread [Next in Thread]