[Mesa-users] Give A directFB surface to EGL

刘涛 liutao586 at 163.com
Thu Oct 22 20:18:23 PDT 2015


I didn't have  “ (!) Direct/Modules: Unable to dlopen“ error,  did you start your program with "sudo"?  and I also have have some errors, but directFB test(attachment) can pass on my pc.  You may alse need direcfbrc file to configure directFB, and init it with command 'echo -e "mode=1366x768\nwm=default\ndepth=32\nsystem=x11" > ~/.directfbrc'.


在 2015-10-23 05:24:32,"Albert Freeman" <albertwdfreeman at gmail.com> 写道:
>On 22 October 2015 at 15:35, Albert Freeman <albertwdfreeman at gmail.com> wrote:
>> On 22 October 2015 at 15:31, Albert Freeman <albertwdfreeman at gmail.com> wrote:
>>> On 22 October 2015 at 12:25, 刘涛 <liutao586 at 163.com> wrote:
>>>> Attachment  need approval and main output see below:
>>>>
>>>> Build options:
>>>>   Version                   1.7.6
>>>>   Linux powered             yes
>>>>   Install prefix            /usr
>>>>   Config files in           /usr/etc
>>>>   Build shared libs         yes
>>>>   Build static libs         no
>>>>   Module directory          ${exec_prefix}/lib/directfb-1.7-6
>>>>   CC                        gcc
>>>>   CXX                       g++
>>>>   LD                        /usr/bin/ld -m elf_x86_64
>>>>   CPPFLAGS                  -D_REENTRANT
>>>>   CFLAGS                    -Wall -Wstrict-prototypes -Wmissing-prototypes
>>>> -Wno-strict-aliasing -Werror-implicit-function-declaration -O3 -g2
>>>> -ffast-math -pipe  -D_GNU_SOURCE  -std=gnu99
>>>> -Werror-implicit-function-declaration
>>>>   CXXFLAGS                  -Wall -Wno-strict-aliasing -std=c++0x -g -O2 -O3
>>>> -g2 -ffast-math -pipe  -D_GNU_SOURCE
>>>>   LDFLAGS
>>>>   LIBS                      -ldl -lrt -lpthread
>>>>   DYNLIB                    -ldl
>>>>   RTLIB                     -lrt
>>>>   THREADFLAGS               -D_REENTRANT
>>>>   THREADLIB                 -lpthread
>>>>
>>>> Misc options:
>>>>   Multi Application Core    no
>>>>   Fusion Kernel Device      yes
>>>>   Fusion message size       16384
>>>>   Fluxed args size          1024
>>>>   One (IPC)                 no
>>>>   Voodoo (network support)  no
>>>>   Pure Voodoo (net only)    no
>>>>   DiVine (virtual input)    no
>>>>   FusionDale                no
>>>>   Debug supported           yes
>>>>   Debug enabled             no
>>>>   Trace support             no
>>>>   MMX support               yes
>>>>   SSE support               yes
>>>>   GCC Atomics usage         no
>>>>   Network support           yes
>>>>   Include all strings       yes
>>>>   Software Rendering        yes
>>>>   Smooth SW Scaling         no
>>>>   Dithering                 none
>>>>   Dithering 565             none
>>>>   zlib compression          no
>>>>   Using setsockopt          yes
>>>>
>>>> Building Tests              no
>>>> Building Tools              yes
>>>>
>>>> Building System Modules:
>>>>   Linux FBDev support       yes
>>>>   Generic /dev/mem support  yes
>>>>   Mesa/DRM/KMS support      yes                -I/usr/include/libdrm
>>>> -lGLESv2 -lEGL -ldrm -lgbm
>>>>   DRM/KMS support           no
>>>>   PVR2D                     no
>>>>   EGL                       no                 -I/usr/include/libdrm   -lGL
>>>> -lEGL
>>>>   X11 support               yes                   -lX11 -lXext
>>>>   X11/VDPAU support         no
>>>>   OSX support               no
>>>>   SDL support               no
>>>>   VNC support               no
>>>>
>>>> Building Window Manager Modules:
>>>>   Default                   yes
>>>>   UniQuE                    no
>>>>   SaWMan                    no
>>>>
>>>> Building Image Provider Modules:
>>>>   GIF                       yes
>>>>   JPEG                      yes                 -ljpeg
>>>>   PNG                       yes                  -I/usr/include/libpng12
>>>> -lpng12
>>>>   Imlib2                    no
>>>>   PNM                       yes
>>>>   SVG                       no
>>>>   BMP                       yes
>>>>   WEBP                      no
>>>>   JPEG2000                  no
>>>>   MPEG2                     yes
>>>>   TIFF                      no
>>>>
>>>>
>>>>
>>>> Building Video Provider Modules:
>>>>   GIF                       yes
>>>>   Video4Linux               yes (v2: no)
>>>>   MNG                       no
>>>>   Gstreamer                 no (v1: no)
>>>>     with FusionSound        no
>>>>   AviFile                   no
>>>>   Flash                     no
>>>>   Libmpeg3                  no
>>>>   OpenQuicktime             no
>>>>   Xine                      no
>>>>   Xine/VDPAU                no
>>>>   Swfdec                    no
>>>>   FFmpeg                    no
>>>>
>>>> Building Font Modules:
>>>>   FreeType2                 yes                 -I/usr/include/freetype2
>>>> -lfreetype
>>>>   LinoType                  no
>>>>   Default font              yes
>>>>
>>>> Building FusionSound        no
>>>>
>>>> Building Graphics Drivers:
>>>>   3Dfx Voodoo               yes
>>>>   ATI Mach64                yes
>>>>   ATI Rage 128              yes
>>>>   ATI Radeon                no
>>>>   Cirrus EP9X               yes
>>>>   Intel i810                yes
>>>>   Intel i830                yes
>>>>   Matrox                    yes
>>>>   NeoMagic                  yes
>>>>   NSC Geode                 yes
>>>>   nVidia                    yes
>>>>   PVR2D                     no
>>>>   PXA 3xx                   yes
>>>>   Renesas R-Car GP2D        no
>>>>   Renesas SH7722/SH7723     no
>>>>   S3 Savage                 no
>>>>   SiS 315                   yes
>>>>   TI Davinci                no
>>>>   TI OMAP                   no
>>>>   TVIA CyberPro             no
>>>>   VIA CLE266                no
>>>>   VIA UniChrome             no
>>>>   VMWare                    no
>>>>   VDPAU                     no
>>>>   --
>>>>   OpenGL                    yes (GLX: yes)
>>>>   OpenGL ES 2.0             yes (Mesa:  yes, PVR2D: no)
>>>>                                         -I/usr/include/libdrm   -DGLES2_MESA
>>>> -lGLESv2 -lEGL -ldrm -lgbm
>>>>
>>>>   IDirectFBGL-EGL           yes       -I/usr/include/libdrm   -lGL -lEGL
>>>>
>>>> Building Input Drivers:
>>>>   DBox2 Remote              no
>>>>   DreamBox Remote           no
>>>>   Dynapro Touchscreen       no
>>>>   ELO Touchscreen           no
>>>>   Gunze Touchscreen         no
>>>>   H3600 Touchscreen         no
>>>>   Input Hub                 yes
>>>>   Joystick                  yes
>>>>   Keyboard                  yes
>>>>   Linux Input               yes
>>>>   LiRC                      yes
>>>>   MuTouch touchscreen       yes
>>>>   Zytronic touchscreen      yes
>>>>   PS/2 Mouse                yes
>>>>   Serial Mouse              yes
>>>>   SonyPI Jogdial            yes
>>>>   tslib                     yes                   -lts
>>>>   ucb1x00 Touchscreen       no
>>>>   WM97xx Touchscreen        yes
>>>>
>>>>
>>>>
>>>>
>>>> 在 2015-10-22 20:14:41,"刘涛" <liutao586 at 163.com> 写道:
>>>>
>>>> Sorry ,  add attachment for this time.
>>>>
>>>>
>>>> 在 2015-10-22 20:13:36,"刘涛" <liutao586 at 163.com> 写道:
>>>>
>>>> I use "./configure --prefix=/usr --enable-idirectfbgl-egl" to configure
>>>> DirectFB-1.7.6 and please see attachment config.log for output.
>>> I was really really wrong about what DirectFB can support. It uses gbm
>>> and therefore supports all the latest mesa hardware drivers. I have
>>> got a slight modification of your code (adding stuff you would already
>>> have setup) running on DirectFB with my r600 radeon card. I had to
>>> modify directfb. I did by commenting out functions to avoid a runtime
>>> dlopen warning that prevented stuff from working. Now to do it
>>> properly (I believe DirectFB is not loading function pointers for some
>>> EGL functions). I am not sure if it is the same issue you have though.
>>>
>>> My configuration is latest git mesa and Linux 4.2.3 and I actually had
>>> success with just ./configure && make -j16 && make install with
>>> DirectFB.
>> Just to make sure it is the same issue, do you have:
>> (!) Direct/Modules: Unable to dlopen
>> `/usr/local/lib/directfb-1.7-0/systems/libdirectfb_mesa_system.so'!
>>     --> /usr/local/lib/directfb-1.7-0/systems/libdirectfb_mesa_system.so:
>> undefined symbol:
>> in the DirectFB stdout/err log when you run your program (near the top
>> of the log)?
>Actually I did not solve the issue. I had setup a:
>glClearColor(0.0f, 1.0f, 0.0f, 0.0f);
>glClear(GL_COLOR_BUFFER_BIT);
>which for the first time actually cleared something for about a second.
>But strangely enough EGL was erroring and it was still intermittently
>clearing the screen.
>The gles2 test DirectFB provides tests functionality that has since
>been deleted (even though the tests are in the same repo).
>DirectFBGL/EGL calls:
>eglGetDisplay
>eglInitialize
>eglChooseConfig
>eglBindAPI(EGL_OPENGL_ES_API)   which is hardwired, meaning no Desktop
>OpenGL allowed (I just feel like noting that for some reason).
>etc
>So if you actually want to use DirectFBGL/EGL completely then I don't
>think your supposed to call egl functions yourself.
>
>Your program fails on
>eglDisplay = eglGetDisplay(EGL_DEFAULT_DISPLAY);
>with a EGL_BAD_NATIVE_WINDOW (I may have also seen a EGL_BAD_DISPLAY
>but I doubt it)
>of course that could be due to the infrastructure I built around it,
>but I doubt that.
>
>I messed around for ages doing stuff, I got a DirectFB mouse cursor
>appearing both in X11 and with the test app started directly from the
>linux console.
>Although I think it is a matter of getting the DirectFB calls setup
>right (before any egl functions are called) with X11 on PC. Of course
>it could be a bug in DirectFB or EGL too.
>
>Anyway, I am going to bed.
>
>You might want to use this for debugging:
>    EGLint eglerror = eglGetError();
>        switch(eglerror) {
>        case EGL_SUCCESS:
>            printf("eglGetError indicated SUCCESS\n");
>            break;
>        case EGL_BAD_NATIVE_WINDOW:
>            printf("eglGetError indicated BAD_NATIVE_WINDOW\n");
>            break;
>        case EGL_NOT_INITIALIZED:
>            printf("eglGetError indicated NOT_INITIALIZED\n");
>            break;
>        case EGL_CONTEXT_LOST:
>            printf("eglGetError indicated CONTEXT_LOST\n");
>            break;
>        case EGL_BAD_ACCESS:
>            printf("eglGetError indicated BAD_ACCESS\n");
>            break;
>        case EGL_BAD_ALLOC:
>            printf("eglGetError indicated BAD_ALLOC\n");
>            break;
>        case EGL_BAD_ATTRIBUTE:
>            printf("eglGetError indicated BAD_ATTRIBUTE\n");
>            break;
>        case EGL_BAD_CONTEXT:
>            printf("eglGetError indicated BAD_CONTEXT\n");
>            break;
>        case EGL_BAD_CONFIG:
>            printf("eglGetError indicated BAD_CONFIG\n");
>            break;
>        case EGL_BAD_CURRENT_SURFACE:
>            printf("eglGetError indicated BAD_CURRENT_SURFACE\n");
>            break;
>        case EGL_BAD_DISPLAY:
>            printf("eglGetError indicated BAD_DISPLAY\n");
>            break;
>        case EGL_BAD_MATCH:
>            printf("eglGetError indicated BAD_MATCH\n");
>            break;
>        case EGL_BAD_PARAMETER:
>            printf("eglGetError indicated BAD_PARAMETER\n");
>            break;
>        case EGL_BAD_NATIVE_PIXMAP:
>            printf("eglGetError indicated BAD_NATIVE_PIXMAP\n");
>        default:
>            printf("eglGetError returned an unknown EGL error\n");
>            break;
>        }
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/mesa-users/attachments/20151023/93c318d1/attachment-0001.html>
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: draw_line.c
URL: <http://lists.freedesktop.org/archives/mesa-users/attachments/20151023/93c318d1/attachment-0001.c>


More information about the mesa-users mailing list