On Mon, Mar 25, 2013 at 1:48 PM, Diego Guella
<diego.gue...@sircomtech.com>wrote:

> **
> Hello list,
>
> I experience a crash when calling the first drawing function, after a call
> to Flip() with a double buffered primary surface.
>
> The test code is this: (it is a little modification to the tutorial at
> http://www.directfb.org/docs/DirectFB_Tutorials/simple.html ):
> ----------
> #include <stdio.h>
> #include <unistd.h>
> #include <directfb.h>
> static IDirectFB *dfb = NULL;      // This is the super interface, it's
> the entry point to all functionality.
> static IDirectFBSurface *primary = NULL;   // The primary surface, i.e.
> the "screen".
>              // In cooperative level DFSCL_FULLSCREEN it's the surface of
> the primary layer.
>
> static int screen_width  = 0;      // Store the width and height of the
> primary surface here to support all resolutions.
> static int screen_height = 0;
>
> // An error checking macro for a call to DirectFB.
> // It is suitable for very simple apllications or tutorials.
> // In more sophisticated applications this general error checking should
> not be used.
> #define DFBCHECK(x...) {          \
>  DFBResult err = x;           \
>  if (err != DFB_OK) {          \
>   fprintf( stderr, "%s <%d>:\n\t", __FILE__, __LINE__ ); \
>   DirectFBErrorFatal( #x, err );       \
>  }               \
> }
>
> int main (int argc, char **argv) {
>  DFBSurfaceDescription dsc;           // A surface description is needed
> to create a surface.
>  DFBCHECK(DirectFBInit (&argc, &argv));        // Initialize DirectFB
> passing argc and argv
>                   // to support the standard DirectFB command line options.
>                   // DirectFB command line options will be stripped out
> automatically.
>
>  DFBCHECK(DirectFBCreate (&dfb));         // Create the super interface.
>  DFBCHECK(dfb->SetCooperativeLevel(dfb, DFSCL_FULLSCREEN));   // We want
> to go fullscreen,
>                   // the primary surface will be exclusive access to the
> surface of the primary layer.
>                   // If you disable this call a window will be created
> implicitly,
>                   // no further changes needed, flipping the surface
> updates the window.
>
>  dsc.flags = DSDESC_CAPS;           // Specify which fields of the struct
> are set.
>  dsc.caps  = DSCAPS_PRIMARY | DSCAPS_FLIPPING;      // Fill out fields, in
> this example we want to have a flippable primary surface.
>
>  DFBCHECK(dfb->CreateSurface( dfb, &dsc, &primary ));    // Create the
> primary surface by passing our surface description.
>  DFBCHECK(primary->GetSize (primary, &screen_width, &screen_height)); //
> We have exclusive access to the primary layer's surface now,
>                    // get the width and height of the surface, i.e. the
> screen resolution.
>
>  unsigned int y=0;
>
> while (1) {
>  DFBCHECK (primary->SetColor (primary, 0x00, 0x00, 0x00, 0xff));
>  DFBCHECK(primary->FillRectangle (primary, 0, 0, screen_width,
> screen_height)); // Clear the screen by filling a rectangle with the size
> of the surface.
>                      // Default color is black, default drawing flags are
> DSDRAW_NOFX.
>
>  DFBCHECK (primary->SetColor (primary, 0x80, 0x80, 0xff, 0xff));     //
> Current color is black, so we have to set another one before.
>  DFBCHECK (primary->DrawLine (primary,
>         0, y,
>         screen_width - 1, y)
>         );             // Draw a horizontal line in the middle of the
> screen.
>
>  DFBCHECK (primary->Flip (primary, NULL, 0));         // Now flip the
> whole surface to make things visible.
>  sleep (5);                  // Wait a bit to see the result before
> exiting the example application.
>
>  y++;
>  if (y >= screen_height)
>   y=0;
> }
>
>  // Cleanup in a stack like style.
>  primary->Release( primary );
>  dfb->Release( dfb );
>
>  return 23;
> }
> ----------
>
> The full output of the program is:
> ----------
> root@deb-n2800:/mnt/directfb_test# ./directfb_test_mod
>
>    ~~~~~~~~~~~~~~~~~~~~~~~~~~| DirectFB 1.2.10 |~~~~~~~~~~~~~~~~~~~~~~~~~~
>         (c) 2001-2008  The world wide DirectFB Open Source Community
>         (c) 2000-2004  Convergence (integrated media) GmbH
>       ----------------------------------------------------------------
>
> (*) DirectFB/Core: Single Application Core. (2012-05-20 13:17)
> (*) Direct/Thread: Started 'VT Switcher' (-1) [CRITICAL OTHER/OTHER 0/0]
> <8388608>...
> (*) Direct/Thread: Started 'Linux Input' (-1) [INPUT OTHER/OTHER 0/0]
> <8388608>...
> (*) DirectFB/Input: DELL DELL USB Keyboard (1) 0.1 (directfb.org)
> (*) Direct/Thread: Started 'Linux Input' (-1) [INPUT OTHER/OTHER 0/0]
> <8388608>...
> (*) DirectFB/Input: HID 413c:3010 (2) 0.1 (directfb.org)
> (*) Direct/Thread: Started 'Linux Input' (-1) [INPUT OTHER/OTHER 0/0]
> <8388608>...
> (*) DirectFB/Input: Power Button (3) 0.1 (directfb.org)
> (*) Direct/Thread: Started 'Linux Input' (-1) [INPUT OTHER/OTHER 0/0]
> <8388608>...
> (*) DirectFB/Input: Sleep Button (4) 0.1 (directfb.org)
> (*) Direct/Thread: Started 'Linux Input' (-1) [INPUT OTHER/OTHER 0/0]
> <8388608>...
> (*) DirectFB/Input: Power Button (5) 0.1 (directfb.org)
> (*) Direct/Thread: Started 'Linux Input' (-1) [INPUT OTHER/OTHER 0/0]
> <8388608>...
> (*) DirectFB/Input: HDA Digital PCBeep (6) 0.1 (directfb.org)
> (*) Direct/Thread: Started 'Linux Input' (-1) [INPUT OTHER/OTHER 0/0]
> <8388608>...
> (*) DirectFB/Input: HDA Intel Rear Mic (7) 0.1 (directfb.org)
> (*) Direct/Thread: Started 'Linux Input' (-1) [INPUT OTHER/OTHER 0/0]
> <8388608>...
> (*) DirectFB/Input: HDA Intel Line Out (8) 0.1 (directfb.org)
> (*) Direct/Thread: Started 'Linux Input' (-1) [INPUT OTHER/OTHER 0/0]
> <8388608>...
> (*) DirectFB/Input: HDA Intel HDMI/DP,pcm=3 (9) 0.1 (directfb.org)
> (*) Direct/Thread: Started 'Linux Input' (-1) [INPUT OTHER/OTHER 0/0]
> <8388608>...
> (*) DirectFB/Input: PC Speaker (10) 0.1 (directfb.org)
> (*) Direct/Thread: Started 'Linux Input' (-1) [INPUT OTHER/OTHER 0/0]
> <8388608>...
> (*) DirectFB/Input: Video Bus (11) 0.1 (directfb.org)
> (*) Direct/Thread: Started 'Keyboard Input' (-1) [INPUT OTHER/OTHER 0/0]
> <8388608>...
> (*) DirectFB/Input: Keyboard 0.9 (directfb.org)
> (*) Direct/Thread: Started 'PS/2 Input' (-1) [INPUT OTHER/OTHER 0/0]
> <8388608>...
> (*) DirectFB/Input: IMPS/2 Mouse (1) 1.0 (directfb.org)
> (*) Direct/Thread: Started 'PS/2 Input' (-1) [INPUT OTHER/OTHER 0/0]
> <8388608>...
> (*) DirectFB/Input: IMPS/2 Mouse (2) 1.0 (directfb.org)
> (*) DirectFB/Genefx: MMX detected and enabled
> (*) DirectFB/Graphics: MMX Software Rasterizer 0.6 (directfb.org)
> (*) DirectFB/Core/WM: Default 0.3 (directfb.org)
> (*) FBDev/Surface: Allocated 1280x1024 32 bit RGB32 buffer (index 0) at
> offset 0 and pitch 6144.
> (*) FBDev/Surface: Allocated 1280x1024 32 bit RGB32 buffer (index 0) at
> offset 0 and pitch 6144.
> (*) FBDev/Mode: Setting 1280x1024 RGB32
> (*) FBDev/Mode: Switched to 1280x1024 (virtual 1280x2048) at 32 bit
> (RGB32), pitch 6144
>  (!!!)  *** WARNING [unable to adjust heap offset] ***
> [../../../systems/fbdev/surfacemanager.c:167 in
> dfb_surfacemanager_adjust_heap_offset()]
> (*) FBDev/Surface: Allocated 1280x1024 32 bit RGB32 buffer (index 1) at
> offset 6291456 and pitch 6144.
> (!) [ 2428:    0.000] --> Caught signal 11 (at 0xb6d29000, invalid
> permissions) <--
>

Do you have the permissions enough to run this program?


>  (!!!)  *** WARNING [still objects in 'Layer Region Pool'] ***
> [../../../lib/fusion/object.c:241 in fusion_object_pool_destroy()]
>  (!!!)  *** WARNING [still objects in 'Layer Context Pool'] ***
> [../../../lib/fusion/object.c:241 in fusion_object_pool_destroy()]
>  (!!!)  *** WARNING [still objects in 'Surface Pool'] ***
> [../../../lib/fusion/object.c:241 in fusion_object_pool_destroy()]
> Annullato
> ----------
>
> This is on Debian Wheezy i386, on Atom N2800, kernel 3.8 from Debian
> Experimental
> DirectFB is version 1.2.10 from Debian:
> http://packages.debian.org/wheezy/libdirectfb-1.2-9
> I can reproduce the same behavior with Debian Squeeze i386, on Atom
> N270+intel 945GSE
> and on Debian Squeeze amd64, on Core 2 Quad Q9300+GeForce 6200LE
>
> How can I fix this?
>
>
> Thanks,
>
> Diego Guella
>
>
> _______________________________________________
> 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

Reply via email to