hrydgard / ppsspp

A PSP emulator for Android, Windows, Mac and Linux, written in C++. Want to contribute? Join us on Discord at https://discord.gg/5NJB6dD or just send pull requests / issues. For discussion use the forums at forums.ppsspp.org.
https://www.ppsspp.org
Other
10.99k stars 2.14k forks source link

Building at Raspberry Pi 2 B+ #7479

Closed gamelaster closed 5 years ago

gamelaster commented 9 years ago

Heya,

Today i trying to build on my RPI a PPSSPP, but i still failure becouse libswresample has not found.

/home/pi/Desktop/ppsspp/Core/HLE/sceAtrac.cpp:95:38: fatal error: libswresample/swresample.h: Directory or file not exists

I searched alot about that and i found its becouse of ffmpeg, but i installed ffmpeg, but anyway, i probably need a ffmpeg-dev, but thats not for RPI...

Any ideas?

//EDIT: after some exploring i found that file in Hrydgards FFMPEG repository. That repository i got, and i found that file in my "solution". So i dont know why the sceAtrac cant found swresample.h ...

hrydgard commented 9 years ago

We use a patched ffmpeg so we should make a rasp-2B specific prebuild and put in ppsspp-ffmpeg. It should not be very hard to tweak the existing Linux build script that's in there...

I'm getting a rasp-2B myself but won't get to it for a little while.

gamelaster commented 9 years ago

Awesome, anyway, i can participate with anything about RPI! Anyway, i tried some stuffs to edit to be works, but when i changed a paths to full path (with ffmpeg), then that library got other errors with path. But others similiar libraries in FFMPEG including at sceAtrac.cpp has been included good :laughing:

unknownbrackets commented 9 years ago

Instead of changing paths, leave everything alone. The code should be okay to build.

The only paths you might change are in CMakeLists.txt, not in any cpp or h file. But first you need to run a script in the ffmpeg/ subdirectory to create the ffmpeg .a files. You'll create the script by modifying this:

https://github.com/hrydgard/ppsspp-ffmpeg/blob/master/linux_arm.sh (it might just work as-is.)

Once that is built, ffmpeg libraries will exist inside ffmpeg/. This is where ppsspp expects them, and ppsspp should be able to build.

If you're changing any lines that have #include in them, you're changing the wrong thing.

-[Unknown]

sergiobenrocha2 commented 9 years ago

You must change -mfloat-abi=softfp to -mfloat-abi=hard in linux_arm.sh, and delete GENERAL stuff for cross-compile. And delete build_ARMv6 too.

gamelaster commented 9 years ago

sergiobenrocha2: I know to delete ARMv6 build, already deleted. I tryied to delete general stuff for cross-compile, but anyway, i didnt found another way how to compile FFMPEG without cross-compile (if u look at original ffmpeg build process in Raspberry Pi, anyway u must install cross-tools). So, i will see if that helps... But in Raspberry Pi takes very long to install and patch toolchain and other stuffs, what made build (if i integrate the time to first build) more than hour. 20 minutes to download tools (its not failure of my internet), next 10 minutes to extract and patch etc. I actually work on that so i will write my result. Anyway, thanks for the idea to edit linux_arm.sh ! :P

//EDIT: OMG -_- installing crosstool is ... ah, 3 hours i trying to install.. 2 times RPI frozen... I think i will be must overclock that.

//EDIT 2: I think the best way has been to providing the compiled version of PPSSPP, i grab this todo, i will be doing the builds for RPI :) Becouse installing PPL for host in toolchain wants so much time & and power, so probably it will works only on overclocked devices (already testing on nooverclocked)

sergiobenrocha2 commented 9 years ago

Ahh, so you use cross-compiler instead of build in the rpi. Well, I use an odroid u3, it does not take many time to compile stuff, dunno about rpi B+.

I can compile here and send a PR, but I don't know the preferable gcc version and other stuff to make sure it will work in all distros, not only in ubuntu 14.04.

