Menu

#23 flying_ggis freezes machine using fbdev

version 2.2.x
open
nobody
libggi (22)
5
2006-07-19
2006-07-19
No

Minsub LEE reported on IRC that his pc froze when he
launched flying_ggis with fbdev target. Here are some
infos about his machine:

Kernel : linux-2.6.15-26
Distrib: Ubuntu Dapper

He also have DirectFB-0.9.25-1 installed.

The strange part is that the ggi demos ran without a
problem. The difference between them is that in demos
we set the mode by hand (with nearly all the members
set to GGI_AUTO), and in flying_ggis we call
ggiParseMode("", &vis_mode).
So we used the demos version, and Minsub reported that
everything worked. I attached the diff.

The logs are available at the following location:
http://splug.byus.net/wiki/wiki.php/msg

Discussion

  • vincent cruz

    vincent cruz - 2006-07-19

    diff file

     
  • vincent cruz

    vincent cruz - 2006-07-19

    Logged In: YES
    user_id=476156

    Here's the diff

     
  • Minsub LEE

    Minsub LEE - 2006-07-21

    Logged In: YES
    user_id=1559541

    "/demo/stars" has a same problem. It uses ggiSetSimpleMode().
    So I put a line from demo, set mode menually. After puting
    that, it is working well. Fedora5 also has a same problem.

    ***Below is line what I used, Mooz told me***

    ggi_mode mode = { /* This will cause the default mode.. */
    1, /* 1 frame [???] */
    {GGI_AUTO,GGI_AUTO}, /* Default size */
    {GGI_AUTO,GGI_AUTO}, /* Virtual */
    {0,0}, /* size in mm don't care */
    GT_AUTO, /* Mode */
    {GGI_AUTO,GGI_AUTO} /* Font size */
    };

     
  • Peter Rosin

    Peter Rosin - 2006-07-25

    Logged In: YES
    user_id=972775

    From looking at the logs, the difference seems to be that
    checkmode does not set frames to a non-zero number. This
    makes setmode misbehave. Now, checkmode is not intended to
    return GGI_AUTO for any mode members, but that shouldn't
    really matter, but it does since setmode calls checkmode
    internally to fill in any GGI_AUTO members (and to
    otherwise check if the requested mode works). And the
    second call to checkmode doesn't fill in the number of
    frames either, so setmode ends up trying to set a mode
    with zero frames which doesn't work...

    The culprit seems to be these lines:

    maxframes = priv->orig_fix.smem_len /
    (sug->virt.x * sug->virt.y *
    GT_ByPP(sug->graphtype));
    if (sug->frames > maxframes) {
    sug->frames = maxframes;
    }

    at the end of the _GGI_fbdev_checkmode_adjust function in
    libggi/display/fbdev/mode.c.

    Can someone check if commenting out those lines works
    around the problem?

     

Log in to post a comment.

MongoDB Logo MongoDB