Jump to content

Recommended Posts

Posted

I am currently using uGFX with NIOS II (on MAX 10), using a generic framebuffer with 16-bits/pixel (RGB565).

As part of the linear framebuffer driver, I have added accelerators for gdisp_lld_fill_area(), etc.  I have confirmed that I am getting must faster fill than the default fallback "// Worst is pixel drawing" code.

In my main application, I have a tabset (with 3 tabs) that fills the entire display.  Anytime I select a new tab, I notice an unexpectedly slow tab window clear, right before the newly selected tab is rendered.  Subsequently, I am seeing expected performance while drawing filled shapes, so I am confident that my accelerated gdisp_lld_fill_area() is still being called.

I have started to look through gdisp.c, but have yet to identify exactly where this tab change window clear is being executed.

Could someone point me in the right direction?  I would like to make sure that tab window clear is using my accelerated functions.

Thanks in advance.

 

Posted

Nevermind -- answered my own question (again):

I did find where tabs get cleared before being rendered:  gwin_tabset.c ==> gwinTabsetDraw_Std(), which eventually does indeed call gdisp_lld_fill_area().

So the root cause is that my accelerator slows down on unaligned accesses -- which of course will happen with pixels that are half-word!

Back to the drawing (or rather filling) board...

 

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...