Hi, Yes that does work, I think that is the default option if you pass no parameters isn't it?
However, The program does not seem to be running with hardware acceleration. I say that because it runs the same speed when I run it with --dfb:no-hardware! It is also the same speed as if I run using the vesa frame buffer (/dev/fb1) which does not support acceleration. I really wanted to get the GPU to do the work. Regards On March 27, 2015, Freeman <freemanli...@foxmail.com> wrote: > hi, tim > You can juse use this command > -bash-3.1# ./test --dfb:hardware > I think it will work. > > " [no-]hardware Enable/disable hardware acceleration\n" > > option "no-software" disable software fallbacks. > This is mainly fordebugging/profiling purpose. > It will print out a warning with the operationand flags each time a fallback > would occur. > > And I think it is just print some information. > > > > > > ------------------ Original ------------------ > From: "Tim Nicholson";<t...@gizzy.co.uk>; > Date: Fri, Mar 27, 2015 08:21 PM > To: "directfb-users"<directfb-users@directfb.org>; > > Subject: [directfb-users] Can't get any hardware acceleration using thesavage > driver. > > Hi, > > I am trying to take advantage of the graphics accelerator on some embedded > linux hardware. I have sucessfully built directfb and I have written some > test code which runs fine but, it only appears to be using software drawing > and I am at a loss as to what I need to do to utilize the hardware > acceleration. Below are some details about my setup. Any help of advice would > be much appreciated. > > I have included the source code for my test program below, it simply rotates > a wire cube using multiple DrawLine functions , I am compiling it using the > following command line: > > -bash-3.1$ gcc -I /usr/local/include/directfb -lm -ldirectfb directfb_test.c > -o test > > I have included details of various outputs below in the hope they may be of > use: > > grub menu.lst entry > > kernel /boot/linux-2.6.16.46 root=/dev/hdc4 i8042.direct=1 atkbd.set=3 > video=savagefb:mtrr,ywrap,pmipal,vga=0x301 ide=nodma quiet console=tty7 > loglevel=0 > > -bash-3.1# cat /proc/version > Linux version 2.6.16.46 (root@sentinel) (gcc version 4.0.3) #1 PREEMPT Sat > Mar 10 13:17:45 EST 2012 > > -bash-3.1# fbset -i > > mode "640x400-70" > # D: 25.176 MHz, H: 31.469 kHz, V: 69.932 Hz > geometry 640 400 640 4096 8 > timings 39721 40 24 39 9 96 2 > accel true > rgba 8/0,8/0,8/0,0/0 > endmode > > Frame buffer device information: > Name : TwisterP > Address : 0xe0000000 > Size : 33423360 > Type : PACKED PIXELS > Visual : PSEUDOCOLOR > XPanStep : 4 > YPanStep : 1 > YWrapStep : 0 > LineLength : 640 > MMIO Address: 0xed000000 > MMIO Size : 524288 > Accelerator : Unknown (138) > > > -bash-3.1$ lspci > 00:00.0 Host bridge: VIA Technologies, Inc. VT8605 [ProSavage PM133] > 00:01.0 PCI bridge: VIA Technologies, Inc. VT8605 [PM133 AGP] > 00:07.0 ISA bridge: VIA Technologies, Inc. VT82C686 [Apollo Super South] (rev > 40) > 00:07.1 IDE interface: VIA Technologies, Inc. > VT82C586A/B/VT82C686/A/B/VT823x/A/C PIPC Bus Master IDE (rev 06) > 00:07.2 USB Controller: VIA Technologies, Inc. VT82xxxxx UHCI USB 1.1 > Controller (rev 1d) > 00:07.4 Bridge: VIA Technologies, Inc. VT82C686 [Apollo Super ACPI] (rev 40) > 00:07.5 Multimedia audio controller: VIA Technologies, Inc. VT82C686 AC97 > Audio Controller (rev 50) > 00:0e.0 Ethernet controller: National Semiconductor Corporation DP83815 > (MacPhyter) Ethernet Controller > 01:00.0 VGA compatible controller: S3 Inc. 86C380 [ProSavageDDR K4M266] (rev > 02) > > -bash-3.1# ./test > test application is starting > > ~~~~~~~~~~~~~~~~~~~~~~~~~~| DirectFB 1.2.9 |~~~~~~~~~~~~~~~~~~~~~~~~~~ > (c) 2001-2008 The world wide DirectFB Open Source Community > (c) 2000-2004 Convergence (integrated media) GmbH > ---------------------------------------------------------------- > > (*) DirectFB/Core: Single Application Core. (2015-03-23 14:57) > (*) 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: AT Raw Set 3 keyboard (1) 0.1 (directfb.org) > (*) Direct/Thread: Started 'Linux Input' (-1) [INPUT OTHER/OTHER 0/0] > <8388608>... > (*) DirectFB/Input: PC Speaker (2) 0.1 (directfb.org) > (*) Direct/Thread: Started 'Linux Input' (-1) [INPUT OTHER/OTHER 0/0] > <8388608>... > (*) DirectFB/Input: DELL DELL USB Keyboard (3) 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.0 (directfb.org) > (*) DirectFB/Genefx: MMX detected and enabled > (*) DirectFB/Graphics: S3 Savage4 Series 0.3 (directfb.org) > (*) DirectFB/Core/WM: Default 0.3 (directfb.org) > (*) FBDev/Surface: Allocated 640x400 8 bit LUT8 buffer (index 0) at offset 0 > and pitch 640. > (*) FBDev/Mode: Setting 640x400 LUT8 > (*) FBDev/Mode: Switched to 640x400 (virtual 640x800) at 8 bit (LUT8), pitch > 640 > (*) FBDev/Surface: Allocated 640x400 8 bit LUT8 buffer (index 1) at offset > 256000 and pitch 640. > (*) FBDev/Mode: Setting 640x400 LUT8 > (*) FBDev/Mode: Switched to 640x400 (virtual 640x400) at 8 bit (LUT8), pitch > 640 > (*) FBDev/Surface: Allocated 640x400 8 bit LUT8 buffer (index 0) at offset 0 > and pitch 640. > > When I run the code specifying no-software, as follows, I just get a blank > screen, so I am assuming hardware acceleration is not working. > > -bash-3.1# ./test --dfb:no-software > test application is starting > > ~~~~~~~~~~~~~~~~~~~~~~~~~~| DirectFB 1.2.9 |~~~~~~~~~~~~~~~~~~~~~~~~~~ > (c) 2001-2008 The world wide DirectFB Open Source Community > (c) 2000-2004 Convergence (integrated media) GmbH > ---------------------------------------------------------------- > > (*) DirectFB/Core: Single Application Core. (2015-03-23 14:57) > (*) 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: AT Raw Set 3 keyboard (1) 0.1 (directfb.org) > (*) Direct/Thread: Started 'Linux Input' (-1) [INPUT OTHER/OTHER 0/0] > <8388608>... > (*) DirectFB/Input: PC Speaker (2) 0.1 (directfb.org) > (*) Direct/Thread: Started 'Linux Input' (-1) [INPUT OTHER/OTHER 0/0] > <8388608>... > (*) DirectFB/Input: DELL DELL USB Keyboard (3) 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.0 (directfb.org) > (*) DirectFB/Genefx: MMX detected and enabled > (*) DirectFB/Graphics: S3 Savage4 Series 0.3 (directfb.org) > (*) DirectFB/Core/WM: Default 0.3 (directfb.org) > (*) FBDev/Surface: Allocated 640x400 8 bit LUT8 buffer (index 0) at offset 0 > and pitch 640. > (*) FBDev/Mode: Setting 640x400 LUT8 > (*) FBDev/Mode: Switched to 640x400 (virtual 640x800) at 8 bit (LUT8), pitch > 640 > (*) FBDev/Surface: Allocated 640x400 8 bit LUT8 buffer (index 1) at offset > 256000 and pitch 640. > (*) FBDev/Mode: Setting 640x400 LUT8 > (*) FBDev/Mode: Switched to 640x400 (virtual 640x400) at 8 bit (LUT8), pitch > 640 > (*) FBDev/Surface: Allocated 640x400 8 bit LUT8 buffer (index 0) at offset 0 > and pitch 640 > > > > > /**************************************************** > * Name: directfb_test.c > * Author: Tim Nicholson > * Purpose: Just for test the DirectFB > ****************************************************/ > #include <stdio.h> > #include <unistd.h> > #include <directfb.h> > #include <math.h> > > #define HEIGHT 480 > #define WIDTH 640 > #define WHOLE 150 > #define HALF (WHOLE/2.0) > #define MIDX (WIDTH/2.0) > #define MIDY (HEIGHT/2.0) > > static struct PointF > { > double x; > double y; > } c1,c2,c3,c4,p1,p2,p3,p4,p5,p6,p7,p8,mid1,mid2; > > static int x = 0; > void calc (void); > > int main (int argc, char *argv[]) > { > IDirectFB *dfb = NULL; > IDirectFBDisplayLayer *layer = NULL; > IDirectFBSurface *surface = NULL; > > printf ("test application is starting\n"); > DirectFBInit (&argc, &argv); > DirectFBCreate (&dfb); > > dfb->GetDisplayLayer (dfb, DLID_PRIMARY, &layer); > layer->SetCooperativeLevel (layer, DLSCL_EXCLUSIVE); > layer->GetSurface (layer, &surface); > > mid1.x = MIDX - HALF; > mid1.y = MIDY; > mid2.x = MIDX + HALF; > mid2.y = MIDY; > > while (1) > { > calc(); > surface->SetColor (surface, 0x00, 0x00, 0x00, 0xff); > surface->FillRectangle (surface, 0, 0, WIDTH, HEIGHT); > surface->SetColor (surface, 0xff, 0xff, 0xff, 0xff); > > surface->DrawLine (surface, p1.x, p1.y, p2.x, p2.y); > surface->DrawLine (surface, p2.x, p2.y, p3.x, p3.y); > surface->DrawLine (surface, p3.x, p3.y, p4.x, p4.y); > surface->DrawLine (surface, p4.x, p4.y, p1.x, p1.y); > > surface->DrawLine (surface, p5.x, p5.y, p6.x, p6.y); > surface->DrawLine (surface, p6.x, p6.y, p7.x, p7.y); > surface->DrawLine (surface, p7.x, p7.y, p8.x, p8.y); > surface->DrawLine (surface, p8.x, p8.y, p5.x, p5.y); > > surface->DrawLine (surface, p1.x, p1.y, p5.x, p5.y); > surface->DrawLine (surface, p2.x, p2.y, p6.x, p6.y); > surface->DrawLine (surface, p3.x, p3.y, p7.x, p7.y); > surface->DrawLine (surface, p4.x, p4.y, p8.x, p8.y); > > dfb->WaitForSync(dfb); > } > surface->Release (surface); > layer->Release (layer); > dfb->Release (dfb); > return 0; > } > > // > ********************************************************************************************* > // c a l c > // > ********************************************************************************************* > void calc (void) > { > int a,b,c,d; > > x++; > a = x; > b = x + 90; > c = x + 180; > d = x + 270; > > a %= 360; > b %= 360; > c %= 360; > d %= 360; > > c1.x = (sin(M_PI / 180.0 * a) * WHOLE); > c1.y = (cos(M_PI / 180.0 * a) * WHOLE); > c2.x = (sin(M_PI / 180.0 * b) * WHOLE); > c2.y = (cos(M_PI / 180.0 * b) * WHOLE); > c3.x = (sin(M_PI / 180.0 * c) * WHOLE); > c3.y = (cos(M_PI / 180.0 * c) * WHOLE); > c4.x = (sin(M_PI / 180.0 * d) * WHOLE); > c4.y = (cos(M_PI / 180.0 * d) * WHOLE); > > p1.x = mid1.x + c1.x; > p2.x = mid1.x + c2.x; > p3.x = mid1.x + c3.x; > p4.x = mid1.x + c4.x; > > p5.x = mid2.x + c1.x; > p6.x = mid2.x + c2.x; > p7.x = mid2.x + c3.x; > p8.x = mid2.x + c4.x; > > p1.y = mid1.y + c1.y; > p2.y = mid1.y + c2.y; > p3.y = mid1.y + c3.y; > p4.y = mid1.y + c4.y; > > p5.y = mid2.y + c1.y; > p6.y = mid2.y + c2.y; > p7.y = mid2.y + c3.y; > p8.y = mid2.y + c4.y; > } > > >
_______________________________________________ directfb-users mailing list directfb-users@directfb.org http://mail.directfb.org/cgi-bin/mailman/listinfo/directfb-users