Hi,

I'm trying to get directfb and gtk going on an Atmel AT91SAM9263
buildroot and directfb-1.4.11/13. Some dfb examples work fine (df_neo,
df_palette), although the colours are off. Other examples (like
df_fire and df_particle) SIGSEG or SIGILL.

The demos start up fine with:

   ~~~~~~~~~~~~~~~~~~~~~~~~~~| DirectFB 1.4.13 |~~~~~~~~~~~~~~~~~~~~~~~~~~
        (c) 2001-2010  The world wide DirectFB Open Source Community
        (c) 2000-2004  Convergence (integrated media) GmbH
      ----------------------------------------------------------------

(*) DirectFB/Core: Single Application Core. (2011-07-19 17:38)
(*) Direct/Memcpy: Using armasm_memcpy()
(*) Direct/Thread: Started 'VT Switcher' (-1) [CRITICAL OTHER/OTHER
0/0] <8388608>...
(*) Direct/Thread: Started 'VT Flusher' (-1) [DEFAULT OTHER/OTHER 0/0]
<8388608>...
(*) DirectFB/FBDev: Found '' (ID 0) with frame buffer at 0x23940000,
150k (MMIO 0x00700000, 4k)
(*) Direct/Thread: Started 'Keyboard Input' (-1) [INPUT OTHER/OTHER
0/0] <8388608>...
(*) DirectFB/Input: Keyboard 0.9 (directfb.org)
(*) Direct/Thread: Started 'Linux Input' (-1) [INPUT OTHER/OTHER 0/0]
<8388608>...
(*) DirectFB/Input: gpio-keys (1) 0.1 (directfb.org)
(*) Direct/Thread: Started 'Linux Input' (-1) [INPUT OTHER/OTHER 0/0]
<8388608>...
(*) DirectFB/Input: Microsoft Microsoft 5-Button Mo (2) 0.1 (directfb.org)
(*) Direct/Thread: Started 'Hotplug with Linux Input' (-1) [INPUT
OTHER/OTHER 0/0] <8388608>...
(*) DirectFB/Input: Hot-plug detection enabled with Linux Input Driver
(*) DirectFB/Graphics: Generic Software Rasterizer 0.6 (directfb.org)
(*) DirectFB/Core/WM: Default 0.3 (directfb.org)
(*) FBDev/Mode: Setting 320x240 RGB16
(*) FBDev/Mode: Switched to 320x240 (virtual 320x240) at 16 bit
(RGB16), pitch 640
(*) FBDev/Mode: Setting 320x240 RGB16
(*) FBDev/Mode: Switched to 320x240 (virtual 320x240) at 16 bit
(RGB16), pitch 640

then they fail for some reason.

For df_fire gdb reports:

Program received signal SIGSEGV, Segmentation fault.
memset () at libc/string/arm/memset.S:89
89              stmia   a4!, {a2, ip}
(gdb) bt
#0  memset () at libc/string/arm/memset.S:89
#1  0x40247f9c in Cop_to_Aop_8 (gfxs=0x31a28) at generic.c:391
#2  0x40272dd8 in gFillRectangle (state=0x1c0dc, rect=0xbe8b0a18) at
generic_fill_rectangle.c:96
#3  0x401be7e4 in dfb_gfxcard_fillrectangles (rects=0x1c074, num=1,
state=0x1c0dc) at gfxcard.c:1053
#4  0x401f1d8c in IDirectFBSurface_Clear (thiz=0x1bf30, r=0 '\000',
g=0 '\000', b=0 '\000', a=255 '\377') at idirectfbsurface.c:729
#5  0x00009608 in init_application (argc=0xbe8b0b54, argv=0xbe8b0b50)
at df_fire.c:405
#6  0x000087f8 in main (argc=1, argv=0xbe8b0db4) at df_fire.c:88
(gdb) up
#1  0x40247f9c in Cop_to_Aop_8 (gfxs=0x31a28) at generic.c:391
391          memset( gfxs->Aop[0], gfxs->Cop, gfxs->length );
(gdb) print *gfxs
$1 = {funcs = {0x40247f64 <Cop_to_Aop_8>, 0 <repeats 31 times>},
length = 320, Slen = 0, Dlen = 0, dst_org = {0x4005e800, 0x0, 0x0},
src_org = {0x0, 0x0, 0x0}, dst_pitch = 640, src_pitch = 0,
  dst_bpp = 1, src_bpp = 0, dst_caps = 20, src_caps = DSCAPS_NONE,
src_format = DSPF_UNKNOWN, dst_format = DSPF_LUT8, dst_height = 240,
src_height = 0, dst_field_offset = 76800,
  src_field_offset = 0, color = {a = 255 '\377', r = 0 '\000', g = 0
'\000', b = 0 '\000'}, Aop = {0x4005ef80, 0x0, 0x0}, Bop = {0x0, 0x0,
0x0}, Cop = 0, Astep = 1, Bstep = 1, YCop = 0 '\000',
  CbCop = 0 '\000', CrCop = 0 '\000', Aop_field = 0, Bop_field = 0,
AopY = 3, BopY = 0, s = 0, t = 0, Dkey = 0, Skey = 0, Alut = 0x1a170,
Blut = 0x0, ABstart = 0x0, ABsize = 0, Aacc = 0x0,
  Bacc = 0x0, Tacc = 0x0, Cacc = {RGB = {b = 0, g = 0, r = 0, a = 0},
YUV = {u = 0, v = 0, y = 0, a = 0}}, SCacc = {RGB = {b = 0, g = 0, r =
0, a = 0}, YUV = {u = 0, v = 0, y = 0, a = 0}},
  Xacc = 0x0, Yacc = 0x0, Dacc = 0x0, Sacc = 0x0, Sop = 0x0, Slut =
0x0, Ostep = 1, SperD = 0, TperD = 0, Xphase = 0, need_accumulator =
false, trans = 0x0, num_trans = 0}

