Re: Give A directFB surface to EGL
Albert Freeman <[email protected]>
| Newsgroups | gmane.comp.video.mesa3d.user |
|---|---|
| Message-ID | <CAHD8uZOVfRWpNPHvgNjXMPRwo_kwUJ72WJTH8tc-LMWXNuOWZw@mail.gmail.com> |
On 23 October 2015 at 08:55, Albert Freeman <[email protected]> wrote: > On 23 October 2015 at 03:18, 刘涛 <[email protected]> wrote: >> 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" <[email protected]> 写道: >>>On 22 October 2015 at 15:35, Albert Freeman <[email protected]> >>> wrote: >>>> On 22 October 2015 at 15:31, Albert Freeman <[email protected]> >>>> wrote: >>>>> On 22 October 2015 at 12:25, 刘涛 <[email protected]> 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,"刘涛" <[email protected]> 写道: >>>>>> >>>>>> Sorry , add attachment for this time. >>>>>> >>>>>> >>>>>> 在 2015-10-22 20:13:36,"刘涛" <[email protected]> 写道: >>>>>> >>>>>> 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; >>> } >> >> >> >> > I run everything directly as root. That draw_line.c demo works fine > without any configuration changes. Moving glBindAPI(EGL_OPENGL_ES_API) after eglCreateWindowSurface() fixes an egl error. _______________________________________________ mesa-users mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/mesa-users