Advertising
- rockbox on-topic talk in off-top
- Tuesday, June 10th, 2008 at 8:52:13am MDT
- 16:13 * Llorean wishes people would stop making wild assumptions like "nobody cares about the 5.5G port" or "my iPod is perfect, so this bug must be a giant
- Rockbox bug and therefor Rockbox is not stable like the wiki says"
- 16:13 < wpyh> what?
- 16:13 < wpyh> my 5.5g ipod is running perfectly!
- 16:13 < wpyh> except for the slow rendering...
- 16:14 < Llorean> Someone's experiencing constant freezing, and therefor thinks that Rockbox on 5.5G is completely unstable.
- 16:15 < LambdaCalculus37> Llorean: Where, on the forums?
- 16:15 < Llorean> Maybe we should just post download numbers of some sort, so people can see "look, there's probably a few thousand other users who haven't
- said a word: maybe your iPod is damaged, ever drop it?"
- 16:15 < Llorean> LambdaCalculus37: Most recent post I've responded to
- 16:15 < LambdaCalculus37> I see it.
- 16:15 * LambdaCalculus37 reads
- 16:16 < wpyh> uh
- 16:16 < LambdaCalculus37> He missed one critical piece of information... what SVN build?
- 16:17 < wpyh> right
- 16:17 < LambdaCalculus37> I haven't had freeze issues at all on my iPod. Slow rendering, yes. Freezes? Nope.
- 16:17 < wpyh> Llorean: maybe we should put user statistics up
- 16:17 < wpyh> download numbers may not be accurate
- 16:17 < Llorean> How exactly would we track who uses it?
- 16:17 < wpyh> LambdaCalculus37: yeah, what's up with the slow rendering?
- 16:17 < Llorean> wpyh: Big screen, slow processor. That simple
- 16:17 < wpyh> well, user statistics would be voluntary...
- 16:18 < LambdaCalculus37> wpyh: What Llorean said. :)
- 16:18 < wpyh> but the OF draws very smoothly... did it do something different?
- 16:19 < Llorean> The OF has hardware documentation for the broadcom processor.
- 16:19 < LambdaCalculus37> wpyh: That's the biggest show-stopper there.
- 16:19 < Llorean> It probably also makes better use of the second core in the PP processor, which we only really use for video right now.
- 16:19 < markun> some things could probably be done faster in rockbox too, since we now just redraw every character on screen by looking the glyph up in the
- font
- 16:20 < markun> which doesn't sound like the most efficient way to scroll a page
- 16:23 < wpyh> oh..
- 16:25 < wpyh> markun: can we have some kind of a framebuffer instead?
- 16:25 < markun> well, we have a framebuffer
- 16:26 < wpyh> um... then why do we need to redraw every character on-screen?
- 16:27 < gevaerts> framebuffer == what appears on screen
- 16:27 < markun> it's what we do, I didn't say we need to do that :)
- 16:27 < gevaerts> The other ways I can think of need a lot more RAM though
- 16:27 < wpyh> btw, isn't the broadcom processor used for video only? I didn't know it's used for lcd output
- 16:27 * wpyh goes to check the wiki
- 16:27 < Llorean> wpyh: The LCD is hooked up to it, we have to go through it for drawing
- 16:28 -!- toffe82 [n=chatzill@h-74-0-180-178.snvacaid.covad.net] has joined #rockbox-community
- 16:29 < wpyh> Llorean: ah... where can I find it in the wiki?
- 16:29 < Llorean> No clue
- 16:29 < JdGordon> are the glyphs still drawn one at a time instead of stitching them together into a bmp buffer and then drawing that buffer in 1 hit?
- 16:29 < amiconn> Llorean: The data transfer through the broadcom isn't the bottleneck nowadays
- 16:29 < amiconn> The (somewhat) slow rendering is mainly "slow processor and big screen combo"
- 16:29 < wpyh> markun, gevaerts: I thought we can shift the pixels up with a framebuffer?
- 16:30 < gevaerts> JdGordon: I'd say the main optimisation would be to then keep that bmp buffer around and reuse it next time you draw the same text. Lots of
- RAM usage though
- 16:30 < gevaerts> wpyh: you can, but it's tricky to get it right
- 16:30 < wpyh> oh..
- 16:30 < Llorean> amiconn: Depending on what the broadcom chip is capable of, though, might it be possible to offload the drawing work to it?
- 16:30 < wpyh> by the way, 320*240*2=153600=150KB
- 16:31 < wpyh> shouldn't be too big, right?
- 16:31 < amiconn> The mono bitmap drawing has some possibilities for optiomisation, and I still think that the "optimisation" introduced by one of the early
- gigabeat f/x guys is actually a slowdown
- 16:31 < gevaerts> wpyh: unless you're careful, you'll occasionally have an off-by-one error, or forget to repaint a pixel somewhere,...
- 16:31 < amiconn> But I cannot prove my theory without a drawing speed test plugin
- 16:31 < wpyh> um...
- 16:32 < amiconn> Scrolling with memmove is rather trivial on 8bit and higher depth displays
- 16:32 < amiconn> It's rather tricky on < 8 bit depth, and we don't want two different mechanisms depending on depth
- 16:33 < amiconn> JdGordon: Btw, your 'stitiching together, then transfer' method is actually slower
- 16:33 < wpyh> maybe we can define a special memmove()?
- 16:33 < amiconn> ...because it involves an extra copy operation
- 16:33 < amiconn> wpyh: On 1 bit and 2 bit displays pixels are packed, and the packing is non-trivial
- 16:33 < amiconn> Take a look at the 1bit and 2bit lcd drivers to see what I mean
- 16:34 < amiconn> Scrolling involves bit shifting on those for one direction (vertical or horizontal, depending on pixel packing)
- 16:34 < Llorean> amiconn: Why don't we want tow different mechanisms?
- 16:34 < wpyh> let's see..
- 16:35 < amiconn> Llorean: Code complexity
- 16:35 < Llorean> If code complexity trumped performance, we wouldn't have anything ASM optimized.
- 16:35 < amiconn> Btw, scrolling the screen pixels is very different to our current way of scrolling. Think about background images...
- 16:36 -!- JdGordon is now known as JdGordon|zzz
- 16:36 * gevaerts forgot those...
- 16:36 < amiconn> Llorean: That's quite different. ASM optimisation often means replacing or modifying a low-level function to use asm code
- 16:37 < amiconn> Having two drawing mechanisms means rather different execution flow
- 16:38 < gevaerts> amiconn: you mean memmove-based scrolling on 8+-bit lcds and redraw-based on <-bit ? (That's how I understood you, but I'm not sure)
- 16:39 < gevaerts> s/<-bit/<8-bit/
- 16:39 * wpyh is still trying to understand the framebuffer code for 1bit lcd
- 16:40 < amiconn> wpyh: 1 bit is in fact the simplest one of the packed-pixel formats. 2 bit is more complicated (and exists with 3 different pixel packings)
- 16:40 < wpyh> oh no :O
- 16:41 < amiconn> gevaerts: Yes. And btw, the background image problem remains
- 16:41 < wpyh> background image problem?
- 16:42 < wpyh> you mean the background image being also "scrolled"?
- 16:42 < gevaerts> yes
- 16:42 < wpyh> then we can't use this approach
- 16:42 < wpyh> let's use multilevel buffers
- 16:42 < amiconn> More buffers will make things slower, not faster
- 16:43 < markun> wpyh: one big slowdown is also the fontcache which kicks in with big fonts (in bytes, not pixels)
- 16:43 < wpyh> it would increase complexity though..
- 16:43 < markun> can you try with a small font (in bytes) to see if the interface is faster?
- 16:43 < wpyh> markun: reminds me of the Chinese fonts
- 16:43 < markun> I promissed amiconn some years ago that I would reimplement it and actually worked on it
- 16:44 < markun> we should do a rockbox summer camp! :)
- 16:44 * gevaerts proposes a dynamically sized font cache, and quickly hides under the table
- 16:44 < wpyh> that would be great
- 16:44 < wpyh> I mean a summer camp, not the dynamically sized font cache
- 16:44 < wpyh> :p
- 16:44 < markun> :)
- 16:44 * GodEater proposes this all moves back to #rockbox
- 16:45 < markun> GodEater: even the summer camp? :)
- 16:45 < gevaerts> GodEater: even disguises malloc() proposals? :)
- 16:45 < GodEater> yes, it's on topic
- 16:45 < GodEater> even if it's going to raise merry hell ;)
- 16:46 * wpyh wonders whether someone should copy & paste the whole discussion to #rockbox
- 16:46 < LambdaCalculus37> :)
- 16:46 < GodEater> pastebin it
advertising
Update the Post
Either update this post and resubmit it with changes, or make a new post.
You may also comment on this post.
Please note that information posted here will expire by default in one month. If you do not want it to expire, please set the expiry time above. If it is set to expire, web search engines will not be allowed to index it prior to it expiring. Items that are not marked to expire will be indexable by search engines. Be careful with your passwords. All illegal activities will be reported and any information will be handed over to the authorities, so be good.