Skip to content

Conversation

@bourgesl
Copy link
Collaborator

@bourgesl bourgesl commented Jan 15, 2026

merged changes with Java2D bug JDK-8341381 (trivial port on src only)

See openjdk/jdk@46c23bb


Progress

  • Change must not contain extraneous whitespace
  • Commit message must refer to an issue
  • Change must be properly reviewed (2 reviews required, with at least 1 Reviewer, 1 Author)

Issue

  • JDK-8370729: Precision errors in Marlin 0.9.4.6 can cause rendering errors (Bug - P3)

Reviewing

Using git

Checkout this PR locally:
$ git fetch https://git.openjdk.org/jfx.git pull/2039/head:pull/2039
$ git checkout pull/2039

Update a local copy of the PR:
$ git checkout pull/2039
$ git pull https://git.openjdk.org/jfx.git pull/2039/head

Using Skara CLI tools

Checkout this PR locally:
$ git pr checkout 2039

View PR using the GUI difftool:
$ git pr show -t 2039

Using diff file

Download this PR as a diff file:
https://git.openjdk.org/jfx/pull/2039.diff

Using Webrev

Link to Webrev Comment

@bridgekeeper
Copy link

bridgekeeper bot commented Jan 15, 2026

👋 Welcome back lbourges! A progress list of the required criteria for merging this PR into master will be added to the body of your pull request. There are additional pull request commands available for use with this pull request.

@openjdk
Copy link

openjdk bot commented Jan 15, 2026

❗ This change is not yet ready to be integrated.
See the Progress checklist in the description for automated requirements.

@bourgesl
Copy link
Collaborator Author

@kevinrushforth and @johanvos please review this jfx fix identical to java2d fix, except nearZero() moved into DMarlinRendererPrismUtils

@bourgesl bourgesl changed the title Precision errors in Marlin 0.9.4.6 can cause rendering errors JDK-8370729: Precision errors in Marlin 0.9.4.6 can cause rendering errors Jan 15, 2026
@openjdk openjdk bot changed the title JDK-8370729: Precision errors in Marlin 0.9.4.6 can cause rendering errors 8370729: Precision errors in Marlin 0.9.4.6 can cause rendering errors Jan 15, 2026
@bourgesl bourgesl changed the title 8370729: Precision errors in Marlin 0.9.4.6 can cause rendering errors JDK-8370729: Precision errors in Marlin 0.9.4.6 can cause rendering errors Jan 15, 2026
@openjdk openjdk bot added the rfr Ready for review label Jan 15, 2026
@openjdk openjdk bot changed the title JDK-8370729: Precision errors in Marlin 0.9.4.6 can cause rendering errors 8370729: Precision errors in Marlin 0.9.4.6 can cause rendering errors Jan 15, 2026
@mlbridge
Copy link

mlbridge bot commented Jan 15, 2026

Webrevs

@bourgesl
Copy link
Collaborator Author

Will fix compilation failure asap (missing module access)

@kevinrushforth
Copy link
Member

/reviewers 2

@openjdk
Copy link

openjdk bot commented Jan 15, 2026

@kevinrushforth
The total number of required reviews for this PR (including the jcheck configuration and the last /reviewers command) is now set to 2 (with at least 1 Reviewer, 1 Author).

@kevinrushforth
Copy link
Member

@bourgesl Can you create an automated test for this, perhaps derived from the Java2D test in JDK-8341381?

Reviewers: @kevinrushforth @lukostyra

/reviewers 2

@openjdk
Copy link

openjdk bot commented Jan 15, 2026

@kevinrushforth
The total number of required reviews for this PR (including the jcheck configuration and the last /reviewers command) is now set to 2 (with at least 1 Reviewer, 1 Author).

@bourgesl
Copy link
Collaborator Author

@kevinrushforth of course I could but I need time to convert this 2d test to jfx gameloop...
I wonder if it is worth the price...

@kevinrushforth
Copy link
Member

How much time would it take? As an alternative, do you have a manual test program that will show the error? Given that this is a port of a fix that already went into Java2D, a manual test program might be sufficient (and we can file a follow-up test bug to consider an automated test later).

@andy-goryachev-oracle
Copy link
Contributor

I am trying to come up with a reproducer, @kevinrushforth @bourgesl

@andy-goryachev-oracle
Copy link
Contributor

I came up with what I think is an equivalent of the Main.java in https://bugs.openjdk.org/browse/JDK-8341381

I noticed that the shapes do not correspond to the GIF in the ticket - the curves in the bug form a text outline, whereas the GIF shows something else. Not sure if important.

What's important is that I cannot reproduce the issue with the latest master branch.

Please use the latest monkey tester from
https://github.com/andy-goryachev-oracle/MonkeyTest

select the Shape page and set the properties according to the screenshot:
Screenshot 2026-01-16 at 09 27 59

Here is the reproducer part of the code:
https://github.com/andy-goryachev-oracle/MonkeyTest/blob/b19d640533b89068644426dcf6aa7f137b4d4334/src/com/oracle/tools/fx/monkey/pages/ShapePage.java#L213

What am I doing wrong, @bourgesl ?

@bourgesl
Copy link
Collaborator Author

The tricky part in this test consists in falling in magic cubic values depending on scale & viewport... that should be reproduced as in the gif case.
I will try capturing a failing cubic value in marlin2d to draw it exactly with javafx (same exact coefficients) ...
It will take me spare time so this PR can be back to draft.

@bourgesl
Copy link
Collaborator Author

I came up with what I think is an equivalent of the Main.java in https://bugs.openjdk.org/browse/JDK-8341381

I noticed that the shapes do not correspond to the GIF in the ticket - the curves in the bug form a text outline, whereas the GIF shows something else. Not sure if important.

What's important is that I cannot reproduce the issue with the latest master branch.

Please use the latest monkey tester from https://github.com/andy-goryachev-oracle/MonkeyTest

select the Shape page and set the properties according to the screenshot: Screenshot 2026-01-16 at 09 27 59

Here is the reproducer part of the code: https://github.com/andy-goryachev-oracle/MonkeyTest/blob/b19d640533b89068644426dcf6aa7f137b4d4334/src/com/oracle/tools/fx/monkey/pages/ShapePage.java#L213

What am I doing wrong, @bourgesl ?

I will try reproducing this weird scale or extract transformed values to make bad cubics

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

rfr Ready for review

Development

Successfully merging this pull request may close these issues.

3 participants