iMX6Q graphics performance

Prasant Jalan prasant at
Wed Jan 21 05:31:48 UTC 2015

Hi David,

Thanks a lot for your inputs!
My response is below.

On Tuesday 20 January 2015 11:24 PM, David Hill wrote:
> On 1/19/15, 3:44 AM, Prasant Jalan wrote:
>> Hi,
>> I'm running my JavaFX based application (only uses 2D graphics) on 
>> Freescale iMX6Q processor (1.2 GHz x Quad Core). The performance is 
>> not up the mark. (I'm using javaFX build 8u40-b15). My system has 
>> framebuffer build of the Vivante graphic libraries (ver
>> The same application when run on an intel i3 processor (4 core, 1.6 
>> GHz each - Windows 32 bit) performs much better.
>> Is the difference in performances because of DirectX on Windows and 
>> OpenGL on the embedded ARM? How can I find out the real reason of low 
>> performance on my ARM system (or this is how I should expect it to 
>> perform) ?
> ARM systems will tend to run slower than comparable Itel if you are 
> just looking at clock speed - but there are so many other variables in 
> the mix that it is hard to say what it is the limiting factor. For 
> example - I have seen some apps that run fine on a sluggish Raspberry 
> Pi because the GPU is fast enough for the application, and the CPU is 
> not the limiting factor. I have other apps that run reasonable on my 
> i.MX6, that I can't get a decent frame rate on the Pi. That same 
> application gets double the FPS on my desktop machines though not much 
> faster on a intel netbook.
> The amount of memory, the bus speed, the CPU speed, and the number of 
> GPU cores are just a few of the items to consider.
> Sometimes the bottleneck is something that does not appear obvious at 
> first. For example - we cache a lot of textures to speed things up in 
> JFX. A recent example was using a huge font size - one that exceeded 
> the default cache limitations (there is a way to override the default 
> settting). Because it was not cached - it was being regenerated 
> periodically which really showed in the frame rate.
> Complex scene graphs can also cause some computational overhead that 
> is noticeable on ARM.

You have hit the right point.

We want a way to find out if our system is not performing of our 
application has a problem.

If I could get the test apps that you have used for iMX6 testing and if 
I know the following:
- What fps did you get when you ran on iMX6?
- which javaFX build were you using?
- which version of Vivante graphics were you using?
- your iMX6 hardware specs: core clock speed, number of cores, amount of 
memory ??

The above information will help us test our system. We have also put a 
system together and the above answers will give us a reference 
measurement. We could use your test app and get the fps measurement and 
know if our system is behaving fine. Then we could reduce our scope to 
javaFX application optimization and forget about the system.

I hope we can get the above information. Let me know!

Regards, Prasant

More information about the openjfx-dev mailing list