Hi Niels!
Thanks for your suggestion, it led me to a working solution. There
were three issues I needed to workaround.
1) I needed to set "pixelformat=RGB16" in DFBARGS to get around the
panning error message.
Fbdev was then able to create a 640x960 virtual surface, but programs
that use Flip() still get the signal 11 invalid permissions crash.
2) df_andi and df_neo need to use DSCAPS_DOUBLE instead of TRIPLE in
addition to RGB16 in DFBARGS. Then they run fine, but with severe
flickering. With RGB32 surfaces DSCAPS_DOUBLE still provokes the
invalid permissions crash.
3) Flip() has to be called with DSFLIP_BLIT to get rid of the
flickering. Neither ONSYNC, WAITFORSYNC, WAIT, nor NONE seem to
work. BLIT reduces the performance of df_andi from about 46 to 26
FPS in my debug build though.
For 1) and 2) the root cause might be in the fbdev driver trying to
allocate video memory that isn't really available. Not sure about
3), maybe there's an omap ioctl that isn't being called or isn't
working. I've built using --with-gfxdrivers=omap and without but it
doesn't seem to make a difference.
I've also tried different settings of the desktop-buffer-mode runtime
config option without it making a difference in any of the results.
If you have suggestions for fixes for the root causes I could try to
test them and generate a patch. Paul Morton's fix is already in the
source code for fbdev.c that I got through git.
Thanks -- Mark
On Apr 14, 2009, at 3:38 AM, Niels Roest wrote:
Hi Mark.
I recall a statement of Paul Morton on this that might explain,
cf. his mail march 31th.
It has to do with this section of code:
dsc.caps = DSCAPS_PRIMARY | DSCAPS_TRIPLE;
err = dfb->CreateSurface( dfb, &dsc, &primary );
if (err) {
dsc.caps = DSCAPS_PRIMARY | DSCAPS_DOUBLE;
DFBCHECK(dfb->CreateSurface( dfb, &dsc, &primary ));
}
which behaves differently now with a patch in fbdev code.
Can you try to remove the TRIPLE piece and immediately try DOUBLE?
hth
Niels
Mark Hood wrote:
Hi folks,
I've built DirectFB 1.3.1 from the git repo on a BeagleBoard
running Angstrom, along with the directfb example programs. Many
of these programs run fine (df_dok, df_window, df_particle...) but
a few of them (df_andi, df_neo...) die with:
"Caught signal 11 (at 0x40c68000, invalid permissions)"
before any graphics is displayed, right after fbdevLock() and
dfb_surface_pool_lock() are called.
Before I go deep into the problem, has anybody experienced
anything similar and have a few hints?
Thanks!
-- Mark
_______________________________________________
directfb-dev mailing list
directfb-dev@directfb.org
http://mail.directfb.org/cgi-bin/mailman/listinfo/directfb-dev
--
..------------------------------------------.
| DirectFB - Hardware accelerated graphics |
| http://www.directfb.org/ |
"------------------------------------------"
_______________________________________________
directfb-dev mailing list
directfb-dev@directfb.org
http://mail.directfb.org/cgi-bin/mailman/listinfo/directfb-dev
_______________________________________________
directfb-dev mailing list
directfb-dev@directfb.org
http://mail.directfb.org/cgi-bin/mailman/listinfo/directfb-dev