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
> 
> 
> 

Reply via email to