gamelaster commented 9 years ago

Oh im dumb, why i making cross compiler on RPI :D ... Anyway, so when i want to do works a PPSSPP build on RaspBian, i must compile ARM version of modified FFMPEG on x86 Ubuntu and move it to PPSSPP project or how? I will going to try it, im little bit new in C/C++ so i must try it to do :P .

Anyway, i can try on my RPI anything, so we can try it. Just write me on IRC ppsspp (GAMiEE)

//EDIT 20:44 - So i installed cross-tool and others on my Ubuntu and suceffuly compiled FFMPEG for ARMv7 with edited script of build_arm.sh and Build instructions at FFMPEG wiki for Raspberry pi. So im going to copy that version and try to build that at RPI :P //EDIT 21:40 - FFMPEG build failed, the linux/armv7 has not created, so IDK what builded O_O but prefix path has been setted good O_O actually disoriented -.-

gamelaster commented 9 years ago

Today i successfull builded PPSSPPSDL on my RPI, but i got here a problem with launch:

libEGL warning: DRI2: failed to authenticate SDL_CreateWindow failed: Could not initialize OpenGL / GLES library

I really dont get idea where is problem... Mesa libraries has been installed, but im little misunderstand becouse idk if i have installed SDL2 so if that has been not trouble.. Any ideas?

//EDIT: So i now building SDL2 on my RPI , so we will see... Question, i need again to rebuild a PPSSPP with SDL2?

hrydgard commented 9 years ago

I don't know, but please keep reporting your progress, it's useful :)

Bigpet commented 9 years ago

ppsspp usually dynamically links to sdl2 so unless you linked it in statically or the headers changed you should not need to rebuild ppsspp

gamelaster commented 9 years ago

SDL2 installed, works, i recompiled full PPSSPP, but still got error, but its some other:

libEGL warning: DRI2: failed to authenticate SDL_CreateWindow failed: Couldn't find matching GLX visual

I think the main problem is the warning what makes SDL_CreateWindow fail. Now i didnt get idea, im stay still googling about this 2 errors and we will see :/

hrydgard commented 9 years ago