For df_particle:

Program received signal SIGILL, Illegal instruction.
0x402aa04c in Cop_to_Aop_16 (gfxs=0x429d8) at generic.c:413
413               --w;
(gdb) bt
#0  0x402aa04c in Cop_to_Aop_16 (gfxs=0x429d8) at generic.c:413
#1  0x402d4dd8 in gFillRectangle (state=0x42794, rect=0xbeb08940) at
generic_fill_rectangle.c:96
#2  0x402207e4 in dfb_gfxcard_fillrectangles (rects=0x4272c, num=1,
state=0x42794) at gfxcard.c:1053
#3  0x40253d8c in IDirectFBSurface_Clear (thiz=0x425e8, r=255 '\377',
g=255 '\377', b=255 '\377', a=255 '\377') at idirectfbsurface.c:729
#4  0x00009108 in main (argc=1, argv=0xbeb08da4) at df_particle.c:185
(gdb) print *gfxs
$1 = {funcs = {0x402a9fa4 <Cop_to_Aop_16>, 0 <repeats 31 times>},
length = 320, Slen = 0, Dlen = 0, dst_org = {0x1cde0, 0x0, 0x0},
src_org = {0x0, 0x0, 0x0}, dst_pitch = 640, src_pitch = 0,
  dst_bpp = 2, src_bpp = 0, dst_caps = 20, src_caps = DSCAPS_NONE,
src_format = DSPF_UNKNOWN, dst_format = DSPF_RGB16, dst_height = 240,
src_height = 0, dst_field_offset = 76800,
  src_field_offset = 0, color = {a = 255 '\377', r = 255 '\377', g =
255 '\377', b = 255 '\377'}, Aop = {0x263e0, 0x0, 0x0}, Bop = {0x0,
0x0, 0x0}, Cop = 65535, Astep = 1, Bstep = 1,
  YCop = 0 '\000', CbCop = 0 '\000', CrCop = 0 '\000', Aop_field = 0,
Bop_field = 0, AopY = 60, BopY = 0, s = 0, t = 0, Dkey = 0, Skey = 0,
Alut = 0x0, Blut = 0x0, ABstart = 0x0, ABsize = 0,
  Aacc = 0x0, Bacc = 0x0, Tacc = 0x0, Cacc = {RGB = {b = 0, g = 0, r =
0, a = 0}, YUV = {u = 0, v = 0, y = 0, a = 0}}, SCacc = {RGB = {b = 0,
g = 0, r = 0, a = 0}, YUV = {u = 0, v = 0, y = 0,
      a = 0}}, Xacc = 0x0, Yacc = 0x0, Dacc = 0x0, Sacc = 0x0, Sop =
0x0, Slut = 0x0, Ostep = 1, SperD = 0, TperD = 0, Xphase = 0,
need_accumulator = false, trans = 0x0, num_trans = 0}

