I have filed this now: https://javafx-jira.kenai.com/browse/RT-40377
On Sat, Mar 28, 2015 at 11:06 AM, Robert Krüger <krue...@lesspain.de> wrote: > 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 > -- Robert Krüger Managing Partner Lesspain GmbH & Co. KG www.lesspain-software.com