09-08-2008, 10:54 AM | #1 |
JSR FFD2
Posts: 305
Karma: 1045
Join Date: Aug 2008
Location: Rotterdam, Netherlands, Europe, Sol 3
Device: iliad
|
Partial screen refresh?
Hello developers,
Is there really no way to do a partial refresh (a rectangular section) of the screen? That's what the include fles suggest (not implemented yet)... ... but the 'walking busy bricks' seem to do just that?!? Hansel |
09-08-2008, 03:21 PM | #2 |
Connoisseur
Posts: 50
Karma: 32
Join Date: Aug 2008
Device: Irex iLiad
|
I was told there are four different controller chips each handling 1/4 of the screen.
|
Advert | |
|
09-08-2008, 06:20 PM | #3 |
Wizard
Posts: 3,442
Karma: 300001
Join Date: Sep 2006
Location: Belgium
Device: PRS-500/505/700, Kindle, Cybook Gen3, Words Gear
|
Haha that's a good one.
|
09-08-2008, 06:22 PM | #4 | |
JSR FFD2
Posts: 305
Karma: 1045
Join Date: Aug 2008
Location: Rotterdam, Netherlands, Europe, Sol 3
Device: iliad
|
What I'm looking for is a way to refresh only the dirty part of the display, like this (in .../arm-linux/include/liberdm/erdm.h)
Quote:
|
|
09-09-2008, 08:29 AM | #5 | |
Evangelist
Posts: 423
Karma: 1517132
Join Date: Jun 2006
Location: Madrid, Spain
Device: quaderno, remarkable2, yotaphone2, prs950, iliad, onhandpc, newton
|
Quote:
AFAIK, to do partial refreshes you have to open /dev/fd directly and do some ioctls. I don't know the ioctl's numbers or calling conventions, though. The resources I know that can be useful to learn how to do that are: - nalim's (Milan Votava) patch for 2.6 kernel has an implementation of the delta driver (display driver). http://www.kwik.cz/irex/ - use strace with the scribble program. AFAICT strace works in the iliad, and outputs to stdout every syscall, including ioctls. ltrace would be great too, but it doesn't work in the iliad, so we can't know what calls to liberdm are done in the scribble program. If you need more pointers on how to investigate this, just ask :-). |
|
Advert | |
|
09-09-2008, 10:17 AM | #6 | |
Member
Posts: 13
Karma: 10
Join Date: Jul 2008
Device: Illiad
|
Quote:
I'm also interested in it, I'm writing a small program like scribble. Although I call dmDisplay(dmCmdPriorUrgent, dmQTyping); each stylus touch the screen, but the display update too slow(about 0.5s later). Could you show me how to strace the scribble? Thank you very much |
|
09-12-2008, 10:47 AM | #7 | |
Evangelist
Posts: 423
Karma: 1517132
Join Date: Jun 2006
Location: Madrid, Spain
Device: quaderno, remarkable2, yotaphone2, prs950, iliad, onhandpc, newton
|
Quote:
I attach a version of strace compiled for the iliad. First of all, to strace scribble you have to install strace in the iliad (i.e in /usr/bin/). Then, substitute scribble with a script that calls strace and logs the results to a file Code:
ereader# cd /usr/bin ereader# mv scribble scribble.real ereader# echo "#!/bin/sh" > scribble ereader# echo "exec /usr/bin/strace /usr/bin/scribble 2> /mnt/free/scribble.strace.`date +%Y%m%d%H%M%S`" >> scribble ereader# chmod 755 scribble Code:
reader# echo "exec /usr/bin/strace /usr/bin/scribble 2> /mnt/free/scribble.strace" >> scribble Fist generate a baseline compare file; just open scribble and exit it. Copy the resulting /mnt/free/scrible.strace.<numbers> to your PC as scribble.strace.base Then start doing more interesting things (like jotting a dot, then a line, then a lot of lines, etc). Compare the resulting files with a source compare tool. If you're using Linux, meld is a good one ( http://meld.sourceforge.net/ ). With that you'll get what does the app for the updates. What is missing is the initialization part. You could look in the scribble.strace.base for a line that mentions /dev/fb and if it's opened, look for lines that contain the file descriptor number that the open returned. if it access the screen by other means, you will have to investigate. If you post here as an attachment some of the scribble.strace files, I can help analyzing them as time permits... Good luck! Last edited by Antartica; 09-12-2008 at 10:50 AM. |
|
09-12-2008, 05:33 PM | #8 |
JSR FFD2
Posts: 305
Karma: 1045
Join Date: Aug 2008
Location: Rotterdam, Netherlands, Europe, Sol 3
Device: iliad
|
One neat trick with strace: you can hook into a running process with 'trace -p pid'. Of course you miss the startup events, but you can 'see' what happens on files and sockets... You can trace the window manager, contentlister, etc...
When you run it like 'strace -o outfile -ff program' it creates one output file per process (handy when the main process forks). Antartica: any idea why ltrace doesn't work? I Tried several versions... They all fail with 'unexpected events' and stack overflows... :-( Happy tracing! |
09-13-2008, 10:59 AM | #9 | |
Evangelist
Posts: 423
Karma: 1517132
Join Date: Jun 2006
Location: Madrid, Spain
Device: quaderno, remarkable2, yotaphone2, prs950, iliad, onhandpc, newton
|
Quote:
Personally, the method I would use to do it would be examining the list of shared libraries,creating .so with stubs but with a trace prior to calling the "real" function the original library and load that .so with LD_LIBRARY_PRELOAD. But it seems that ltrace is far more smart that the method I supposed (it patches the elf in memory, it seems), so... I've just found this link about the internals of ltrace: http://people.redhat.com/~pmachata/r...ace-works.html Browsing the document, it says that ltrace uses the debugging facilities of the system (it's a special-purpose gdb)... perhaps there is a problem placing breakpoints :-?. |
|
09-13-2008, 12:02 PM | #10 |
Evangelist
Posts: 423
Karma: 1517132
Join Date: Jun 2006
Location: Madrid, Spain
Device: quaderno, remarkable2, yotaphone2, prs950, iliad, onhandpc, newton
|
Hansel, reading the above link (the one about ltrace), I've learned that redhat's Frysk tool comes with an alternative ltrace implementation. The website is:
http://sourceware.org/frysk/build/ |
09-15-2008, 04:36 AM | #11 |
JSR FFD2
Posts: 305
Karma: 1045
Join Date: Aug 2008
Location: Rotterdam, Netherlands, Europe, Sol 3
Device: iliad
|
Hi,
- I straced scribble (and ipdf) for a few hours... It doesn't show the interesting parts (I think), because they dont' involve system calls. - I spent a few hours experimenting with the ltrace sources (and googling)... without success and lots of segmentation faults ;-) - I'm sceptic about the frysk stuff... megaproject (10.000s files), abnormal quantity of dependencies. - For now I'll focus on making small apps with Gtk and Fox, refreshing with the liberdm stuff as described by Scotty1024 (Thanks Scotty!!!) https://www.mobileread.com/forums/sho...63&postcount=4 PS: maybe gdb is an alternative for ltrace. It is already available in scratchbox, and it allows for remote debugging over tcp PS2: FOX is a *very* nice cross-platform (C++ object oriented) gui toolkit. It supports Linux and windows. See: http://www.fox-toolkit.org/fox.html and https://www.mobileread.com/forums/showthread.php?t=28733 |
09-15-2008, 10:51 AM | #12 |
Evangelist
Posts: 423
Karma: 1517132
Join Date: Jun 2006
Location: Madrid, Spain
Device: quaderno, remarkable2, yotaphone2, prs950, iliad, onhandpc, newton
|
Hansel,
Sorry to hear that the hours spent stracing didn't bear fuit :-/. Didn't know the complexity of frysk; you're right that it's better not pursuing that path . About FOX: I reply in the other thread :-) Ok then, I go back to xepdmgr (and leave this partial update investigation for a time when new ideas to tackle it appear ;-). |
|
Similar Threads | ||||
Thread | Thread Starter | Forum | Replies | Last Post |
Screen refresh on KOBO | gandor62 | Kobo Reader | 13 | 08-28-2010 09:55 AM |
Help! Is there a way to force K2 screen refresh. | schex86 | Amazon Kindle | 5 | 02-02-2010 12:31 PM |
Screen Refresh Question | nremondelli | Amazon Kindle | 3 | 12-24-2008 10:55 AM |
How to force a screen refresh? | mkaluza | Sony Reader Dev Corner | 0 | 08-24-2008 05:54 PM |
iLiad Screen refresh | tomchek | iRex Developer's Corner | 7 | 07-27-2007 06:36 PM |