Index: [thread] [date] [subject] [author]
  From: Jan Kneschke <Jan.Kneschke@kiel.netsurf.de>
  To  : ggi-develop@eskimo.com
  Date: Thu, 30 Jul 1998 23:55:39 +0200 (MEST)

(AA) i've seen the stars, too

you know that i triggered seven bugs in the libaa-target. after you
explanations i could reduce them to bug 5 and 6.

-- point 5: Killed
-- point 6: speed: vis/virt-res != LPB-window

today, i've done some investigations in bug 5. 

i traced the program until i landed in display/aa/mode.c:GGIFlush

int GGIflush(ggi_visual *vis)
{
        DPRINT("disposing: -1.0.5.0\n");
        if (MANSYNC_ISASYNC && !(LIBGGI_FLAGS(vis) & GGIFLAG_ASYNC)) {
                DPRINT("disposing: -1.0.5.1\n");
                _mansync_start(vis);

        } else if (!MANSYNC_ISASYNC && (LIBGGI_FLAGS(vis) & GGIFLAG_ASYNC)) {
                DPRINT("disposing: -1.0.5.2\n");
                _mansync_stop(vis);
        }
        DPRINT("disposing: -1.0.5.3\n");
        return MANSYNC_ISASYNC;
}

i turned LIBGGI_DEBUG on (255) and 'grep'ed the output for "-1.0.5.0":

visual.c:73: disposing: -1.0.5
mode.c:122: disposing: -1.0.5.0
mode.c:128: disposing: -1.0.5.2

as you can see the only occurence of "-1.0.5.0" (aka "entering GGIFlush") is
for calling "_mansync_stop" and if you look into
"display/commom/mansync.inc" you'll see the following:

static void _mansync_stop(ggi_visual *vis)
{
        _mansync_ignore(vis);
        kill(MANSYNC_CHILDPID, SIGKILL);		<<--
        waitpid(MANSYNC_CHILDPID, NULL, 0);
        signal(MANSYNC_SIGNAL, MANSYNC_OLDHANDLER);
        MANSYNC_ISASYNC = 1;
}


... das kind war tot.
(engl. ... the child was dead.)				(goethe, der erlkönig)

the problem is that _mansync_start has never been called. sad but true, we
killed outselves.

ok, i transformed to X-style to aa. this bug is fixed now.

++ point 5 is fixed now.

after some crossreading in aalib and the libaa-target i got the last point
fixed, too

++ point 6 is fixed now.

the last step is an success-report for:
every demo-proggi is working except:

- checkmode, titler: dumps core, _GGIFlush (aahook==-1)
- showaccel: perhaps it is ok, but the output isn't really definable
- mandel: i don't what should happen. if i call it with 'mandel 0 1 0 1' it
starts wasting cpu power and the only thing i see is ... nothing.
- sndshow: locks my system hard under svgalib, so i don't wanna try it now.
- vr: i just see a blank screen and then vr finishes.
- warp: displays its output somewhere else, that means that i can see some
usefull stuff at the end flashing over my screen. 

one small problem occured at the end:
demo and testpattern are requesting default-modes and they get the same mode
back, but testpattern uses 40x12.5 pixels while demo is using the full
80x25. any hints ??

i'll commit my patches right now.

thats all
  Jan

--- 
       Project: GGI - S3-Vision-driver -- http://www.ggi-project.org/
         -)=  Jan (Weigon) Kneschke -- Kiel -- Northern Germany =(-

Index: [thread] [date] [subject] [author]