I try to use ggi by setting SDL_VIDERDRIVER=ggi and try some
SDL games to test it,which result in seg.fault for my computer
(IBM Thinkpad 390E using neomagic ,Debian GNU/Linux sid,XFree86 4.1.0
)
here is the result of GGI_DEBUG=255 SDL_VIDEODRIVER=ggi some_sdl_program
LibGGI: Debugging=255
LibGGI: ggiOpen("(null)") called
LibGGI: ggiOpen("display-x::0.0") called
LibGGI: Loading driver display-x::0.0
LibGGI: _ggiAddDL(0x805c400, "display-x", ":0.0", 0x1) called
LibGGI: _ggiLoadDL("/usr/lib/ggi/display/X.so", 0x1) called
LibGGI: hand.handle=0x805df70
LibGGI: &(GGIdl_X) = 0x40018614
LibGGI: hand.open = 0x40017e78
LibGGI: hand.exit = 0x400185e0
LibGGI: hand.close = 0x40017d44
LibGGI: _ggiLoadDL returned 0 (0x805e210)
LibGGI: X-target wants display :0.0
LibGGI: X: has display :0.0
LibGGI: X: has screen 0
LibGGI: X: Enabling use of XSHM extension
LibGII: Allocating input structure
LibGII: _giiEvQueueAllocate(0x805f738) called
LibGII: Got queue_set: 0x805f8c0
LibGII: giiOpen adding "xwin", "", 0xbfffdc68
LibGII: _giiLoadDL("xwin","(NULL)") called
LibGII: hand.handle=0x805f938
LibGII: hand.init=0x4001ed50
LibGII: _giiLoadDL returned 0x805fbb8
LibGII: GIIdlinit(0x805f738) called for input-xwin
LibGII: _giiEvQueueAdd(0x805f738, 0xbfffd654) called
LibGII: _giiEvQueueSetup alloced 0x805fda0
LibGII: Adding event type 1, size 116 at pos 0
LibGII: _giiEvQueueAdd(0x805f738, 0xbfffd644) called
LibGII: Adding event type 1, size 116 at pos 1
LibGII: 0=dlh->init(0x805f738,"",0xbfffdc68) - xwin
LibGII: _giiUpdateCache(0x805f738) called
LibGII: Found fd: 3
LibGII: giiJoinInputs((nil), 0x805f738) called
LibGII: _giiUpdateCache(0x805f738) called
LibGII: Found fd: 3
LibGGI: _ggiAddDL(0x805c400, "helper-mansync", "(null)", 0x0) called
LibGGI: _ggiLoadDL("/usr/lib/ggi/display/mansync.so", 0x0) called
LibGGI: hand.handle=0x8061dd8
LibGGI: &(GGIdl_mansync) = 0x40026384
LibGGI: hand.open = 0x40026310
LibGGI: hand.exit = (nil)
LibGGI: hand.close = (nil)
LibGGI: _ggiLoadDL returned 0 (0x8062060)
LibGGI: 0 = dlh->open(0x805c400, 0x8062060, "(null)", 0x805f6a0, 0) -
/usr/lib/ggi/display/mansync.so
LibGGI: _GGI_mansync_init(): nrvisuals = 1
LibGGI: X-target fully up
LibGGI: 0 = dlh->open(0x805c400, 0x805e210, ":0.0", (nil), 1) -
/usr/lib/ggi/display/X.so
LibGGI: ggiOpen: returning 0x805c400
LibGGI: Loading extra inputs/filters for display-x::0.0
LibGGI: Checking GGI_INPUT_DISPLAY_X_1 : (nil)
LibGGI: Checking GGI_INPUT_DISPLAY_X : (nil)
LibGGI: Checking GGI_INPUT : (nil)
LibGGI: ggiClose("0x805c400") called
LibGGI: ggiClose: closing
LibGII: giiClose(0x805f738) called
LibGII: _giiEvQueueDestroy(0x805f738) called
LibGII: Destroying 0x805f8c0, 0x805f8c4
LibGII: _giiEvQueueDestroy done
LibGII: GII_xwin_close(0x805f738) called
LibGGI: _GGI_mansync_stop() (MANSYNC_CHILD) called.
LibGGI: _ggiZapDL(0x805c400, 0x805c4b8) called
LibGGI: Disposing "helper-mansync"
LibGGI: Closing handle: 0x8061dd8
LibGGI: _ggiZapDL(0x805c400, 0x805dcdc) called
LibGGI: _ggiZapDL(0x805c400, 0x805ddcc) called
LibGGI: _ggiZapDL(0x805c400, 0x805de2c) called
LibGGI: _ggiZapDL(0x805c400, 0x805de54) called
LibGGI: Disposing "display-x"
LibGGI: X-target closed
LibGGI: Closing handle: 0x805df70
LibGGI: ggiClose: done!
LibGGI: ggiOpen("(null)") called
LibGGI: ggiOpen("display-x::0.0") called
LibGGI: Loading driver display-x::0.0
LibGGI: _ggiAddDL(0x805c400, "display-x", ":0.0", 0x1) called
LibGGI: _ggiLoadDL("/usr/lib/ggi/display/X.so", 0x1) called
LibGGI: hand.handle=0x805e220
LibGGI: &(GGIdl_X) = 0x40018614
LibGGI: hand.open = 0x40017e78
LibGGI: hand.exit = 0x400185e0
LibGGI: hand.close = 0x40017d44
LibGGI: _ggiLoadDL returned 0 (0x805e4c0)
LibGGI: X-target wants display :0.0
LibGGI: X: has display :0.0
LibGGI: X: has screen 0
LibGGI: X: Enabling use of XSHM extension
LibGII: Allocating input structure
LibGII: _giiEvQueueAllocate(0x805fa00) called
LibGII: Got queue_set: 0x805fb88
LibGII: giiOpen adding "xwin", "", 0xbfffcc38
LibGII: _giiLoadDL("xwin","(NULL)") called
LibGII: hand.handle=0x805fc00
LibGII: hand.init=0x4001ed50
LibGII: _giiLoadDL returned 0x805fe80
LibGII: GIIdlinit(0x805fa00) called for input-xwin
LibGII: _giiEvQueueAdd(0x805fa00, 0xbfffc624) called
LibGII: _giiEvQueueSetup alloced 0x8060068
LibGII: Adding event type 1, size 116 at pos 0
LibGII: _giiEvQueueAdd(0x805fa00, 0xbfffc614) called
LibGII: Adding event type 1, size 116 at pos 1
LibGII: 0=dlh->init(0x805fa00,"",0xbfffcc38) - xwin
LibGII: _giiUpdateCache(0x805fa00) called
LibGII: Found fd: 3
LibGII: giiJoinInputs((nil), 0x805fa00) called
LibGII: _giiUpdateCache(0x805fa00) called
LibGII: Found fd: 3
LibGGI: _ggiAddDL(0x805c400, "helper-mansync", "(null)", 0x0) called
LibGGI: _ggiLoadDL("/usr/lib/ggi/display/mansync.so", 0x0) called
LibGGI: hand.handle=0x80620a0
LibGGI: &(GGIdl_mansync) = 0x40026384
LibGGI: hand.open = 0x40026310
LibGGI: hand.exit = (nil)
LibGGI: hand.close = (nil)
LibGGI: _ggiLoadDL returned 0 (0x8062328)
LibGGI: 0 = dlh->open(0x805c400, 0x8062328, "(null)", 0x805f968, 0) -
/usr/lib/ggi/display/mansync.so
LibGGI: _GGI_mansync_init(): nrvisuals = 1
LibGGI: X-target fully up
LibGGI: 0 = dlh->open(0x805c400, 0x805e4c0, ":0.0", (nil), 1) -
/usr/lib/ggi/display/X.so
LibGGI: ggiOpen: returning 0x805c400
LibGGI: Loading extra inputs/filters for display-x::0.0
LibGGI: Checking GGI_INPUT_DISPLAY_X_2 : (nil)
LibGGI: Checking GGI_INPUT_DISPLAY_X : (nil)
LibGGI: Checking GGI_INPUT : (nil)
LibGGI: ggiCheckMode(0x805c400, 0xbffff374) called
LibGGI: _GGIbasiccheck: defgt = 0x2001010, tmgt = 0x0
LibGGI: Default visual - ID: 0x23, depth: 16, class: 4
LibGGI: ggiSetMode(0x805c400, 640x480.V640x480.F1.D1x1.[C16/16]) called
LibGGI: ggiSetMode: trying (vis 640x480 virt 640x480)
LibGGI: ggiSetMode: trying2 (vis 640x480 virt 640x480)
LibGGI: ggiSetMode: calling 0x400193ac
LibGGI: _GGIbasiccheck: defgt = 0x2001010, tmgt = 0x2001010
LibGGI: Default visual - ID: 0x23, depth: 16, class: 4
LibGGI: _GGIbasiccheck: gt = 0x2001010
LibGGI: Visual - ID: 0x23, depth: 16, class: 4
LibGGI: _GGIbasiccheck: defgt = 0x2001010, tmgt = 0x2001010
LibGGI: Default visual - ID: 0x23, depth: 16, class: 4
LibGGI: _GGIbasiccheck: gt = 0x2001010
LibGGI: Visual - ID: 0x23, depth: 16, class: 4
LibGGI: X: has window 0x3200006
LibGGI: X: Prepare to resize.
LibGGI: X: Resize
LibGGI: X: Creating shm image #0
LibGGI: X: shmat success at 0x405b0000.
LibGGI: X: ShmImage #0 allocated
LibGGI: X GC allocated.
LibGGI: X: About to map
LibGGI: X: Window Mapped
LibGGI: X: Sync
LibGGI: X: Sync done
LibGGI: _ggiZapDL(0x805c400, 0x805e02c) called
LibGGI: _ggiZapDL(0x805c400, 0x805e11c) called
LibGGI: _ggiZapDL(0x805c400, 0x805e17c) called
LibGGI: _ggiAddDL(0x805c400, "generic-stubs", "", 0x1) called
LibGGI: _ggiLoadDL("/usr/lib/ggi/default/stubs.so", 0x1) called
LibGGI: hand.handle=0x80625b0
LibGGI: &(GGIdl_stubs) = 0x40648da4
LibGGI: hand.open = 0x40648b60
LibGGI: hand.exit = (nil)
LibGGI: hand.close = (nil)
LibGGI: _ggiLoadDL returned 0 (0x8062838)
LibGGI: 0 = dlh->open(0x805c400, 0x8062838, "", (nil), 4) -
/usr/lib/ggi/default/stubs.so
LibGGI: X: GGIsetmode: success in loading generic-stubs ()
LibGGI: _ggiAddDL(0x805c400, "generic-color", "", 0x1) called
LibGGI: _ggiLoadDL("/usr/lib/ggi/default/color.so", 0x1) called
LibGGI: hand.handle=0x80628c0
LibGGI: &(GGIdl_color) = 0x4064cec8
LibGGI: hand.open = 0x4064cc78
LibGGI: hand.exit = (nil)
LibGGI: hand.close = 0x4064ce9c
LibGGI: _ggiLoadDL returned 0 (0x8062b60)
LibGGI: 0 = dlh->open(0x805c400, 0x8062b60, "", (nil), 2) -
/usr/lib/ggi/default/color.so
LibGGI: X: GGIsetmode: success in loading generic-color ()
LibGGI: _ggiAddDL(0x805c400, "generic-linear-16", "", 0x1) called
LibGGI: _ggiLoadDL("/usr/lib/ggi/default/linear_16.so", 0x1) called
LibGGI: hand.handle=0x8062c20
LibGGI: &(GGIdl_linear_16) = 0x40652500
LibGGI: hand.open = 0x40652380
LibGGI: hand.exit = (nil)
LibGGI: hand.close = (nil)
LibGGI: _ggiLoadDL returned 0 (0x8062eb0)
LibGGI: 0 = dlh->open(0x805c400, 0x8062eb0, "", (nil), 4) -
/usr/lib/ggi/default/linear_16.so
LibGGI: X: GGIsetmode: success in loading generic-linear-16 ()
LibGGI: ggiIndicateChange(0x805c400, 0x1) called
LibGGI: ggiIndicateChange: 1 changed for 0x805c400.
LibGGI: ggiSetMode: set to frame 0, origin = {0,0}
LibGGI: ggiSetMode: set GC
LibGGI: _default_error() called
LibGGI: ggiSetMode: success (vis 640x480 virt 640x480)
LibGGI: _default_error() called
LibGGI: _default_error() called
LibGGI: ggiSetMode: SetWriteFrame 0
LibGGI: ggiSetMode: frame address: 0x405b0000
LibGGI: ggiSetMode: FillScreen 0
LibGGI: GGI_X_flush(0x805c400, 1) called
and then Seg.fault occur.
However,there is no problem on my deskop computer,
which also use Debian sid with XFree86 4.1.0 using Banshee as
display card