Endalvik Posted January 15, 2019 Report Share 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. Link to comment Share on other sites More sharing options...
Endalvik Posted January 17, 2019 Author Report Share 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... Link to comment Share on other sites More sharing options...
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