This is consistent with what I am observing. Is this something that Oracle
is aware of? Looking at Jira, I don't see that anyone is working on this:

https://javafx-jira.kenai.com/issues/?jql=status%20in%20(Open%2C%20%22In%20Progress%22%2C%20Reopened)%20AND%20labels%20in%20(macosx)%20%20AND%20labels%20in%20(performance)

Given that one of the One of the main reasons to use JFX for me is to be
able to develop with one code base for at least OSX and Windows and the
official statement what JavaFX is for, i.e.

"JavaFX is a set of graphics and media packages that enables developers to
design, create, test, debug, and deploy rich client applications that
operate consistently across diverse platforms"

and the fact that this is clearly not the case currently (8u40) as soon as
I do something else than simple forms, I run into performance/quality
problems on the Mac, I am a bit unsure what to make of all that. Is Mac OSX
a second-class citizen as far as dev resources are concerned?

Tobi and Chris, have you filed Jira Issues on Mac graphics performance that
can be tracked?

I will file an issue with a simple test case and hope for the best.




On Fri, Mar 27, 2015 at 11:08 PM, Chris Newland <cnewl...@chrisnewland.com>
wrote:

> Possibly related:
>
> I can reproduce a massive (90%) performance drop on OSX between drawing a
> wireframe polygon on a Canvas using a series of gc.strokeLine(double x1,
> double y1, double x2, double y2) commands versus using a single
> gc.strokePolygon(double[] xPoints, double[] yPoints, int count) command.
>
> Creating the polygons manually with strokeLine() is significantly faster
> using the ES2Pipeline on OSX.
>
> This is reproducible in a little GitHub JavaFX benchmarking project I've
> created: https://github.com/chriswhocodes/DemoFX
>
> Build with ant
>
> Run with:
>
> # use strokeLine
> ./run.sh -c 5000 -m line
> result: 60 (sixty) fps
>
> # use strokePolygon
> ./run.sh -c 5000 -m poly
> result: 6 (six) fps
>
> System is 2011 iMac 27" / Mavericks / 3.4GHz Core i7 / 20GB RAM / Radeon
> 6970M 1024MB
>
> Looking at the code paths in javafx.scene.canvas.GraphicsContext:
>
> gc.strokeLine() maps to writeOp4(x1, y1, x2, y2, NGCanvas.STROKE_LINE)
>
> gc.strokePolygon() maps to writePoly(xPoints, yPoints, nPoints, true,
> NGCanvas.STROKE_PATH) which involves significantly more work with adding
> to and flushing a GrowableDataBuffer.
>
> I've not had time to dig any deeper than this but it's surely a bug when
> building a poly manually is 10x faster than using the convenience method.
>
> Cheers,
>
> Chris
>
> On Fri, March 27, 2015 21:26, Tobias Bley wrote:
> > In my opinion the whole graphics performance on MacOSX isn’t good at
> > all with JavaFX….
> >
> >
> >> Am 27.03.2015 um 22:10 schrieb Robert Krüger <krue...@lesspain.de>:
> >>
> >>
> >> The bad full screen performance is without the arcs. It is just one
> >> call to fillRect, two to strokeOval and one to fillOval, that's all. I
> >> will build a simple test case and file an issue.
> >>
> >> On Fri, Mar 27, 2015 at 9:58 PM, Jim Graham <james.gra...@oracle.com>
> >> wrote:
> >>
> >>
> >>> Hi Robert,
> >>>
> >>>
> >>> Please file a Jira issue with a simple test case.  Arcs are handled
> >>> as a generalized shape rather than via a predetermined shader, but it
> >>> shouldn't be that slow.  Something else may be going on.
> >>>
> >>> Another test might be to replace the arcs with rectangles or ellipses
> >>> and see if the performance changes...
> >>>
> >>> ...jim
> >>>
> >>>
> >>>
> >>> On 3/27/15 1:52 PM, Robert Krüger wrote:
> >>>
> >>>
> >>>> Hi,
> >>>>
> >>>>
> >>>> I have a super-simple animation implemented using AnimationTimer
> >>>> and Canvas
> >>>> where the canvas just performs a few draw operations, i.e. fills the
> >>>>  screen with a color and then draws and fills 2-3 circles and I have
> >>>> already observed that each drawing operation I add, results in
> >>>> significant CPU load (e.g. when I draw < 10 arcs in addition to the
> >>>> circles, the CPU load goes up to 30-40% on a Mac Book Pro for a
> >>>> Canvas size of 600x600(!).
> >>>>
> >>>>
> >>>> Now I tested the animation in full screen mode (only with a few
> >>>> circles) and playback is unusable for a serious application (very
> >>>> choppy). Is 2D canvas performance known to be very bad on Mac or am
> >>>> I doing something
> >>>> wrong? Are there workarounds for this?
> >>>>
> >>>> Thanks,
> >>>>
> >>>>
> >>>> Robert
> >>>>
> >>>>
> >>>>
> >>
> >>
> >> --
> >> Robert Krüger
> >> Managing Partner
> >> Lesspain GmbH & Co. KG
> >>
> >>
> >> www.lesspain-software.com
> >
> >
>
>
>


-- 
Robert Krüger
Managing Partner
Lesspain GmbH & Co. KG

www.lesspain-software.com

Reply via email to