"failed to authenticate"? try running it as root? (shouldn't be needed, but hey...)

gamelaster commented 9 years ago

Tryied, failed. I think is problem on side SDL, i checked SDL source files and i found he exception when is thrown, and its when trying to get access to Monitor/Display. I will continue to search..

//EDIT: When is available Qt (on linux is little bit buggy, but.. :P ), i can try build Qt version, but that take some more time than normal build (on Ubuntu takes build Qt long, so in RPI lol :D )

//EDIT2: Qt build attempting error with some files, its not files for ARM, so its can be global trouble (at all Qt builds), i will write what troubles, but first im someone writes me to try build Libretro-ppsspp so we will see! :)

//EDIT3: Same result as default PPSSPP, + libretro ppsspp has been working (as i seen), but idk why its not works, i still think is trouble in SDL side, but anyway, i try to fix that bug from source code, but if failure, i try to fix bug in Qt build :)

//EDIT4: Its really crazy... :D Someone got this trouble too, i looked at that but anyway still same error http://raspberrypi.stackexchange.com/questions/3285/sdl-couldnt-find-matching-glx-visual Now trying to again rebuild that, we will see :P

gamelaster commented 9 years ago

After some troubles i again reruned the build PPSSPP to Raspberry! Actually still got problems with building. Actually is all builds successfull but linking have trouble! I reinstalled Raspbian, but i didnt get this error on my build O_o i probably installed something what fix this, but i cant find now what has fixed that... Linking CXX executable PPSSPPSDL lib/libCore.a(Framebuffer.cpp.o): In function FramebufferManager::ClearDepthBuffer()': Framebuffer.cpp:(.text+0x1430): undefined reference toglClearDepth' lib/libCore.a(Framebuffer.cpp.o): In function `FramebufferManager::ClearBuffer()':

Its looks like missing some OpenGL headers, but idk, i tried update RPI firmware what contains /opt/vc/ but not helped. I installed almost all MESA libraries, but again not helped. Fully disoriented and without idea... But probably, if i solve this trouble, its may to works good...

BTW, Qt build failed too, error: Common -I../ffmpeg/linux/armv7/include -I../../ppsspp -I../native -I../native/ext/glew -I/usr/X11R6/include -I.moc/GPU -I. -o .obj/GPU/Rasterizer.o ../GPU/Software/Rasterizer.cpp ../GPU/Software/Rasterizer.cpp: In function ‘void Rasterizer::DrawLine(const VertexData&, const VertexData&)’: ../GPU/Software/Rasterizer.cpp:1503:1: error: unrecognizable insn: (insn 2246 2245 2247 13 (set (reg:HI 2 r2) (reg:SI 73 s10)) ../GPU/Software/Rasterizer.cpp:1488 -1 (nil)) ../GPU/Software/Rasterizer.cpp:1503:1: internal compiler error: in extract_insn, at recog.c:2123

unknownbrackets commented 9 years ago

I think you're not getting USING_GLES2 defined for some reason, but using GLES2 libs. I think you want that defined.

The Qt thing, "unrecognizable insn"? That seems bad. What version of gcc?

-[Unknown]

gamelaster commented 9 years ago

[Unknown](u have awesome name :D), i didnt changed CMakeList or anything, all is default. My gcc version is 4.7 (i can check more, but 100% i have 4.7, but i have installed 4.6 too, but i selected 4.7 by update-alternatives). Someone telled me to add -lGL and -lX11 to the linker, but idk how... :/ I now going to try build libretro ppsspp what works?!? :-)

unknownbrackets commented 9 years ago

Hmm, not sure, but try adding USING_GLES2 to CMakeCache.txt. It's a user option:

option(USING_GLES2 "Set to ON if target device uses OpenGL ES 2.0" ${USING_GLES2})

It's not on by default with RPI, not sure if it should be.

-[Unknown]

steevp commented 9 years ago

I had better success building the libretro core

$ git clone https://github.com/libretro/libretro-ppsspp.git
$ cd libretro-ppsspp
$ git submodule init && git submodule update
$ export CC=gcc-4.8
$ export CXX=g++-4.8
$ export CFLAGS="-mcpu=cortex-a7 -mfpu=neon-vfpv4 -mfloat-abi=hard -I/opt/vc/include"
$ export CXXFLAGS="$CFLAGS"
$ export LDFLAGS="-L/opt/vc/lib"
$ cd libretro
$ make platform=imx6 -j4

The compiler gives 'conflicting specifier' errors for these lines in gl3stub.h (had this problem with the standalone version, too). If I remove extern from those lines, the code compiles and links without errors

But now when I try to load the libretro core, it gives a bunch of 'undefined symbol' errors (probably related to the change I made above I guess?). I got rid of most of them by removing most of the code in the gl3stubInit function in gl3stub.c, leaving just:

GLboolean gl3stubInit() {
return GL_FALSE; // also tried GL_TRUE - I have no idea what I'm doing
}

The last remaining undefined symbol was glBlitFramebuffer, so (again not knowing what I'm doing) I removed every reference to it in GPU/GLES/Framebuffer.cpp and GPU/GLES/StencilBuffer.cpp

Now the libretro core loads and I can launch Tekken 6. It plays the intro movie and gets to the "Press start" screen, but then it crashes after I press start:

RetroArch [WARN] :: udev_input_init :: [udev]: Couldn't open any keyboard, mouse or touchpad. Are permissions set correctly for /dev/input/event*?
W: ../native/file/file_util.cpp:220: W: IsDirectory: stat failed on /home/pi/system/PPSSPP/lang/.ini
RetroArch [WARN] :: udev_input_init :: [udev]: Couldn't open any keyboard, mouse or touchpad. Are permissions set correctly for /dev/input/event*?
RetroArch: rarch_log_libretro: [libretro INFO] :: Context reset!
I: ../native/gfx/gl_lost_manager.cpp:50: I: gl_lost() restoring 0 items:
I: ../native/gfx/gl_lost_manager.cpp:55: I: gl_lost() completed restoring 0 items:
I: ../native/gfx_es2/gl_state.cpp:137: I: GPU Vendor : Broadcom ; renderer: VideoCore IV HW version str: OpenGL ES 2.0 ; GLSL version str: OpenGL ES GLSL ES 1.00
I: ../native/gfx_es2/gpu_features.cpp:20: I: Checking for GL driver bugs... vendor=7 model='VideoCore IV HW'
W: ../native/file/file_util.cpp:220: W: IsDirectory: stat failed on /home/pi/system/PPSSPP/flash0/font/jpn0.pgf
Failed to load ppge_atlas.zim.

Place it in the directory "assets" under your PPSSPP directory.
W: ../native/file/file_util.cpp:220: W: IsDirectory: stat failed on /home/pi/system/PPSSPP/shaders
I: ../native/file/zip_read.cpp:359: I: Not a VFS path: /home/pi/system/PPSSPP/PSP/shaders . Reading local directory.
W: ../native/file/file_util.cpp:220: W: IsDirectory: stat failed on /home/pi/system/PPSSPP/flash0/font/jpn0.pgf
I: ../native/gfx_es2/fbo.cpp:194: I: Creating 512 x 1 FBO using separate stencil
I: ../native/gfx_es2/fbo.cpp:194: I: Creating 512 x 272 FBO using separate stencil
glGetError 0x500
I: ../native/gfx_es2/fbo.cpp:194: I: Creating 480 x 272 FBO using separate stencil
glGetError 0x500
I: ../native/gfx_es2/fbo.cpp:194: I: Creating 480 x 272 FBO using separate stencil
glGetError 0x500
glGetError 0x500
glGetError 0x500
glGetError 0x500
glGetError 0x500
glGetError 0x500
glGetError 0x500
glGetError 0x500
glGetError 0x500
glGetError 0x500
glGetError 0x500
glGetError 0x500
glGetError 0x500
glGetError 0x500
glGetError 0x500
glGetError 0x500
glGetError 0x500
glGetError 0x500
glGetError 0x500
glGetError 0x500
glGetError 0x500
glGetError 0x500
glGetError 0x500
glGetError 0x500
glGetError 0x500
glGetError 0x500
glGetError 0x500
glGetError 0x500
glGetError 0x500
pure virtual method called
terminate called without an active exception
Aborted
robertybob commented 9 years ago

Great progress @steevp ! How smoothly does the video play?

steevp commented 9 years ago

The video was very smooth, everything seemed to be running full speed up until the point that it crashed (though I never actually got into gameplay)

The only other game I tried was Vice City Stories, which crashed immediately with:

pure virtual method called
terminate called without an active exception 
Aborted

I'll try some more games just to see if something works, but I'm sure I probably broke something by removing all those lines

hrydgard commented 9 years ago

"pure virtual method called" is almost always from trying to call a method on a deleted object, of some sort. Can you get a callstack? (run in gdb or lldb, type bt after the crash)

steevp commented 9 years ago

@hrydgard Anything useful here?

Program received signal SIGABRT, Aborted.
[Switching to Thread 0x7403c470 (LWP 2152)]
0x76bef8dc in raise () from /lib/arm-linux-gnueabihf/libc.so.6
(gdb) bt
#0  0x76bef8dc in raise () from /lib/arm-linux-gnueabihf/libc.so.6
#1  0x76bf365c in abort () from /lib/arm-linux-gnueabihf/libc.so.6
#2  0x71d15c0c in ?? () from /usr/lib/arm-linux-gnueabihf/libstdc++.so.6
#3  0x71d15c0c in ?? () from /usr/lib/arm-linux-gnueabihf/libstdc++.so.6
Backtrace stopped: previous frame identical to this frame (corrupt stack?)
(gdb) 
hrydgard commented 9 years ago

No, unfortunately not. You might want to compile with -O0 and -g options for a better stacktrace..

steevp commented 9 years ago

Hmm unfortunately the result was the same with -O0 -g

mihailescu2m commented 9 years ago

Got it working on RPI2.

You don't need to change much:

Run cmake, edit CMakeCache.txt and set FBDEV to ON, GLES2 to ON, maybe even MOBILE_DEVICE to ON, run cmake again, then run make.

A bit disappointed with the performance (GPU clocked at 500MHz), it runs fullspeed on the odroid... https://www.youtube.com/watch?v=O8juShfoJtE

steevp commented 9 years ago

There must have been something wrong with my Raspbian install. I switched to a different sdcard with Arch Linux ARM and the libretro core works now as well.

mihailescu2m commented 9 years ago

what's the performance of the libretro core?

hrydgard commented 9 years ago

The "libretro core" is PPSSPP so it's the same.

mihailescu2m commented 9 years ago

No, for example I don't have shared context in RetroArch so only buffered works, which is slower than unbuffered. But this was on Mali, not rpi2.

hrydgard commented 9 years ago

Right, all settings may not work but apart from that it's the same :)

steevp commented 9 years ago

Here's a video of the libretro core: http://youtu.be/tqLM5DuUgo0

I'm not familiar with all the PPSSPP options, but I turned on everything marked "speedhack" and left the resolution low. No frameskip

My overclock settings are: arm_freq=1000 core_freq=500 sdram_freq=500 over_voltage=2

mihailescu2m commented 9 years ago

thanks @steevp - it's indeed much slower than the standalone simulator. i think 1x resolution buffered can get almost 60fps, though i only test with 2x resolution. Can you try to use the SDL2 retroarch video driver and unbuffered with 960 resolution?

steevp commented 9 years ago

I couldn't get the SDL2 driver to work without X11 in RetroArch (It works with PPSSPP standalone so I guess my SDL2 build is okay). Under X it was terrible. ~5 fps just in the menu

robertybob commented 9 years ago

Hi @steevp @mihailescu2m , I'm a Linux noob. Are you able to post here, or somewhere, detailed step by step instructions of how to compile this?

misterjbam commented 9 years ago

Hello . Thanks thanks thanks it's work great

https://www.youtube.com/watch?v=qwtffTKyG1o

misterjbam commented 9 years ago

SAVE and LOAD crashes :'( And for you ?

JefroB commented 9 years ago

any movement on this?

unknownbrackets commented 9 years ago

Probably this is the best: https://github.com/hrydgard/ppsspp/issues/7479#issuecomment-75403013

That being said, don't expect great performance. The GPU is not very strong.

-[Unknown]

JefroB commented 9 years ago

...and that's not crashing on saving and loading? I've been following the thread on the retropie forums (notice the link directly below the post you linked to.) Nobody there seems to be able to save or load anything.

gamelaster commented 9 years ago

So, im there again, i trying building PPSSPP again, all works great until linking CXX executables

/usr/bin/ld: /usr/lib/gcc/arm-linux-gnueabihf/4.7/../../../arm-linux-gnueabihf/libSDL2.so: undefined reference to symbol 'XOpenDisplay'
//usr/lib/arm-linux-gnueabihf/libX11.so.6: error adding symbols: DSO missing from command line

I tryied to fix that but with failure. I just gitted clean PPSSPP repositary + update and added headers what writing @mihailescu2m , but i dont enabled GLES2 and FBDEV, but i dont think is about that. Any ideas?

gamelaster commented 9 years ago
Linking CXX executable PPSSPPSDL
lib/libCore.a(Framebuffer.cpp.o): In function `FramebufferManager::ClearDepthBuffer()':
Framebuffer.cpp:(.text+0x83c): undefined reference to `glClearDepth'
lib/libCore.a(Framebuffer.cpp.o): In function `FramebufferManager::ClearBuffer()':
Framebuffer.cpp:(.text+0xcd0): undefined reference to `glClearDepth'
lib/libCore.a(Framebuffer.cpp.o): In function `FramebufferManager::GetCurrentFramebuffer(GPUDebugBuffer&)':
Framebuffer.cpp:(.text+0x2034): undefined reference to `glReadBuffer'
lib/libCore.a(Framebuffer.cpp.o): In function `FramebufferManager::GetCurrentDepthbuffer(GPUDebugBuffer&)':
Framebuffer.cpp:(.text+0x22a4): undefined reference to `glReadBuffer'
lib/libCore.a(Framebuffer.cpp.o): In function `FramebufferManager::GetCurrentStencilbuffer(GPUDebugBuffer&)':
Framebuffer.cpp:(.text+0x2418): undefined reference to `glReadBuffer'
lib/libnative.a(thin3d_gl.cpp.o): In function `Thin3DGLContext::Clear(int, unsigned int, float, int)':
thin3d_gl.cpp:(.text+0x180): undefined reference to `glClearDepth'
lib/libnative.a(thin3d_gl.cpp.o): In function `Thin3DGLContext::SetViewports(int, T3DViewport*)':
thin3d_gl.cpp:(.text._ZN15Thin3DGLContext12SetViewportsEiP11T3DViewport[_ZN15Thin3DGLContext12SetViewportsEiP11T3DViewport]+0xb4): undefined reference to `glDepthRange'
lib/libCore.a(GLES_GPU.cpp.o): In function `GLES_GPU::GetCurrentTexture(GPUDebugBuffer&, int) [clone .part.10]':
GLES_GPU.cpp:(.text+0xaa4): undefined reference to `glGetTexLevelParameteriv'
GLES_GPU.cpp:(.text+0xab8): undefined reference to `glGetTexLevelParameteriv'
GLES_GPU.cpp:(.text+0xb5c): undefined reference to `glGetTexImage'
GLES_GPU.cpp:(.text+0xbb4): undefined reference to `glGetTexLevelParameteriv'
GLES_GPU.cpp:(.text+0xbc8): undefined reference to `glGetTexLevelParameteriv'
lib/libCore.a(TransformPipeline.cpp.o): In function `TransformDrawEngine::DoFlush()':
TransformPipeline.cpp:(.text+0x2050): undefined reference to `glClearDepth'
lib/libCore.a(StateMapping.cpp.o): In function `TransformDrawEngine::ApplyDrawState(int)':
StateMapping.cpp:(.text+0x1bd8): undefined reference to `glDepthRange'
StateMapping.cpp:(.text+0x1f5c): undefined reference to `glDepthRange'
lib/libnative.a(gl_state.cpp.o): In function `OpenGLState::Restore()':
gl_state.cpp:(.text+0xbc): undefined reference to `glDepthRange'
lib/libglew.a(glew.c.o): In function `_glewInit_GL_VERSION_1_3':
glew.c:(.text+0x178): undefined reference to `glXGetProcAddressARB'
glew.c:(.text+0x18c): undefined reference to `glXGetProcAddressARB'
glew.c:(.text+0x1a0): undefined reference to `glXGetProcAddressARB'
glew.c:(.text+0x1b4): undefined reference to `glXGetProcAddressARB'
glew.c:(.text+0x1c8): undefined reference to `glXGetProcAddressARB'
lib/libglew.a(glew.c.o):glew.c:(.text+0x1dc): more undefined references to `glXGetProcAddressARB' follow
lib/libglew.a(glew.c.o): In function `glxewGetExtension':
glew.c:(.text+0x109c0): undefined reference to `glXGetClientString'
lib/libglew.a(glew.c.o): In function `glxewContextInit':
glew.c:(.text+0x10a20): undefined reference to `glXGetProcAddressARB'
glew.c:(.text+0x10a54): undefined reference to `glXQueryVersion'
glew.c:(.text+0x10a78): undefined reference to `glXGetClientString'
glew.c:(.text+0x10b18): undefined reference to `glXGetProcAddressARB'
glew.c:(.text+0x110e8): undefined reference to `glXGetProcAddressARB'
glew.c:(.text+0x11100): undefined reference to `glXGetProcAddressARB'
glew.c:(.text+0x11154): undefined reference to `glXGetProcAddressARB'
glew.c:(.text+0x1116c): undefined reference to `glXGetProcAddressARB'
lib/libglew.a(glew.c.o):glew.c:(.text+0x11180): more undefined references to `glXGetProcAddressARB' follow
collect2: error: ld returned 1 exit status
CMakeFiles/PPSSPPSDL.dir/build.make:656: recipe for target 'PPSSPPSDL' failed
make[2]: *** [PPSSPPSDL] Error 1
CMakeFiles/Makefile2:210: recipe for target 'CMakeFiles/PPSSPPSDL.dir/all' failed
make[1]: *** [CMakeFiles/PPSSPPSDL.dir/all] Error 2
Makefile:72: recipe for target 'all' failed
make: *** [all] Error 2

Now this... oh ..

Bigpet commented 9 years ago

@GAMELASTER This is about FBDEV and GLES2 (trying to link to X11 stuff is the default and FBDEV changes that)

gamelaster commented 9 years ago

@Bigpet so, when i have enabled FBDEV, i got the GLEW compiling errors, but when is disabled i have x11 errors. So what now? mmm Adding my edited CMAKEList where i imported headers: http://pastebin.com/e9NMHRJg

sergiobenrocha2 commented 9 years ago

About that "undefined reference to symbol 'XOpenDisplay'", it seems it's missing this in CMakeLists.txt (-lX11):

find_package(X11)
gamelaster commented 9 years ago

I think the managing a X11 doing a FBDEV

gamelaster commented 9 years ago

Well, again i trying to build PPSSPP (no libretro) on Raspberry Pi. Actualy, i still get this error:

lib/libCore.a(Framebuffer.cpp.o): In function `FramebufferManager::ClearDepthBuffer()':
Framebuffer.cpp:(.text+0x83c): undefined reference to `glClearDepth'

I have FBDEV enabled and adding the GLEW libraries is enabled.. Well, for example of this error.Its says the glClearDepth is NOT defined... But, we can find the definition of glClearDepth at native/ext/glew/GL/glew.h , what is linked in GLEW library. So i think is something with including of GLEW library...

sergiobenrocha2 commented 9 years ago

I think ARM (GLES) boards does not use GLEW.

sergiobenrocha2 commented 9 years ago

@GAMELASTER , issue #7815 may be useful for you. SDL version will not work in these ARM boards, it's trying to use GL instead GLES. So it's useless you try to compile SDL for now. Have you tried to compile Qt version?

Here the deps to compile the Qt version under ARM:

libqt5opengl5-dev, libsdl2-dev, qt5-qmake, qtbase5-dev, qttools5-dev-tools, zlib1g-dev

gamelaster commented 9 years ago

@sergiobenrocha2 Well, actually at february i tested a Qt version, but its not work. Im going to do that again. Thanks

sergiobenrocha2 commented 9 years ago

Are you using this for SDL?

cmake . -DUSING_GLES2=ON

In native/gfx/gl_common.h, there's a #elif defined(USING_GLES2), so it'll use Glew only in desktop (non GLES hardware, line 13)

The Qt version is the only one working for me, on Odroid U3. I think there's a guy in Odroid forums that managed to compile sdl-fbdev version for Odroid C1.