Click here to Skip to main content
15,886,518 members

Welcome to the Lounge

   

For discussing anything related to a software developer's life but is not for programming questions. Got a programming question?

The Lounge is rated Safe For Work. If you're about to post something inappropriate for a shared office environment, then don't post it. No ads, no abuse, and no programming questions. Trolling, (political, climate, religious or whatever) will result in your account being removed.

 
GeneralRe: The state of online technical training Pin
Gerry Schmitz20-Feb-22 12:23
mveGerry Schmitz20-Feb-22 12:23 
GeneralRe: The state of online technical training Pin
Amarnath S20-Feb-22 17:34
professionalAmarnath S20-Feb-22 17:34 
GeneralRe: The state of online technical training Pin
BryanFazekas21-Feb-22 2:24
BryanFazekas21-Feb-22 2:24 
GeneralRe: The state of online technical training Pin
#realJSOP20-Feb-22 23:29
mve#realJSOP20-Feb-22 23:29 
GeneralRe: The state of online technical training Pin
RobertSF21-Feb-22 11:09
professionalRobertSF21-Feb-22 11:09 
GeneralRe: The state of online technical training Pin
Steve Naidamast21-Feb-22 6:52
professionalSteve Naidamast21-Feb-22 6:52 
GeneralRe: The state of online technical training Pin
RobertSF21-Feb-22 11:09
professionalRobertSF21-Feb-22 11:09 
PraiseI just watched LVGL kill it performancewise in an alpha blending demo Pin
honey the codewitch19-Feb-22 21:38
mvahoney the codewitch19-Feb-22 21:38 
EDIT 2: I DID IT. THIS ROCKS

I'm not entirely sure how they do it. The code is a labyrinth - it has over 100 contributors.

Alpha blending without hardware acceleration is slow because you have to read from the source pixel by pixel, blend each pixel with the new color, and then write to the the pixel to the destination.

I was doing this naively, but I want to approach LVGL speed. I need to rise to the challenge.

I'm now planning on reading pixels line by line from the display source in batches, then scanning each line, and only reblending if the source color changes when I fill a rectangle.

Filling rectangles is a primitive that almost all drawing operations - including draw-line use so it basically speeds up everything.

To complicate things, I can't guarantee that memory will be available to copy the source line into a buffer, so if it's not I need to fallback to a pixel by pixel read.

Here goes nothing.

Wish me luck. Shucks | :-\

Edit: I sped it up some, but it's sped up much more when the draw destination supports direct reads into RAM. However, the display device I'm using this with reads the pixels in 18-bit format rather than 16-bit format and worse, it's padded to 24 bits. That means no matter what I do, I have to convert each pixel to 16-bit anyway. I kind of know how to speed it a little bit even in that case but nowhere near approaching that LVGL demo. It makes me wonder if they aren't doing some sort of faux alpha blending in that demo rather than the real thing. That wouldn't surprise me at all. I have an idea of how to do that anyway.
Real programmers use butterflies


modified 20-Feb-22 10:44am.

GeneralRe: I just watched LVGL kill it performancewise in an alpha blending demo Pin
Super Lloyd20-Feb-22 11:27
Super Lloyd20-Feb-22 11:27 
GeneralRe: I just watched LVGL kill it performancewise in an alpha blending demo Pin
honey the codewitch20-Feb-22 11:41
mvahoney the codewitch20-Feb-22 11:41 
GeneralRe: I just watched LVGL kill it performancewise in an alpha blending demo Pin
Super Lloyd20-Feb-22 12:06
Super Lloyd20-Feb-22 12:06 
RantWhy not just save the money and not include the extra RAM? Pin
honey the codewitch19-Feb-22 13:45
mvahoney the codewitch19-Feb-22 13:45 
AnswerRe: Why not just save the money and not include the extra RAM? Pin
David O'Neil19-Feb-22 16:50
professionalDavid O'Neil19-Feb-22 16:50 
GeneralRe: Why not just save the money and not include the extra RAM? Pin
honey the codewitch19-Feb-22 17:56
mvahoney the codewitch19-Feb-22 17:56 
GeneralRe: Why not just save the money and not include the extra RAM? Pin
ElectronProgrammer20-Feb-22 0:55
ElectronProgrammer20-Feb-22 0:55 
GeneralRe: Why not just save the money and not include the extra RAM? Pin
lmoelleb20-Feb-22 21:18
lmoelleb20-Feb-22 21:18 
GeneralRe: Why not just save the money and not include the extra RAM? Pin
honey the codewitch20-Feb-22 23:36
mvahoney the codewitch20-Feb-22 23:36 
GeneralRe: Why not just save the money and not include the extra RAM? Pin
trønderen21-Feb-22 0:49
trønderen21-Feb-22 0:49 
GeneralRe: Why not just save the money and not include the extra RAM? Pin
honey the codewitch21-Feb-22 4:07
mvahoney the codewitch21-Feb-22 4:07 
GeneralRe: Why not just save the money and not include the extra RAM? Pin
trønderen21-Feb-22 6:37
trønderen21-Feb-22 6:37 
GeneralRe: Why not just save the money and not include the extra RAM? Pin
honey the codewitch21-Feb-22 7:15
mvahoney the codewitch21-Feb-22 7:15 
GeneralRe: Why not just save the money and not include the extra RAM? Pin
Daniel Pfeffer21-Feb-22 3:13
professionalDaniel Pfeffer21-Feb-22 3:13 
GeneralRe: Why not just save the money and not include the extra RAM? Pin
Gerry Schmitz21-Feb-22 6:23
mveGerry Schmitz21-Feb-22 6:23 
GeneralRe: Why not just save the money and not include the extra RAM? Pin
trønderen21-Feb-22 6:44
trønderen21-Feb-22 6:44 
GeneralRe: Why not just save the money and not include the extra RAM? Pin
honey the codewitch21-Feb-22 7:16
mvahoney the codewitch21-Feb-22 7:16 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.