+1
On 01/04/2019 02:12, Alexey Ushakov wrote:
Looks good for me.
Best Regards,
Alexey
On Mon, Apr 1, 2019 at 10:46 AM Dmitry Batrak <[email protected]
<mailto:[email protected]>> wrote:
> Sorry for the delay. I've now finished verifying this and it is a +1
from me.
Thanks!
Anyone else, please? A second reviewer is required.
On Mon, Mar 25, 2019 at 11:19 PM Philip Race <[email protected]
<mailto:[email protected]>> wrote:
Sorry for the delay. I've now finished verifying this and it is a +1
from me.
-phil.
On 3/12/19, 1:32 AM, Dmitry Batrak wrote:
> This looks good to me, if I understand correctly that we now create
> the face on first use and cache it fin Java or as long as the Font2D
is
> alive.
> And the JNIEnv is always found on
That's correct. The assumption is that HarfBuzz doesn't create its own
threads,
so HarfBuzz-related native code will always be invoked from a Java
thread
(as part of 'shape' call), and so JNIEnv will be available in that
context.
I've updated the webrev by including a stress test for multi-threaded
behaviour
testing. Apart from the test, webrev also has some cosmetic differences
from the previous version (like a comment fix or parameter order
changing),
appeared during 'splitting' process. To simplify the review, I'm also
providing
the links to the 'split' version of the same webrev - three parts that
produce
the same result when combined. I've not tested the changes separately
(except basic compilation check).
Complete change:
http://cr.openjdk.java.net/~dbatrak/8220231/webrev.01/
<http://cr.openjdk.java.net/%7Edbatrak/8220231/webrev.01/>
Part 1 (caching hb_face_t):
http://cr.openjdk.java.net/~dbatrak/8220231/webrev.01-1/
<http://cr.openjdk.java.net/%7Edbatrak/8220231/webrev.01-1/>
Part 2 (tables caching removal):
http://cr.openjdk.java.net/~dbatrak/8220231/webrev.01-2/
<http://cr.openjdk.java.net/%7Edbatrak/8220231/webrev.01-2/>
Part 3 (scaler pointer passing removal):
http://cr.openjdk.java.net/~dbatrak/8220231/webrev.01-3/
<http://cr.openjdk.java.net/%7Edbatrak/8220231/webrev.01-3/>
Best regards,
Dmitry Batrak
On Fri, Mar 8, 2019 at 3:21 AM Philip Race <[email protected]
<mailto:[email protected]>> wrote:
This looks good to me, if I understand correctly that we now create
the face on first use and cache it fin Java or as long as the
Font2D is
alive.
And the JNIEnv is always found on
I think you are right that we don't need the caching of the tables
since
now the face will do it. The unfortunate thing is that the removal
of
this code is
well over half the changes and as such it greatly muddied finding
the
changes
that make the performance difference so my review was harder and
less
certain
because of that.
It could have been separated into a follow-on change I think so
that it
would have
been easier to review the important change.
The pScaler parameter looks like it is unused these days which is
why I
expect you removed it but also not directly relevant.
I have run builds + some tests - but I'm not in a position to run
more tests
for a couple of weeks.
A (mild) stress test re-using the same font from multiple threads
eachmaking
multiple calls into layout would be a good addition here. That
should
help tell
us if there are any MT or re-entrancy problems. Can you provide
such a
test ?
It will be a good thing to have automatically run to catch any
problems
introduced later either on the Java side or by an update to
harfbuzz.
-phil.
On 3/6/19, 5:45 PM, Dmitry Batrak wrote:
> Hello,
>
> I'd like to submit a patch for JDK-8220231. I'm not a Committer,
so
> I'll need someone to sponsor this change.
>
> The proposed approach is used without known issues in
OpenJDK-based
> JetBrains Runtime for almost three years now. I've mentioned it
> previously on this mailing list
>
(https://mail.openjdk.java.net/pipermail/2d-dev/2017-August/008497.html).
> The change has been refactored as compared to the version
mentioned
> above (the logic has been moved to SunLayoutEngine), and includes
the
> removal of font tables caching (JDK-8186317). The latter, I
believe,
> becomes redundant with this fix.
>
> Issue: https://bugs.openjdk.java.net/browse/JDK-8220231
> Webrev: http://cr.openjdk.java.net/~dbatrak/8220231/webrev.00/
<http://cr.openjdk.java.net/%7Edbatrak/8220231/webrev.00/>
> <http://cr.openjdk.java.net/%7Edbatrak/8220231/webrev.00/>
>
> Best regards,
> Dmitry Batrak
>
--
Dmitry Batrak
Senior Software Developer
JetBrains
http://www.jetbrains.com
The Drive to Develop
--
Best regards, Sergey.