Endalvik Posted January 15, 2019 Report Posted January 15, 2019 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.
Endalvik Posted January 17, 2019 Author Report Posted January 17, 2019 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...
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now