For gtk-demo:
Program received signal SIGSEGV, Segmentation fault.
0x406a5058 in Cop_to_Aop_16 (gfxs=0xf9310) at generic.c:414
414               ++D;
(gdb) bt
#0  0x406a5058 in Cop_to_Aop_16 (gfxs=0xf9310) at generic.c:414
#1  0x406cfdd8 in gFillRectangle (state=0xf2fa4, rect=0xbe825578) at
generic_fill_rectangle.c:96
#2  0x4061b7e4 in dfb_gfxcard_fillrectangles (rects=0xbe82563c, num=1,
state=0xf2fa4) at gfxcard.c:1053
#3  0x4065032c in IDirectFBSurface_FillRectangle (thiz=0xf2df8, x=256,
y=30, w=340, h=366) at idirectfbsurface.c:1314
#4  0x4017cd84 in gdk_window_impl_directfb_begin_paint_region
(paintable=0x79910, window=0x1458b0, region=0x171b80) at
gdkwindow-directfb.c:2814
#5  0x401543d0 in IA__gdk_window_begin_paint_region (window=0x1458b0,
region=0x171b80) at gdkwindow.c:2959
#6  0x4032e364 in IA__gtk_main_do_event (event=0xbe825758) at gtkmain.c:1608
#7  0x40159420 in _gdk_window_process_updates_recurse
(window=0x1458b0, expose_region=0x171b80) at gdkwindow.c:5429
#8  0x401592fc in _gdk_window_process_updates_recurse
(window=0x145800, expose_region=0xf1260) at gdkwindow.c:5402
#9  0x401592fc in _gdk_window_process_updates_recurse (window=0x766e0,
expose_region=0x171a80) at gdkwindow.c:5402
#10 0x401592fc in _gdk_window_process_updates_recurse (window=0x76160,
expose_region=0xf12e0) at gdkwindow.c:5402
#11 0x4017cf5c in _gdk_windowing_window_process_updates_recurse
(window=0x76160, region=0xf12e0) at gdkwindow-directfb.c:2939
#12 0x40159718 in gdk_window_process_updates_internal (window=0x76160)
at gdkwindow.c:5588
#13 0x401599c0 in IA__gdk_window_process_all_updates () at gdkwindow.c:5696
#14 0x40281fcc in gtk_container_idle_sizer (data=0x0) at gtkcontainer.c:1360
#15 0x4012abc4 in gdk_threads_dispatch (data=0xee4b0) at gdk.c:512
#16 0x40a67928 in g_idle_dispatch (source=0xee8e0, callback=0x4012ab44
<gdk_threads_dispatch>, user_data=0xee4b0) at gmain.c:4545
#17 0x40a62c64 in g_main_dispatch (context=0x7f3d8) at gmain.c:2440
#18 0x40a64580 in g_main_context_dispatch (context=0x7f3d8) at gmain.c:3013
#19 0x40a64a90 in g_main_context_iterate (context=0x7f3d8, block=1,
dispatch=1, self=0x3f3d0) at gmain.c:3091
#20 0x40a653c0 in g_main_loop_run (loop=0x1504c8) at gmain.c:3299
#21 0x4032d81c in IA__gtk_main () at gtkmain.c:1256
#22 0x0002d8d0 in main (argc=1, argv=0xbe825da4) at main.c:1010
(gdb) print *gfxs
$1 = {funcs = {0x406a4fa4 <Cop_to_Aop_16>, 0 <repeats 31 times>},
length = 340, Slen = 0, Dlen = 0, dst_org = {0x42087008, 0x0, 0x0},
src_org = {0x0, 0x0, 0x0}, dst_pitch = 1200, src_pitch = 0,
  dst_bpp = 2, src_bpp = 0, dst_caps = DSCAPS_SYSTEMONLY, src_caps =
DSCAPS_NONE, src_format = DSPF_UNKNOWN, dst_format = DSPF_RGB16,
dst_height = 400, src_height = 0, dst_field_offset = 240000,
  src_field_offset = 0, color = {a = 255 '\377', r = 255 '\377', g =
255 '\377', b = 255 '\377'}, Aop = {0x420a25f8, 0x0, 0x0}, Bop = {0x0,
0x0, 0x0}, Cop = 65535, Astep = 1, Bstep = 1,
  YCop = 0 '\000', CbCop = 0 '\000', CrCop = 0 '\000', Aop_field = 0,
Bop_field = 0, AopY = 93, BopY = 0, s = 0, t = 0, Dkey = 0, Skey = 0,
Alut = 0x0, Blut = 0x0, ABstart = 0x0, ABsize = 0,
  Aacc = 0x0, Bacc = 0x0, Tacc = 0x0, Cacc = {RGB = {b = 0, g = 0, r =
0, a = 0}, YUV = {u = 0, v = 0, y = 0, a = 0}}, SCacc = {RGB = {b = 0,
g = 0, r = 0, a = 0}, YUV = {u = 0, v = 0, y = 0,
      a = 0}}, Xacc = 0x0, Yacc = 0x0, Dacc = 0x0, Sacc = 0x0, Sop =
0x0, Slut = 0x0, Ostep = 1, SperD = 0, TperD = 0, Xphase = 0,
need_accumulator = false, trans = 0x0, num_trans = 0}

The common denominator here seems to me to be the Cop_to_Aop_*
functions. Can anyone point me in a direction in order to debug this
further?

Thanks
_______________________________________________
directfb-users mailing list
directfb-users@directfb.org
http://mail.directfb.org/cgi-bin/mailman/listinfo/directfb-users

Reply via email to