Well, I'm putting my hand up for this. Kevin, would you like to discuss this with me on or offline?
Felix P.S. Thanks Markus for your insight! > On 22 Jul 2016, at 04:22, Kevin Rushforth <kevin.rushfo...@oracle.com> wrote: > > Yep. > > -- Kevin > > > Richard Bair wrote: >> I think you just nailed it on the head Markus :-). >> >> >>> On Jul 21, 2016, at 10:56 AM, Markus KARG <mar...@headcrashing.eu> wrote: >>> >>> The limiting factor is the single-thread architecture of rather all parts >>> of JavaFX. The only real difference you see between machines is not >>> correlating with neither number of CPU cores nor GPU cores, but only with >>> CPU frequency, roughly spoken. Short term fixes will only provide little >>> improvement, by optimizing the critical execution path (i. e. produce hot >>> spot histogram using a profiler), for example improvement clipping, >>> caching, etc. Huge performance optimizations need an architectural change >>> within JavaFX's "scenegraph-to-bitmapframe" (a.k.a. rendering) pipeline to >>> use parallel execution in lots of places. Typical design patterns would be >>> parallel iterations, work-stealing executors, fibers (a.k.a cooperative >>> multi-threading, a.k.a CompletableFuture), and last but not least >>> partitioned rendering (a.k.a tiled rendering). >>> >>> I am pretty sure you can add a lot more ideas to the list and produce great >>> performance, scaling linearly with number of CPU cores / GPU cores, but >>> this somes at a cost: Risk to introduce hard to track bugs, and needed >>> manpower. >>> >>> If somebody has at least a lot of free spare time, I am pretty sure Kevin >>> could easily provide a huge set of work items in this area. :-) >>> >>> -Markus >>> >>> -----Original Message----- >>> From: openjfx-dev [mailto:openjfx-dev-boun...@openjdk.java.net] On Behalf >>> Of Dr. Michael Paus >>> Sent: Donnerstag, 21. Juli 2016 12:07 >>> To: openjfx-dev@openjdk.java.net >>> Subject: Re: Scene graph performance >>> >>> Hi Felix, >>> I have written various tests like the ones you use in FXMark and I have >>> obtained similar results. I have even tried to substitute 2D shapes by >>> using 3D MeshViews in the hope that this would give better performance but >>> the results were not that good. Of course all this depends on the specific >>> test case but in general I see that a JavaFX application which makes heavy >>> use of graphics animations is completely CPU-bounded. >>> The maximum performance is reached when one CPU/Core is at 100%. >>> The performance of your graphics hardware seems to be almost irrelevant. >>> I could for example run four instances of the same test with almost the >>> same performance at the same time. In this case all 4 cores of my machine >>> were at 100%. This proves that the graphics hardware is not the limiting >>> factor. My machine is a MacBook Pro with Retina graphics and a dedicated >>> NVidia graphics card which is already a couple of years old and certainly >>> not playing in the same league as your high-power card. >>> I myself have not yet found a way to really speed up the graphics >>> performance and I am a little bit frustrated because of that. But it is not >>> only the general graphic performance which is a problem. There are also a >>> lot of other pitfalls into which you can stumble and which can bring your >>> animations to a halt or even crash your system. Zooming for example is one >>> of these issues. >>> >>> I would like to have some exchange on these issues and how to best address >>> them but my impression so far is that there are only very view people >>> interested in that. (I hope someone can prove me wrong on this :-) >>> >>> Michael >>> >>>> Am 20.07.16 um 04:14 schrieb Felix Bembrick: >>>> >>>> Having written and tested FXMark on various platforms and devices, one >>>> thing has really struck me as quite "odd". >>>> >>>> I started work on FXMark as a kind of side project a while ago and, at the >>>> time, my machine was powerful but not "super powerful". >>>> >>>> So when I purchased a new machine with just about the highest specs >>>> available including 2 x Xeon CPUs and (especially) 4 x NVIDIA GTX Titan X >>>> GPUs in SLI mode, I was naturally expecting to see significant performance >>>> improvements when I ran FXMark on this machine. >>>> >>>> But to my surprise, and disappointment, the scene graph animations ran >>>> almost NO faster whatsoever! >>>> >>>> So then I decided to try FXMark on my wife's entry-level Dell i5 PC with a >>>> rudimentary (single) GPU and, guess what - almost the same level of >>>> performance (i.e. FPS and smoothness etc.) was achieved on this >>>> considerably less powerful machine (in terms of both CPU and GPU). >>>> >>>> So, it seems there is some kind of "performance wall" that limits the >>>> rendering speed of the scene graph (and this is with full speed animations >>>> enabled). >>>> >>>> What is the nature of this "wall"? Is it simply that the rendering >>>> pipeline is not making efficient use of the GPU? Is too much being done on >>>> the CPU? >>>> >>>> Whatever the cause, I really think it needs to be addressed. >>>> >>>> If I can't get better performance out of a machine that scores in the top >>>> 0.01% of all machine in the world in the 3DMark Index than an entry level >>>> PC, isn't this a MAJOR issue for JavaFX? >>>> >>>> Blessings, >>>> >>>> Felix >> >>