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
11.05k stars 2.15k forks source link

Odroid XU4 - SDLMain.cpp.o Failed #11344

Closed blisstik closed 5 years ago

blisstik commented 6 years ago

Hello, I'm trying to compile using the following parameters and it is failing at the 33% mark. I initially had an issue with "Could not find Snappy" which I installed which is gone but it is still failing. Any advice is appreciated. Thank you!

-DUSING_GLES2=ON -DUSING_FBDEV=ON -DUSING_EGL=ON -DUSING_X11_VULKAN=OFF -DARMV7=ON

Full log: https://paste.ee/p/z7TQK

[ 33%] Building CXX object ext/armips/CMakeFiles/armips.dir/Util/FileClasses.cpp.o
[ 33%] Building CXX object ext/armips/CMakeFiles/armips.dir/Util/Util.cpp.o
/home/pigaming/RetroPie-Setup/tmp/build/ppsspp/ppsspp/ext/armips/Util/Util.cpp: In function ‘void changeDirectory(const wstring&)’:
/home/pigaming/RetroPie-Setup/tmp/build/ppsspp/ppsspp/ext/armips/Util/Util.cpp:286:21: warning: ignoring return value of ‘int chdir(const char*)’, declared with attribute warn_unused_result [-Wunused-result]
  chdir(utf8.c_str());
                     ^
At global scope:
cc1plus: warning: unrecognized command line option ‘-Wno-deprecated-register’
[ 33%] Linking CXX static library ../../lib/libarmips.a
[ 33%] Built target armips
Scanning dependencies of target native
[ 33%] Building CXX object CMakeFiles/native.dir/SDL/SDLJoystick.cpp.o
[ 33%] Building CXX object CMakeFiles/native.dir/SDL/SDLMain.cpp.o
In file included from /home/pigaming/RetroPie-Setup/tmp/build/ppsspp/ppsspp/ext/native/gfx/gl_common.h:25:0,
                 from /home/pigaming/RetroPie-Setup/tmp/build/ppsspp/ppsspp/ext/native/thin3d/GLRenderManager.h:14,
                 from /home/pigaming/RetroPie-Setup/tmp/build/ppsspp/ppsspp/SDL/SDLMain.cpp:34:
/home/pigaming/RetroPie-Setup/tmp/build/ppsspp/ppsspp/ext/native/gfx/../gfx_es2/gl3stub.h:502:152: error: ‘void (* glBindFragDataLocationIndexedEXT)(GLuint, GLuint, GLuint, const GLchar*)’ redeclared as different kind of symbol
 extern GL_APICALL void           (* GL_APIENTRY glBindFragDataLocationIndexedEXT) (GLuint program, GLuint colorNumber, GLuint index, const GLchar *name);
                                                                                                                                                        ^
In file included from /home/pigaming/RetroPie-Setup/tmp/build/ppsspp/ppsspp/ext/native/gfx/gl_common.h:8:0,
                 from /home/pigaming/RetroPie-Setup/tmp/build/ppsspp/ppsspp/ext/native/thin3d/GLRenderManager.h:14,
                 from /home/pigaming/RetroPie-Setup/tmp/build/ppsspp/ppsspp/SDL/SDLMain.cpp:34:
/usr/include/GLES2/gl2ext.h:1089:29: note: previous declaration ‘void glBindFragDataLocationIndexedEXT(GLuint, GLuint, GLuint, const GLchar*)’
 GL_APICALL void GL_APIENTRY glBindFragDataLocationIndexedEXT (GLuint program, GLuint colorNumber, GLuint index, const GLchar *name);
                             ^
In file included from /home/pigaming/RetroPie-Setup/tmp/build/ppsspp/ppsspp/ext/native/gfx/gl_common.h:25:0,
                 from /home/pigaming/RetroPie-Setup/tmp/build/ppsspp/ppsspp/ext/native/thin3d/GLRenderManager.h:14,
                 from /home/pigaming/RetroPie-Setup/tmp/build/ppsspp/ppsspp/SDL/SDLMain.cpp:34:
/home/pigaming/RetroPie-Setup/tmp/build/ppsspp/ppsspp/ext/native/gfx/../gfx_es2/gl3stub.h:503:125: error: ‘void (* glBindFragDataLocationEXT)(GLuint, GLuint, const GLchar*)’ redeclared as different kind of symbol
 extern GL_APICALL void           (* GL_APIENTRY glBindFragDataLocationEXT) (GLuint program, GLuint color, const GLchar *name);
                                                                                                                             ^
In file included from /home/pigaming/RetroPie-Setup/tmp/build/ppsspp/ppsspp/ext/native/gfx/gl_common.h:8:0,
                 from /home/pigaming/RetroPie-Setup/tmp/build/ppsspp/ppsspp/ext/native/thin3d/GLRenderManager.h:14,
                 from /home/pigaming/RetroPie-Setup/tmp/build/ppsspp/ppsspp/SDL/SDLMain.cpp:34:
/usr/include/GLES2/gl2ext.h:1090:29: note: previous declaration ‘void glBindFragDataLocationEXT(GLuint, GLuint, const GLchar*)’
 GL_APICALL void GL_APIENTRY glBindFragDataLocationEXT (GLuint program, GLuint color, const GLchar *name);
                             ^
In file included from /home/pigaming/RetroPie-Setup/tmp/build/ppsspp/ppsspp/ext/native/gfx/gl_common.h:25:0,
                 from /home/pigaming/RetroPie-Setup/tmp/build/ppsspp/ppsspp/ext/native/thin3d/GLRenderManager.h:14,
                 from /home/pigaming/RetroPie-Setup/tmp/build/ppsspp/ppsspp/SDL/SDLMain.cpp:34:
/home/pigaming/RetroPie-Setup/tmp/build/ppsspp/ppsspp/ext/native/gfx/../gfx_es2/gl3stub.h:504:147: error: ‘GLint (* glGetProgramResourceLocationIndexEXT)(GLuint, GLenum, const GLchar*)’ redeclared as different kind of symbol
 extern GL_APICALL GLint          (* GL_APIENTRY glGetProgramResourceLocationIndexEXT) (GLuint program, GLenum programInterface, const GLchar *name);
                                                                                                                                                   ^
In file included from /home/pigaming/RetroPie-Setup/tmp/build/ppsspp/ppsspp/ext/native/gfx/gl_common.h:8:0,
                 from /home/pigaming/RetroPie-Setup/tmp/build/ppsspp/ppsspp/ext/native/thin3d/GLRenderManager.h:14,
                 from /home/pigaming/RetroPie-Setup/tmp/build/ppsspp/ppsspp/SDL/SDLMain.cpp:34:
/usr/include/GLES2/gl2ext.h:1091:30: note: previous declaration ‘GLint glGetProgramResourceLocationIndexEXT(GLuint, GLenum, const GLchar*)’
 GL_APICALL GLint GL_APIENTRY glGetProgramResourceLocationIndexEXT (GLuint program, GLenum programInterface, const GLchar *name);
                              ^
In file included from /home/pigaming/RetroPie-Setup/tmp/build/ppsspp/ppsspp/ext/native/gfx/gl_common.h:25:0,
                 from /home/pigaming/RetroPie-Setup/tmp/build/ppsspp/ppsspp/ext/native/thin3d/GLRenderManager.h:14,
                 from /home/pigaming/RetroPie-Setup/tmp/build/ppsspp/ppsspp/SDL/SDLMain.cpp:34:
/home/pigaming/RetroPie-Setup/tmp/build/ppsspp/ppsspp/ext/native/gfx/../gfx_es2/gl3stub.h:505:107: error: ‘GLint (* glGetFragDataIndexEXT)(GLuint, const GLchar*)’ redeclared as different kind of symbol
 extern GL_APICALL GLint          (* GL_APIENTRY glGetFragDataIndexEXT) (GLuint program, const GLchar *name);
                                                                                                           ^
In file included from /home/pigaming/RetroPie-Setup/tmp/build/ppsspp/ppsspp/ext/native/gfx/gl_common.h:8:0,
                 from /home/pigaming/RetroPie-Setup/tmp/build/ppsspp/ppsspp/ext/native/thin3d/GLRenderManager.h:14,
                 from /home/pigaming/RetroPie-Setup/tmp/build/ppsspp/ppsspp/SDL/SDLMain.cpp:34:
/usr/include/GLES2/gl2ext.h:1092:30: note: previous declaration ‘GLint glGetFragDataIndexEXT(GLuint, const GLchar*)’
 GL_APICALL GLint GL_APIENTRY glGetFragDataIndexEXT (GLuint program, const GLchar *name);
                              ^
In file included from /home/pigaming/RetroPie-Setup/tmp/build/ppsspp/ppsspp/ext/native/gfx/gl_common.h:25:0,
                 from /home/pigaming/RetroPie-Setup/tmp/build/ppsspp/ppsspp/ext/native/thin3d/GLRenderManager.h:14,
                 from /home/pigaming/RetroPie-Setup/tmp/build/ppsspp/ppsspp/SDL/SDLMain.cpp:34:
/home/pigaming/RetroPie-Setup/tmp/build/ppsspp/ppsspp/ext/native/gfx/../gfx_es2/gl3stub.h:508:136: error: ‘void (* glBufferStorageEXT)(GLenum, GLsizeiptr, const void*, GLbitfield)’ redeclared as different kind of symbol
 extern GL_APICALL void           (* GL_APIENTRY glBufferStorageEXT) (GLenum target, GLsizeiptr size, const void *data, GLbitfield flags);
                                                                                                                                        ^
In file included from /home/pigaming/RetroPie-Setup/tmp/build/ppsspp/ppsspp/ext/native/gfx/gl_common.h:8:0,
                 from /home/pigaming/RetroPie-Setup/tmp/build/ppsspp/ppsspp/ext/native/thin3d/GLRenderManager.h:14,
                 from /home/pigaming/RetroPie-Setup/tmp/build/ppsspp/ppsspp/SDL/SDLMain.cpp:34:
/usr/include/GLES2/gl2ext.h:1115:29: note: previous declaration ‘void glBufferStorageEXT(GLenum, GLsizeiptr, const void*, GLbitfield)’
 GL_APICALL void GL_APIENTRY glBufferStorageEXT (GLenum target, GLsizeiptr size, const void *data, GLbitfield flags);
                             ^
In file included from /home/pigaming/RetroPie-Setup/tmp/build/ppsspp/ppsspp/ext/native/gfx/gl_common.h:25:0,
                 from /home/pigaming/RetroPie-Setup/tmp/build/ppsspp/ppsspp/ext/native/thin3d/GLRenderManager.h:14,
                 from /home/pigaming/RetroPie-Setup/tmp/build/ppsspp/ppsspp/SDL/SDLMain.cpp:34:
/home/pigaming/RetroPie-Setup/tmp/build/ppsspp/ppsspp/ext/native/gfx/../gfx_es2/gl3stub.h:511:289: error: ‘void (* glCopyImageSubDataOES)(GLuint, GLenum, GLint, GLint, GLint, GLint, GLuint, GLenum, GLint, GLint, GLint, GLint, GLsizei, GLsizei, GLsizei)’ redeclared as different kind of symbol
 extern GL_APICALL void           (* GL_APIENTRY glCopyImageSubDataOES) (GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei width, GLsizei height, GLsizei depth);
                                                                                                                                                                                                                                                                                                 ^
In file included from /home/pigaming/RetroPie-Setup/tmp/build/ppsspp/ppsspp/ext/native/gfx/gl_common.h:8:0,
                 from /home/pigaming/RetroPie-Setup/tmp/build/ppsspp/ppsspp/ext/native/thin3d/GLRenderManager.h:14,
                 from /home/pigaming/RetroPie-Setup/tmp/build/ppsspp/ppsspp/SDL/SDLMain.cpp:34:
/usr/include/GLES2/gl2ext.h:280:29: note: previous declaration ‘void glCopyImageSubDataOES(GLuint, GLenum, GLint, GLint, GLint, GLint, GLuint, GLenum, GLint, GLint, GLint, GLint, GLsizei, GLsizei, GLsizei)’
 GL_APICALL void GL_APIENTRY glCopyImageSubDataOES (GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei srcWidth, GLsizei srcHeight, GLsizei srcDepth);
                             ^
cc1plus: warning: unrecognized command line option ‘-Wno-deprecated-register’
CMakeFiles/native.dir/build.make:86: recipe for target 'CMakeFiles/native.dir/SDL/SDLMain.cpp.o' failed
make[2]: *** [CMakeFiles/native.dir/SDL/SDLMain.cpp.o] Error 1
CMakeFiles/Makefile2:351: recipe for target 'CMakeFiles/native.dir/all' failed
make[1]: *** [CMakeFiles/native.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs....
[ 34%] Linking CXX static library ../../lib/libspirv-cross-glsl.a
[ 34%] Built target spirv-cross-glsl
Makefile:127: recipe for target 'all' failed
make: *** [all] Error 2
~
Could not successfully build ppsspp - PlayStation Portable emulator PPSSPP (/home/pigaming/RetroPie-Setup/tmp/build/ppsspp/ppsspp/PPSSPPSDL not found).

Log ended at: Sat Sep  1 15:45:17 UTC 2018
Total running time: 0 hours, 29 mins, 35 secs

What happens?

Could not compile

What should happen?

Should compile

What hardware, operating system, and PPSSPP version? On desktop, GPU matters for graphical issues.

Odroid XU4 w/ Mali-T628 MP6 (OpenGL ES 3.0/2.0/1.1 and OpenCL 1.1 Full profile) compiling for 1.6.3

AreaScout commented 6 years ago

Looks like a header file problem inside ext/native/gfx/gl_common.h add on first line this -> #define GL_GLEXT_PROTOTYPES

blisstik commented 6 years ago

@AreaScout Thanks but it did not work. Here's the log. I'm only trying to build for OpenGLES 3.0

[ 33%] Building CXX object ext/armips/CMakeFiles/armips.dir/Util/FileClasses.cpp.o
[ 33%] Building CXX object ext/armips/CMakeFiles/armips.dir/Util/Util.cpp.o
/home/pigaming/RetroPie-Setup/tmp/build/ppsspp/ppsspp/ext/armips/Util/Util.cpp: In function ‘void changeDirectory(const wstring&)’:
/home/pigaming/RetroPie-Setup/tmp/build/ppsspp/ppsspp/ext/armips/Util/Util.cpp:286:21: warning: ignoring return value of ‘int chdir(const char*)’, declared with attribute warn_unused_result [-Wunused-result]
  chdir(utf8.c_str());
                     ^
At global scope:
cc1plus: warning: unrecognized command line option ‘-Wno-deprecated-register’
[ 33%] Linking CXX static library ../../lib/libarmips.a
[ 33%] Built target armips
Scanning dependencies of target native
[ 33%] Building CXX object CMakeFiles/native.dir/SDL/SDLJoystick.cpp.o
[ 33%] Building CXX object CMakeFiles/native.dir/SDL/SDLMain.cpp.o
In file included from /home/pigaming/RetroPie-Setup/tmp/build/ppsspp/ppsspp/ext/native/gfx/gl_common.h:25:0,
                 from /home/pigaming/RetroPie-Setup/tmp/build/ppsspp/ppsspp/ext/native/thin3d/GLRenderManager.h:14,
                 from /home/pigaming/RetroPie-Setup/tmp/build/ppsspp/ppsspp/SDL/SDLMain.cpp:34:
/home/pigaming/RetroPie-Setup/tmp/build/ppsspp/ppsspp/ext/native/gfx/../gfx_es2/gl3stub.h:502:152: error: ‘void (* glBindFragDataLocationIndexedEXT)(GLuint, GLuint, GLuint, const GLchar*)’ redeclared as different kind of symbol
 extern GL_APICALL void           (* GL_APIENTRY glBindFragDataLocationIndexedEXT) (GLuint program, GLuint colorNumber, GLuint index, const GLchar *name);
                                                                                                                                                        ^
In file included from /home/pigaming/RetroPie-Setup/tmp/build/ppsspp/ppsspp/ext/native/gfx/gl_common.h:8:0,
                 from /home/pigaming/RetroPie-Setup/tmp/build/ppsspp/ppsspp/ext/native/thin3d/GLRenderManager.h:14,
                 from /home/pigaming/RetroPie-Setup/tmp/build/ppsspp/ppsspp/SDL/SDLMain.cpp:34:
/usr/include/GLES2/gl2ext.h:1089:29: note: previous declaration ‘void glBindFragDataLocationIndexedEXT(GLuint, GLuint, GLuint, const GLchar*)’
 GL_APICALL void GL_APIENTRY glBindFragDataLocationIndexedEXT (GLuint program, GLuint colorNumber, GLuint index, const GLchar *name);
                             ^
In file included from /home/pigaming/RetroPie-Setup/tmp/build/ppsspp/ppsspp/ext/native/gfx/gl_common.h:25:0,
                 from /home/pigaming/RetroPie-Setup/tmp/build/ppsspp/ppsspp/ext/native/thin3d/GLRenderManager.h:14,
                 from /home/pigaming/RetroPie-Setup/tmp/build/ppsspp/ppsspp/SDL/SDLMain.cpp:34:
/home/pigaming/RetroPie-Setup/tmp/build/ppsspp/ppsspp/ext/native/gfx/../gfx_es2/gl3stub.h:503:125: error: ‘void (* glBindFragDataLocationEXT)(GLuint, GLuint, const GLchar*)’ redeclared as different kind of symbol
 extern GL_APICALL void           (* GL_APIENTRY glBindFragDataLocationEXT) (GLuint program, GLuint color, const GLchar *name);
                                                                                                                             ^
In file included from /home/pigaming/RetroPie-Setup/tmp/build/ppsspp/ppsspp/ext/native/gfx/gl_common.h:8:0,
                 from /home/pigaming/RetroPie-Setup/tmp/build/ppsspp/ppsspp/ext/native/thin3d/GLRenderManager.h:14,
                 from /home/pigaming/RetroPie-Setup/tmp/build/ppsspp/ppsspp/SDL/SDLMain.cpp:34:
/usr/include/GLES2/gl2ext.h:1090:29: note: previous declaration ‘void glBindFragDataLocationEXT(GLuint, GLuint, const GLchar*)’
 GL_APICALL void GL_APIENTRY glBindFragDataLocationEXT (GLuint program, GLuint color, const GLchar *name);
                             ^
In file included from /home/pigaming/RetroPie-Setup/tmp/build/ppsspp/ppsspp/ext/native/gfx/gl_common.h:25:0,
                 from /home/pigaming/RetroPie-Setup/tmp/build/ppsspp/ppsspp/ext/native/thin3d/GLRenderManager.h:14,
                 from /home/pigaming/RetroPie-Setup/tmp/build/ppsspp/ppsspp/SDL/SDLMain.cpp:34:
/home/pigaming/RetroPie-Setup/tmp/build/ppsspp/ppsspp/ext/native/gfx/../gfx_es2/gl3stub.h:504:147: error: ‘GLint (* glGetProgramResourceLocationIndexEXT)(GLuint, GLenum, const GLchar*)’ redeclared as different kind of symbol
 extern GL_APICALL GLint          (* GL_APIENTRY glGetProgramResourceLocationIndexEXT) (GLuint program, GLenum programInterface, const GLchar *name);
                                                                                                                                                   ^
In file included from /home/pigaming/RetroPie-Setup/tmp/build/ppsspp/ppsspp/ext/native/gfx/gl_common.h:8:0,
                 from /home/pigaming/RetroPie-Setup/tmp/build/ppsspp/ppsspp/ext/native/thin3d/GLRenderManager.h:14,
                 from /home/pigaming/RetroPie-Setup/tmp/build/ppsspp/ppsspp/SDL/SDLMain.cpp:34:
/usr/include/GLES2/gl2ext.h:1091:30: note: previous declaration ‘GLint glGetProgramResourceLocationIndexEXT(GLuint, GLenum, const GLchar*)’
 GL_APICALL GLint GL_APIENTRY glGetProgramResourceLocationIndexEXT (GLuint program, GLenum programInterface, const GLchar *name);
                              ^
In file included from /home/pigaming/RetroPie-Setup/tmp/build/ppsspp/ppsspp/ext/native/gfx/gl_common.h:25:0,
                 from /home/pigaming/RetroPie-Setup/tmp/build/ppsspp/ppsspp/ext/native/thin3d/GLRenderManager.h:14,
                 from /home/pigaming/RetroPie-Setup/tmp/build/ppsspp/ppsspp/SDL/SDLMain.cpp:34:
/home/pigaming/RetroPie-Setup/tmp/build/ppsspp/ppsspp/ext/native/gfx/../gfx_es2/gl3stub.h:505:107: error: ‘GLint (* glGetFragDataIndexEXT)(GLuint, const GLchar*)’ redeclared as different kind of symbol
 extern GL_APICALL GLint          (* GL_APIENTRY glGetFragDataIndexEXT) (GLuint program, const GLchar *name);
                                                                                                           ^
In file included from /home/pigaming/RetroPie-Setup/tmp/build/ppsspp/ppsspp/ext/native/gfx/gl_common.h:8:0,
                 from /home/pigaming/RetroPie-Setup/tmp/build/ppsspp/ppsspp/ext/native/thin3d/GLRenderManager.h:14,
                 from /home/pigaming/RetroPie-Setup/tmp/build/ppsspp/ppsspp/SDL/SDLMain.cpp:34:
/usr/include/GLES2/gl2ext.h:1092:30: note: previous declaration ‘GLint glGetFragDataIndexEXT(GLuint, const GLchar*)’
 GL_APICALL GLint GL_APIENTRY glGetFragDataIndexEXT (GLuint program, const GLchar *name);
                              ^
In file included from /home/pigaming/RetroPie-Setup/tmp/build/ppsspp/ppsspp/ext/native/gfx/gl_common.h:25:0,
                 from /home/pigaming/RetroPie-Setup/tmp/build/ppsspp/ppsspp/ext/native/thin3d/GLRenderManager.h:14,
                 from /home/pigaming/RetroPie-Setup/tmp/build/ppsspp/ppsspp/SDL/SDLMain.cpp:34:
/home/pigaming/RetroPie-Setup/tmp/build/ppsspp/ppsspp/ext/native/gfx/../gfx_es2/gl3stub.h:508:136: error: ‘void (* glBufferStorageEXT)(GLenum, GLsizeiptr, const void*, GLbitfield)’ redeclared as different kind of symbol
 extern GL_APICALL void           (* GL_APIENTRY glBufferStorageEXT) (GLenum target, GLsizeiptr size, const void *data, GLbitfield flags);
                                                                                                                                        ^
In file included from /home/pigaming/RetroPie-Setup/tmp/build/ppsspp/ppsspp/ext/native/gfx/gl_common.h:8:0,
                 from /home/pigaming/RetroPie-Setup/tmp/build/ppsspp/ppsspp/ext/native/thin3d/GLRenderManager.h:14,
                 from /home/pigaming/RetroPie-Setup/tmp/build/ppsspp/ppsspp/SDL/SDLMain.cpp:34:
/usr/include/GLES2/gl2ext.h:1115:29: note: previous declaration ‘void glBufferStorageEXT(GLenum, GLsizeiptr, const void*, GLbitfield)’
 GL_APICALL void GL_APIENTRY glBufferStorageEXT (GLenum target, GLsizeiptr size, const void *data, GLbitfield flags);
                             ^
In file included from /home/pigaming/RetroPie-Setup/tmp/build/ppsspp/ppsspp/ext/native/gfx/gl_common.h:25:0,
                 from /home/pigaming/RetroPie-Setup/tmp/build/ppsspp/ppsspp/ext/native/thin3d/GLRenderManager.h:14,
                 from /home/pigaming/RetroPie-Setup/tmp/build/ppsspp/ppsspp/SDL/SDLMain.cpp:34:
/home/pigaming/RetroPie-Setup/tmp/build/ppsspp/ppsspp/ext/native/gfx/../gfx_es2/gl3stub.h:511:289: error: ‘void (* glCopyImageSubDataOES)(GLuint, GLenum, GLint, GLint, GLint, GLint, GLuint, GLenum, GLint, GLint, GLint, GLint, GLsizei, GLsizei, GLsizei)’ redeclared as different kind of symbol
 extern GL_APICALL void           (* GL_APIENTRY glCopyImageSubDataOES) (GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei width, GLsizei height, GLsizei depth);
                                                                                                                                                                                                                                                                                                 ^
In file included from /home/pigaming/RetroPie-Setup/tmp/build/ppsspp/ppsspp/ext/native/gfx/gl_common.h:8:0,
                 from /home/pigaming/RetroPie-Setup/tmp/build/ppsspp/ppsspp/ext/native/thin3d/GLRenderManager.h:14,
                 from /home/pigaming/RetroPie-Setup/tmp/build/ppsspp/ppsspp/SDL/SDLMain.cpp:34:
/usr/include/GLES2/gl2ext.h:280:29: note: previous declaration ‘void glCopyImageSubDataOES(GLuint, GLenum, GLint, GLint, GLint, GLint, GLuint, GLenum, GLint, GLint, GLint, GLint, GLsizei, GLsizei, GLsizei)’
 GL_APICALL void GL_APIENTRY glCopyImageSubDataOES (GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei srcWidth, GLsizei srcHeight, GLsizei srcDepth);
                             ^
cc1plus: warning: unrecognized command line option ‘-Wno-deprecated-register’
CMakeFiles/native.dir/build.make:86: recipe for target 'CMakeFiles/native.dir/SDL/SDLMain.cpp.o' failed
make[2]: *** [CMakeFiles/native.dir/SDL/SDLMain.cpp.o] Error 1
CMakeFiles/Makefile2:351: recipe for target 'CMakeFiles/native.dir/all' failed
make[1]: *** [CMakeFiles/native.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs....
[ 34%] Linking CXX static library ../../lib/libspirv-cross-glsl.a
[ 34%] Built target spirv-cross-glsl
Makefile:127: recipe for target 'all' failed
make: *** [all] Error 2
~
Could not successfully build ppsspp - PlayStation Portable emulator PPSSPP (/home/pigaming/RetroPie-Setup/tmp/build/ppsspp/ppsspp/PPSSPPSDL not found).

Log ended at: Sat Sep  1 16:59:02 UTC 2018
Total running time: 0 hours, 29 mins, 45 secs
AreaScout commented 6 years ago

That is the fbdev driver i guess from HK, let me check this

AreaScout commented 6 years ago

I see you are using different headers, HK headers do not have glGetProgramResourceLocationIndexEXT defined and therefore it can't redeclared as different kind of symbol

download HK mali fbdev package cd ~ wget http://deb.odroid.in/5422-s/pool/main/m/mali-fbdev/mali-fbdev_20180717-r12p0-a52903b-11_armhf.deb extract files ar x mali-fbdev_20180717-r12p0-a52903b-11_armhf.deb copy gl2.h to /usr/include/GLES2 and try it again

AreaScout commented 6 years ago

sorry gl2ext.h it should be

AreaScout commented 6 years ago

another 'rude' option would be to just temporary hide this six functions in your gl2ext.h with ´´//´´

glBindFragDataLocationIndexedEXT glBindFragDataLocationEXT glGetProgramResourceLocationIndexEXT glGetFragDataIndexEXT glBufferStorageEXT glCopyImageSubDataOES

blisstik commented 6 years ago

Do I have to revert the #define GL_GLEXT_PROTOTYPES changes


From: Daniel Mehrwald notifications@github.com Sent: Saturday, September 1, 2018 10:31 AM To: hrydgard/ppsspp Cc: 6alileo; Author Subject: Re: [hrydgard/ppsspp] Odroid XU4 - SDLMain.cpp.o Failed (#11344)

sorry gl2ext.h it should be

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHubhttps://github.com/hrydgard/ppsspp/issues/11344#issuecomment-417875082, or mute the threadhttps://github.com/notifications/unsubscribe-auth/AoSfFMapw_Vg8vvUdyb2j2RKOOJaWywfks5uWsR8gaJpZM4WWRZQ.

AreaScout commented 6 years ago

yes I think so, just try it, it does not take that long

blisstik commented 6 years ago

It looks like it passed that part, now a different issue. BTW: its using mesa headers.

[ 34%] Building CXX object CMakeFiles/native.dir/SDL/SDLMain.cpp.o
/home/pigaming/RetroPie-Setup/tmp/build/ppsspp/ppsspp/ext/armips/Util/Util.cpp: In function ‘void changeDirectory(const wstring&)’:
/home/pigaming/RetroPie-Setup/tmp/build/ppsspp/ppsspp/ext/armips/Util/Util.cpp:286:21: warning: ignoring return value of ‘int chdir(const char*)’, declared with attribute warn_unused_result [-Wunused-result]
  chdir(utf8.c_str());
                     ^
At global scope:
cc1plus: warning: unrecognized command line option ‘-Wno-deprecated-register’
[ 34%] Linking CXX static library ../../lib/libarmips.a
[ 34%] Built target armips
[ 34%] Building CXX object CMakeFiles/native.dir/SDL/SDLGLGraphicsContext.cpp.o
In file included from /home/pigaming/RetroPie-Setup/tmp/build/ppsspp/ppsspp/ext/native/gfx/gl_common.h:25:0,
                 from /home/pigaming/RetroPie-Setup/tmp/build/ppsspp/ppsspp/ext/native/thin3d/GLRenderManager.h:14,
                 from /home/pigaming/RetroPie-Setup/tmp/build/ppsspp/ppsspp/SDL/SDLMain.cpp:34:
/home/pigaming/RetroPie-Setup/tmp/build/ppsspp/ppsspp/ext/native/gfx/../gfx_es2/gl3stub.h:508:136: error: ‘void (* glBufferStorageEXT)(GLenum, GLsizeiptr, const void*, GLbitfield)’ redeclared as different kind of symbol
 extern GL_APICALL void           (* GL_APIENTRY glBufferStorageEXT) (GLenum target, GLsizeiptr size, const void *data, GLbitfield flags);
                                                                                                                                        ^
In file included from /home/pigaming/RetroPie-Setup/tmp/build/ppsspp/ppsspp/ext/native/gfx/gl_common.h:8:0,
                 from /home/pigaming/RetroPie-Setup/tmp/build/ppsspp/ppsspp/ext/native/thin3d/GLRenderManager.h:14,
                 from /home/pigaming/RetroPie-Setup/tmp/build/ppsspp/ppsspp/SDL/SDLMain.cpp:34:
/usr/include/GLES2/gl2ext.h:1060:29: note: previous declaration ‘void glBufferStorageEXT(GLenum, GLsizeiptr, const void*, GLbitfield)’
 GL_APICALL void GL_APIENTRY glBufferStorageEXT (GLenum target, GLsizeiptr size, const void *data, GLbitfield flags);
                             ^
In file included from /home/pigaming/RetroPie-Setup/tmp/build/ppsspp/ppsspp/ext/native/gfx/gl_common.h:25:0,
                 from /home/pigaming/RetroPie-Setup/tmp/build/ppsspp/ppsspp/ext/native/thin3d/GLRenderManager.h:14,
                 from /home/pigaming/RetroPie-Setup/tmp/build/ppsspp/ppsspp/SDL/SDLMain.cpp:34:
/home/pigaming/RetroPie-Setup/tmp/build/ppsspp/ppsspp/ext/native/gfx/../gfx_es2/gl3stub.h:511:289: error: ‘void (* glCopyImageSubDataOES)(GLuint, GLenum, GLint, GLint, GLint, GLint, GLuint, GLenum, GLint, GLint, GLint, GLint, GLsizei, GLsizei, GLsizei)’ redeclared as different kind of symbol
 extern GL_APICALL void           (* GL_APIENTRY glCopyImageSubDataOES) (GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei width, GLsizei height, GLsizei depth);
                                                                                                                                                                                                                                                                                                 ^
In file included from /home/pigaming/RetroPie-Setup/tmp/build/ppsspp/ppsspp/ext/native/gfx/gl_common.h:8:0,
                 from /home/pigaming/RetroPie-Setup/tmp/build/ppsspp/ppsspp/ext/native/thin3d/GLRenderManager.h:14,
                 from /home/pigaming/RetroPie-Setup/tmp/build/ppsspp/ppsspp/SDL/SDLMain.cpp:34:
/usr/include/GLES2/gl2ext.h:278:29: note: previous declaration ‘void glCopyImageSubDataOES(GLuint, GLenum, GLint, GLint, GLint, GLint, GLuint, GLenum, GLint, GLint, GLint, GLint, GLsizei, GLsizei, GLsizei)’
 GL_APICALL void GL_APIENTRY glCopyImageSubDataOES (GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei srcWidth, GLsizei srcHeight, GLsizei srcDepth);
                             ^
In file included from /home/pigaming/RetroPie-Setup/tmp/build/ppsspp/ppsspp/ext/native/gfx/gl_common.h:25:0,
                 from /home/pigaming/RetroPie-Setup/tmp/build/ppsspp/ppsspp/ext/native/thin3d/GLRenderManager.h:14,
                 from /home/pigaming/RetroPie-Setup/tmp/build/ppsspp/ppsspp/SDL/SDLGLGraphicsContext.h:6,
                 from /home/pigaming/RetroPie-Setup/tmp/build/ppsspp/ppsspp/SDL/SDLGLGraphicsContext.cpp:1:
/home/pigaming/RetroPie-Setup/tmp/build/ppsspp/ppsspp/ext/native/gfx/../gfx_es2/gl3stub.h:508:136: error: ‘void (* glBufferStorageEXT)(GLenum, GLsizeiptr, const void*, GLbitfield)’ redeclared as different kind of symbol
 extern GL_APICALL void           (* GL_APIENTRY glBufferStorageEXT) (GLenum target, GLsizeiptr size, const void *data, GLbitfield flags);
                                                                                                                                        ^
In file included from /home/pigaming/RetroPie-Setup/tmp/build/ppsspp/ppsspp/ext/native/gfx/gl_common.h:8:0,
                 from /home/pigaming/RetroPie-Setup/tmp/build/ppsspp/ppsspp/ext/native/thin3d/GLRenderManager.h:14,
                 from /home/pigaming/RetroPie-Setup/tmp/build/ppsspp/ppsspp/SDL/SDLGLGraphicsContext.h:6,
                 from /home/pigaming/RetroPie-Setup/tmp/build/ppsspp/ppsspp/SDL/SDLGLGraphicsContext.cpp:1:
/usr/include/GLES2/gl2ext.h:1060:29: note: previous declaration ‘void glBufferStorageEXT(GLenum, GLsizeiptr, const void*, GLbitfield)’
 GL_APICALL void GL_APIENTRY glBufferStorageEXT (GLenum target, GLsizeiptr size, const void *data, GLbitfield flags);
                             ^
In file included from /home/pigaming/RetroPie-Setup/tmp/build/ppsspp/ppsspp/ext/native/gfx/gl_common.h:25:0,
                 from /home/pigaming/RetroPie-Setup/tmp/build/ppsspp/ppsspp/ext/native/thin3d/GLRenderManager.h:14,
                 from /home/pigaming/RetroPie-Setup/tmp/build/ppsspp/ppsspp/SDL/SDLGLGraphicsContext.h:6,
                 from /home/pigaming/RetroPie-Setup/tmp/build/ppsspp/ppsspp/SDL/SDLGLGraphicsContext.cpp:1:
/home/pigaming/RetroPie-Setup/tmp/build/ppsspp/ppsspp/ext/native/gfx/../gfx_es2/gl3stub.h:511:289: error: ‘void (* glCopyImageSubDataOES)(GLuint, GLenum, GLint, GLint, GLint, GLint, GLuint, GLenum, GLint, GLint, GLint, GLint, GLsizei, GLsizei, GLsizei)’ redeclared as different kind of symbol
 extern GL_APICALL void           (* GL_APIENTRY glCopyImageSubDataOES) (GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei width, GLsizei height, GLsizei depth);
                                                                                                                                                                                                                                                                                                 ^
In file included from /home/pigaming/RetroPie-Setup/tmp/build/ppsspp/ppsspp/ext/native/gfx/gl_common.h:8:0,
                 from /home/pigaming/RetroPie-Setup/tmp/build/ppsspp/ppsspp/ext/native/thin3d/GLRenderManager.h:14,
                 from /home/pigaming/RetroPie-Setup/tmp/build/ppsspp/ppsspp/SDL/SDLGLGraphicsContext.h:6,
                 from /home/pigaming/RetroPie-Setup/tmp/build/ppsspp/ppsspp/SDL/SDLGLGraphicsContext.cpp:1:
/usr/include/GLES2/gl2ext.h:278:29: note: previous declaration ‘void glCopyImageSubDataOES(GLuint, GLenum, GLint, GLint, GLint, GLint, GLuint, GLenum, GLint, GLint, GLint, GLint, GLsizei, GLsizei, GLsizei)’
 GL_APICALL void GL_APIENTRY glCopyImageSubDataOES (GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei srcWidth, GLsizei srcHeight, GLsizei srcDepth);
                             ^
cc1plus: warning: unrecognized command line option ‘-Wno-deprecated-register’
CMakeFiles/native.dir/build.make:86: recipe for target 'CMakeFiles/native.dir/SDL/SDLMain.cpp.o' failed
make[2]: *** [CMakeFiles/native.dir/SDL/SDLMain.cpp.o] Error 1
make[2]: *** Waiting for unfinished jobs....
/home/pigaming/RetroPie-Setup/tmp/build/ppsspp/ppsspp/SDL/SDLGLGraphicsContext.cpp: In member function ‘int SDLGLGraphicsContext::Init(SDL_Window*&, int, int, int, std::__cxx11::string*)’:
/home/pigaming/RetroPie-Setup/tmp/build/ppsspp/ppsspp/SDL/SDLGLGraphicsContext.cpp:88:11: error: ‘EGL_Init’ was not declared in this scope
  EGL_Init();
           ^
/home/pigaming/RetroPie-Setup/tmp/build/ppsspp/ppsspp/SDL/SDLGLGraphicsContext.cpp: In lambda function:
/home/pigaming/RetroPie-Setup/tmp/build/ppsspp/ppsspp/SDL/SDLGLGraphicsContext.cpp:122:18: error: ‘g_eglDisplay’ was not declared in this scope
   eglSwapBuffers(g_eglDisplay, g_eglSurface);
                  ^
/home/pigaming/RetroPie-Setup/tmp/build/ppsspp/ppsspp/SDL/SDLGLGraphicsContext.cpp:122:32: error: ‘g_eglSurface’ was not declared in this scope
   eglSwapBuffers(g_eglDisplay, g_eglSurface);
                                ^
/home/pigaming/RetroPie-Setup/tmp/build/ppsspp/ppsspp/SDL/SDLGLGraphicsContext.cpp:122:44: error: ‘eglSwapBuffers’ was not declared in this scope
   eglSwapBuffers(g_eglDisplay, g_eglSurface);
                                            ^
/home/pigaming/RetroPie-Setup/tmp/build/ppsspp/ppsspp/SDL/SDLGLGraphicsContext.cpp: In member function ‘virtual void SDLGLGraphicsContext::ShutdownFromRenderThread()’:
/home/pigaming/RetroPie-Setup/tmp/build/ppsspp/ppsspp/SDL/SDLGLGraphicsContext.cpp:139:12: error: ‘EGL_Close’ was not declared in this scope
  EGL_Close();
            ^
Scanning dependencies of target glslang
[ 35%] Building CXX object ext/glslang/glslang/CMakeFiles/glslang.dir/MachineIndependent/glslang_tab.cpp.o
At global scope:
cc1plus: warning: unrecognized command line option ‘-Wno-deprecated-register’
CMakeFiles/native.dir/build.make:110: recipe for target 'CMakeFiles/native.dir/SDL/SDLGLGraphicsContext.cpp.o' failed
make[2]: *** [CMakeFiles/native.dir/SDL/SDLGLGraphicsContext.cpp.o] Error 1
CMakeFiles/Makefile2:351: recipe for target 'CMakeFiles/native.dir/all' failed
make[1]: *** [CMakeFiles/native.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs....
[ 35%] Building CXX object ext/glslang/glslang/CMakeFiles/glslang.dir/MachineIndependent/Constant.cpp.o
[ 35%] Building CXX object ext/glslang/glslang/CMakeFiles/glslang.dir/MachineIndependent/iomapper.cpp.o
[ 35%] Building CXX object ext/glslang/glslang/CMakeFiles/glslang.dir/MachineIndependent/InfoSink.cpp.o
[ 35%] Building CXX object ext/glslang/glslang/CMakeFiles/glslang.dir/MachineIndependent/Initialize.cpp.o
[ 35%] Building CXX object ext/glslang/glslang/CMakeFiles/glslang.dir/MachineIndependent/IntermTraverse.cpp.o
[ 36%] Building CXX object ext/glslang/glslang/CMakeFiles/glslang.dir/MachineIndependent/Intermediate.cpp.o
[ 36%] Building CXX object ext/glslang/glslang/CMakeFiles/glslang.dir/MachineIndependent/ParseContextBase.cpp.o
[ 36%] Building CXX object ext/glslang/glslang/CMakeFiles/glslang.dir/MachineIndependent/ParseHelper.cpp.o
[ 36%] Building CXX object ext/glslang/glslang/CMakeFiles/glslang.dir/MachineIndependent/PoolAlloc.cpp.o
[ 36%] Building CXX object ext/glslang/glslang/CMakeFiles/glslang.dir/MachineIndependent/RemoveTree.cpp.o
[ 36%] Building CXX object ext/glslang/glslang/CMakeFiles/glslang.dir/MachineIndependent/Scan.cpp.o
[ 36%] Building CXX object ext/glslang/glslang/CMakeFiles/glslang.dir/MachineIndependent/ShaderLang.cpp.o
[ 37%] Building CXX object ext/glslang/glslang/CMakeFiles/glslang.dir/MachineIndependent/SymbolTable.cpp.o
[ 37%] Building CXX object ext/glslang/glslang/CMakeFiles/glslang.dir/MachineIndependent/Versions.cpp.o
[ 37%] Building CXX object ext/glslang/glslang/CMakeFiles/glslang.dir/MachineIndependent/intermOut.cpp.o
[ 37%] Building CXX object ext/glslang/glslang/CMakeFiles/glslang.dir/MachineIndependent/limits.cpp.o
[ 37%] Building CXX object ext/glslang/glslang/CMakeFiles/glslang.dir/MachineIndependent/linkValidate.cpp.o
[ 37%] Building CXX object ext/glslang/glslang/CMakeFiles/glslang.dir/MachineIndependent/parseConst.cpp.o
[ 38%] Building CXX object ext/glslang/glslang/CMakeFiles/glslang.dir/MachineIndependent/reflection.cpp.o
[ 38%] Building CXX object ext/glslang/glslang/CMakeFiles/glslang.dir/MachineIndependent/preprocessor/Pp.cpp.o
[ 38%] Building CXX object ext/glslang/glslang/CMakeFiles/glslang.dir/MachineIndependent/preprocessor/PpAtom.cpp.o
[ 38%] Building CXX object ext/glslang/glslang/CMakeFiles/glslang.dir/MachineIndependent/preprocessor/PpContext.cpp.o
[ 38%] Building CXX object ext/glslang/glslang/CMakeFiles/glslang.dir/MachineIndependent/preprocessor/PpScanner.cpp.o
[ 38%] Building CXX object ext/glslang/glslang/CMakeFiles/glslang.dir/MachineIndependent/preprocessor/PpTokens.cpp.o
[ 39%] Building CXX object ext/glslang/glslang/CMakeFiles/glslang.dir/MachineIndependent/propagateNoContraction.cpp.o
[ 39%] Building CXX object ext/glslang/glslang/CMakeFiles/glslang.dir/GenericCodeGen/CodeGen.cpp.o
[ 39%] Building CXX object ext/glslang/glslang/CMakeFiles/glslang.dir/GenericCodeGen/Link.cpp.o
[ 39%] Linking CXX static library ../../../lib/libglslang.a
[ 39%] Built target glslang
Makefile:127: recipe for target 'all' failed
make: *** [all] Error 2
~
Could not successfully build ppsspp - PlayStation Portable emulator PPSSPP (/home/pigaming/RetroPie-Setup/tmp/build/ppsspp/ppsspp/PPSSPPSDL not found).

Log ended at: Sat Sep  1 20:00:36 UTC 2018
Total running time: 0 hours, 33 mins, 37 secs
AreaScout commented 6 years ago

Ok glCopyImageSubDataOES and glBufferStorageEXT are still left, so I guess you are using the Hardkernel headers now ?

Let's assume you have, you still have to edit gl2ext.h and find glCopyImageSubDataOES and comment it out with // it's on line 278 on HK headers

next glBufferStorageEXT in ext/native/gfx_es2/gl3stub.c comment out line 136: //FIND_PROC(glBufferStorageEXT);

and line 370: //GL_APICALL void (* GL_APIENTRY glBufferStorageEXT) (GLenum target, GLsizeiptr size, const void *data, GLbitfield flags);

in ext/native/gfx_es2/gl3stub.h comment out line 505: //extern GL_APICALL void (* GL_APIENTRY glBufferStorageEXT) (GLenum target, GLsizeiptr size, const void *data, GLbitfield flags);

in ext/native/thin3d/GLRenderManager.cpp comment out line 806: //glBufferStorageEXT(target_, size_, nullptr, storageFlags);

that should fix both glCopyImageSubDataOES and glBufferStorageEXT

The other errors in SDLGLGraphicsContext.cpp about non defined EGL_Init and g_eglDisplay are strange there is no such a variable or function on the quoted line number, did you change that file ?

Good luck

unknownbrackets commented 6 years ago

Those EGL errors used to be a thing in an older version of PPSSPP. Are you using a recent git build?

Maybe we need some ifdefs in the gl3stub to skip things on this platform that are already defined otherwise... anyone know of a good define that is defined on this platform when these extensions are in gl2ext?

-[Unknown]

blisstik commented 6 years ago

I'm using a modified script and referencing the recent git build. My understanding is that it needs to make ffmpeg-ppsspp first then ppsspp.


function sources_ppsspp() {
    gitPullOrClone "$md_build/ppsspp" https://github.com/hrydgard/ppsspp.git v1.6.3
    cd ppsspp

    if hasPackage cmake 3.6 lt; then
        cd ..
        mkdir -p cmake
        downloadAndExtract "$__archive_url/cmake-3.6.2.tar.gz" "$md_build/cmake" 1
    fi
}

function build_ffmpeg_ppsspp() {
    cd "$1"
    local MODULES
    local VIDEO_DECODERS
    local AUDIO_DECODERS
    local VIDEO_ENCODERS
    local AUDIO_ENCODERS
    local DEMUXERS
    local MUXERS
    local PARSERS
    local GENERAL
    local OPTS # used by older lr-ppsspp fork
    # get the ffmpeg configure variables from the ppsspp ffmpeg distributed script
    source linux_arm.sh
    # linux_arm.sh has set -e which we need to switch off
    set +e
    ./configure \
        --prefix="./linux/armv7" \
        --extra-cflags="-fasm -Wno-psabi -fno-short-enums -fno-strict-aliasing -finline-limit=300" \
        --disable-shared \
        --enable-static \
        --enable-zlib \
        --enable-pic \
        --disable-everything \
        ${MODULES} \
        ${VIDEO_DECODERS} \
        ${AUDIO_DECODERS} \
        ${VIDEO_ENCODERS} \
        ${AUDIO_ENCODERS} \
        ${DEMUXERS} \
        ${MUXERS} \
        ${PARSERS}
    make clean
    make install
}

function build_cmake_ppsspp() {
    cd "$md_build/cmake"
    ./bootstrap
    make
}

function build_ppsspp() {
    local cmake="cmake"
    if hasPackage cmake 3.6 lt; then
        build_cmake_ppsspp
        cmake="$md_build/cmake/bin/cmake"
    fi

    # build ffmpeg
    build_ffmpeg_ppsspp "$md_build/ppsspp/ffmpeg"

    # build ppsspp
    cd "$md_build/ppsspp"
    rm -rf CMakeCache.txt CMakeFiles
    local params=() 
    params+=(-DUSING_GLES2=ON -DUSING_FBDEV=ON -DUSING_EGL=ON -DUSING_X11_VULKAN=OFF -DARMV7=ON)
    "$cmake" "${params[@]}" .
    make clean
    make

    md_ret_require="$md_build/ppsspp/PPSSPPSDL"
}

function install_ppsspp() {
    md_ret_files=(
        'ppsspp/assets'
        'ppsspp/PPSSPPSDL'
    )
}

function configure_ppsspp() {
    mkRomDir "psp"

    mkUserDir "$home/.config"
    moveConfigDir "$home/.config/ppsspp" "$md_conf_root/psp"
    mkUserDir "$md_conf_root/psp/PSP"
    ln -snf "$romdir/psp" "$md_conf_root/psp/PSP/GAME"

    addEmulator 0 "$md_id" "psp" "$md_inst/PPSSPPSDL %ROM%"
    addSystem "psp"
}
unknownbrackets commented 6 years ago

That's building v1.6.3. Unfortunately we had some EGL issues in that release. The fixes are in more recent git builds: https://github.com/hrydgard/ppsspp/pull/11144

Currently, I'd suggest the latest master. I think it's in a good place right now.

-[Unknown]

AreaScout commented 6 years ago

Yes first you have to build ffmpeg, here are my changes

odroid@odroid:~/usb-stick/ppsspp/ffmpeg$ git diff linux_arm.sh

diff --git a/linux_arm.sh b/linux_arm.sh
index c54c0f1..206a71b 100755
--- a/linux_arm.sh
+++ b/linux_arm.sh
@@ -6,9 +6,8 @@ GENERAL="\
    --enable-cross-compile \
    --extra-libs="-lgcc" \
    --arch=arm \
-   --cc=arm-linux-gnueabi-gcc \
-   --cross-prefix=arm-linux-gnueabi- \
-   --nm=arm-linux-gnueabi-nm"
+   --cc=gcc \
+   --nm=nm"

 MODULES="\
    --disable-avdevice \
@@ -102,7 +101,7 @@ function build_ARMv7
 ./configure --target-os=linux \
     --prefix=./linux/armv7 \
     ${GENERAL} \
-    --extra-cflags=" -O3 -fasm -Wno-psabi -fno-short-enums -fno-strict-aliasing -finline-limit=300 -mfloat-abi=softfp -mfpu=neon -marm -march=armv7-a" \
+    --extra-cflags=" -O3 -fasm -Wno-psabi -fno-short-enums -fno-strict-aliasing -finline-limit=300 -mfloat-abi=hard -mfpu=neon -marm -march=armv7-a" \
     --disable-shared \
     --enable-static \
     --enable-zlib \
@@ -119,6 +118,6 @@ make clean
 make install
 }

-build_ARMv6
+#build_ARMv6
 build_ARMv7
 echo Linux ARM builds finished
AreaScout commented 6 years ago

@unknownbrackets

I will look on a useful solution to ifdef this, but for now, sleeping is plan A

blisstik commented 6 years ago

@AreaScout - Still failing on master git

Could you please make the changes within the function? I'm not sure how to incorporate the above within the .sh file.

[ 31%] Building CXX object CMakeFiles/Common.dir/Common/Vulkan/SPIRVDisasm.cpp.o
[ 31%] Building CXX object CMakeFiles/Common.dir/Common/Vulkan/VulkanContext.cpp.o
[ 31%] Building CXX object CMakeFiles/native.dir/SDL/SDLMain.cpp.o
In file included from /home/pigaming/RetroPie-Setup/tmp/build/ppsspp/ppsspp/Common/Log.h:24:0,
                 from /home/pigaming/RetroPie-Setup/tmp/build/ppsspp/ppsspp/Common/Common.h:38,
                 from /home/pigaming/RetroPie-Setup/tmp/build/ppsspp/ppsspp/Common/StringUtils.h:22,
                 from /home/pigaming/RetroPie-Setup/tmp/build/ppsspp/ppsspp/Common/Vulkan/VulkanContext.cpp:12:
/home/pigaming/RetroPie-Setup/tmp/build/ppsspp/ppsspp/Common/Vulkan/VulkanContext.cpp: In member function ‘bool VulkanContext::InitQueue()’:
/home/pigaming/RetroPie-Setup/tmp/build/ppsspp/ppsspp/Common/MsgHandler.h:37:61: warning: format ‘%p’ expects argument of type ‘void*’, but argument 6 has type ‘VkSurfaceKHR {aka long long unsigned int}’ [-Wformat=]
 #define PanicYesNo(...) MsgAlert(true, CRITICAL, __VA_ARGS__) 
                                                             ^
/home/pigaming/RetroPie-Setup/tmp/build/ppsspp/ppsspp/Common/Log.h:183:17: note: in expansion of macro ‘PanicYesNo’
  if (!(_a_) && !PanicYesNo(__VA_ARGS__)) { \
                 ^
/home/pigaming/RetroPie-Setup/tmp/build/ppsspp/ppsspp/Common/Vulkan/VulkanContext.cpp:780:2: note: in expansion of macro ‘_assert_msg_’
  _assert_msg_(G3D, res == VK_SUCCESS, "Failed to get formats for device %p: %d surface: %p", physical_devices_[physical_device_], (int)res, surface_);
  ^
[ 31%] Building CXX object CMakeFiles/native.dir/SDL/SDLGLGraphicsContext.cpp.o
At global scope:
cc1plus: warning: unrecognized command line option ‘-Wno-deprecated-register’
[ 31%] Building CXX object CMakeFiles/Common.dir/Common/Vulkan/VulkanDebug.cpp.o
[ 31%] Building CXX object CMakeFiles/Common.dir/Common/Vulkan/VulkanImage.cpp.o
[ 31%] Building CXX object CMakeFiles/native.dir/SDL/SDLVulkanGraphicsContext.cpp.o
[ 31%] Building CXX object CMakeFiles/Common.dir/Common/Vulkan/VulkanLoader.cpp.o
/home/pigaming/RetroPie-Setup/tmp/build/ppsspp/ppsspp/SDL/SDLVulkanGraphicsContext.cpp: In member function ‘bool SDLVulkanGraphicsContext::Init(SDL_Window*&, int, int, int, std::__cxx11::string*)’:
/home/pigaming/RetroPie-Setup/tmp/build/ppsspp/ppsspp/SDL/SDLVulkanGraphicsContext.cpp:74:67: error: ‘union SDL_SysWMinfo::<anonymous>’ has no member named ‘wl’
   vulkan_->InitSurface(WINDOWSYSTEM_WAYLAND, (void*)sys_info.info.wl.display,
                                                                   ^
/home/pigaming/RetroPie-Setup/tmp/build/ppsspp/ppsspp/SDL/SDLVulkanGraphicsContext.cpp:75:27: error: ‘union SDL_SysWMinfo::<anonymous>’ has no member named ‘wl’
     (void *)sys_info.info.wl.surface, pixel_xres, pixel_yres);
                           ^
At global scope:
cc1plus: warning: unrecognized command line option ‘-Wno-deprecated-register’
CMakeFiles/native.dir/build.make:134: recipe for target 'CMakeFiles/native.dir/SDL/SDLVulkanGraphicsContext.cpp.o' failed
make[2]: *** [CMakeFiles/native.dir/SDL/SDLVulkanGraphicsContext.cpp.o] Error 1
CMakeFiles/Makefile2:316: recipe for target 'CMakeFiles/native.dir/all' failed
make[1]: *** [CMakeFiles/native.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs....
[ 31%] Building CXX object CMakeFiles/Common.dir/Common/Vulkan/VulkanMemory.cpp.o
[ 32%] Building CXX object CMakeFiles/Common.dir/Common/ColorConv.cpp.o
[ 32%] Building CXX object CMakeFiles/Common.dir/Common/ChunkFile.cpp.o
[ 32%] Building CXX object CMakeFiles/Common.dir/Common/ConsoleListener.cpp.o
[ 32%] Building CXX object CMakeFiles/Common.dir/Common/Crypto/md5.cpp.o
[ 32%] Building CXX object CMakeFiles/Common.dir/Common/Crypto/sha1.cpp.o
[ 32%] Building CXX object CMakeFiles/Common.dir/Common/Crypto/sha256.cpp.o
[ 32%] Building CXX object CMakeFiles/Common.dir/Common/FileUtil.cpp.o
[ 33%] Building CXX object CMakeFiles/Common.dir/Common/KeyMap.cpp.o
[ 33%] Building CXX object CMakeFiles/Common.dir/Common/LogManager.cpp.o
[ 33%] Building CXX object CMakeFiles/Common.dir/Common/MemArenaAndroid.cpp.o
[ 33%] Building CXX object CMakeFiles/Common.dir/Common/MemArenaDarwin.cpp.o
[ 33%] Building CXX object CMakeFiles/Common.dir/Common/MemArenaPosix.cpp.o
[ 33%] Building CXX object CMakeFiles/Common.dir/Common/MemArenaWin32.cpp.o
[ 33%] Building CXX object CMakeFiles/Common.dir/Common/MemoryUtil.cpp.o
[ 34%] Building CXX object CMakeFiles/Common.dir/Common/Misc.cpp.o
[ 34%] Building CXX object CMakeFiles/Common.dir/Common/MsgHandler.cpp.o
[ 34%] Building CXX object CMakeFiles/Common.dir/Common/OSVersion.cpp.o
[ 34%] Building CXX object CMakeFiles/Common.dir/Common/StringUtils.cpp.o
[ 34%] Building CXX object CMakeFiles/Common.dir/Common/ThreadPools.cpp.o
[ 34%] Building CXX object CMakeFiles/Common.dir/Common/Timer.cpp.o
[ 35%] Linking CXX static library lib/libCommon.a
[ 35%] Built target Common
Makefile:127: recipe for target 'all' failed
make: *** [all] Error 2
~
Could not successfully build ppsspp - PlayStation Portable emulator PPSSPP (/home/pigaming/RetroPie-Setup/tmp/build/ppsspp/ppsspp/PPSSPPSDL not found).

Log ended at: Sat Sep  1 22:17:48 UTC 2018
Total running time: 0 hours, 32 mins, 14 secs
unknownbrackets commented 6 years ago

Sounds like your SDL doesn't have Wayland support. Maybe try removing these lines:

https://github.com/hrydgard/ppsspp/blob/master/CMakeLists.txt#L145-L148

Or update SDL if that's a decent option...

-[Unknown]

blisstik commented 6 years ago

Yeah, we are not using Wayland. Only FB-Dev on Mesa headers.

blisstik commented 6 years ago

Getting close

[100%] Linking CXX executable PPSSPPSDL
lib/libnative.a(fast_math.c.o): In function `InitFastMath':
fast_math.c:(.text+0x6): undefined reference to `fast_matrix_mul_4x4_neon'
fast_math.c:(.text+0xe): undefined reference to `fast_matrix_mul_4x4_neon'
collect2: error: ld returned 1 exit status
CMakeFiles/PPSSPPSDL.dir/build.make:909: recipe for target 'PPSSPPSDL' failed
make[2]: *** [PPSSPPSDL] Error 1
CMakeFiles/Makefile2:201: recipe for target 'CMakeFiles/PPSSPPSDL.dir/all' failed
make[1]: *** [CMakeFiles/PPSSPPSDL.dir/all] Error 2
Makefile:127: recipe for target 'all' failed
make: *** [all] Error 2
~
Could not successfully build ppsspp - PlayStation Portable emulator PPSSPP (/home/pigaming/RetroPie-Setup/tmp/build/ppsspp/ppsspp/PPSSPPSDL not found).
unknownbrackets commented 6 years ago

Strange, that makes it sound like you don't have neon enabled - not sure if there's a way to add -march=armv7-a+simd or -mfpu=neon if it's missing?

-[Unknown]

blisstik commented 6 years ago

I'm not sure but I followed some advice from other related issues in this git. I ended up here: https://forum.odroid.com/viewtopic.php?f=91&t=26822

AreaScout commented 6 years ago

@6alileo

I am using this in my CMakeLists.txt

diff --git a/CMakeLists.txt b/CMakeLists.txt
index 2f9a21e4f..4f2fba85c 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -28,6 +28,7 @@ endif()
 if(CMAKE_SYSTEM_PROCESSOR)
        if(${CMAKE_SYSTEM_PROCESSOR} MATCHES "^arm")
                set(ARM ON)
+               add_definitions(-mfloat-abi=hard -marm -mtune=cortex-a15.cortex-a7 -mcpu=cortex-a15 -mfpu=neon-vfpv4 -fomit-frame-pointer -ftree-vectorize -mvectorize-with-neon-quad -ffast-math -DARM_NEON)
                if(${CMAKE_SYSTEM_PROCESSOR} MATCHES "^armv7")
                        set(ARMV7 ON)
                        # Horrifying workaround for bug in android cmake stuff for asm files
@@ -81,7 +82,7 @@ endif()

 # We only support Vulkan on Unix, Android and Windows.
 if(ANDROID OR WIN32 OR (UNIX AND NOT APPLE))
-  set(VULKAN ON)
+  set(VULKAN OFF)
 else()
   add_definitions(-DNO_VULKAN)
 endif()

This is how I build ppsspp but I am using the GBM enabled userspace driver not the fbdev one, so I do not need EGL, it's all done in SDL2 which is compiled with kmsdrm video backend, watch the video below, I will soon release an HowTo for the Ubuntu 18.04 minimal image from HK in the forums

cmake -DARMV7=ON -DARM=ON -DUSING_EGL=OFF -DUSING_GLES2=ON -DUSING_X11_VULKAN=OFF -DUSING_QT_UI=OFF -DHEADLESS=OFF -DUNITTEST=OFF -DSIMULATOR=OFF -DUSE_WAYLAND_WSI=OFF -DUSE_FFMPEG=YES -DUSE_SYSTEM_FFMPEG=NO .

God of War: Chains of Olympus

blisstik commented 6 years ago

@AreaScout I made changes to the make file, turned on EGL and added FBDEV. Does this look correct?

cmake -DARMV7=ON -DARM=ON -DUSING_EGL=ON -DUSING_GLES2=ON -DUSING_FBDEV=ON -DUSING_X11_VULKAN=OFF -DUSING_QT_UI=OFF -DHEADLESS=OFF -DUNITTEST=OFF -DSIMULATOR=OFF -DUSE_WAYLAND_WSI=OFF -DUSE_FFMPEG=YES -DUSE_SYSTEM_FFMPEG=NO .

AreaScout commented 6 years ago

Yes, important is also the definitions I added to the compiler in CMakeLists.txt with this some useful macros are set, some may not needed but I got a very good working PPSSPP version from it.

blisstik commented 6 years ago

@AreaScout - that worked. Thank you for your help! I look forward to your tutorials in the forum. I'm wondering if you had any plans to compile RetroPie on 18.04 minimal image?

unknownbrackets commented 6 years ago

The processor matches armv7 right? If some of those flags are needed to make it use neon, I think we should merge something like that.

-[Unknown]

AreaScout commented 6 years ago

@6alileo No problem :) That RetroPie project is way to big for me, I don't have any plans to compile or change it for GBM on ODROID's but my forum post will be useful if someone what's that 😎

AreaScout commented 6 years ago

@unknownbrackets

you mean something like this ?

diff --git a/CMakeLists.txt b/CMakeLists.txt
index 2f9a21e4f..296623d3f 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -28,6 +28,13 @@ endif()
 if(CMAKE_SYSTEM_PROCESSOR)
        if(${CMAKE_SYSTEM_PROCESSOR} MATCHES "^arm")
                set(ARM ON)
+               if(UNIX)
+                       execute_process(COMMAND cat /proc/cpuinfo OUTPUT_VARIABLE OUTSTR)
+                       string(FIND "${OUTSTR}" "ODROID-XU4" pos)
+                       if(pos GREATER_EQUAL 0)
+                               add_definitions(-mfloat-abi=hard -marm -mtune=cortex-a15.cortex-a7 -mcpu=cortex-a15 -mfpu=neon-vfpv4 -fomit-frame-pointer -ftree-vectorize -mvectorize-w
ith-neon-quad -ffast-math -DARM_NEON)
+                       endif()
+               endif()
                if(${CMAKE_SYSTEM_PROCESSOR} MATCHES "^armv7")
                        set(ARMV7 ON)
                        # Horrifying workaround for bug in android cmake stuff for asm files
@@ -81,7 +88,7 @@ endif()

 # We only support Vulkan on Unix, Android and Windows.
 if(ANDROID OR WIN32 OR (UNIX AND NOT APPLE))
-  set(VULKAN ON)
+  set(VULKAN OFF)
 else()
   add_definitions(-DNO_VULKAN)
 endif()
AreaScout commented 6 years ago

@unknownbrackets

Yes it's armv7

blisstik commented 6 years ago

How can I test if ffmpeg got built? Will certain games have no video?

Galileo Morales Web Developer & IT Solutions 916.601.2400


From: Daniel Mehrwald notifications@github.com Sent: Sunday, September 2, 2018 9:55 PM To: hrydgard/ppsspp Cc: 6alileo; Mention Subject: Re: [hrydgard/ppsspp] Odroid XU4 - SDLMain.cpp.o Failed (#11344)

@unknownbracketshttps://github.com/unknownbrackets

Yes it's armv7

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHubhttps://github.com/hrydgard/ppsspp/issues/11344#issuecomment-417999923, or mute the threadhttps://github.com/notifications/unsubscribe-auth/AoSfFE9YKcP62LkXg0PxiCelKKodrsjvks5uXLYugaJpZM4WWRZQ.

AreaScout commented 6 years ago

No, if ffmpeg would not available it would not build

before you start building ppsspp you have to build ffmpeg with the modification I postet above by calling the modified linux_arm.sh file

odroid@odroid:~/ppsspp/ffmpeg$ ./linux_arm.sh

you can see if this script exits with errors or not, then you know it also

your cmake parameters should be ok:

cmake -DARMV7=ON -DARM=ON -DUSING_EGL=ON -DUSING_GLES2=ON -DUSING_FBDEV=ON -DUSING_X11_VULKAN=OFF -DUSING_QT_UI=OFF -DHEADLESS=OFF -DUNITTEST=OFF -DSIMULATOR=OFF -DUSE_WAYLAND_WSI=OFF -DUSE_FFMPEG=YES -DUSE_SYSTEM_FFMPEG=NO .

here are the modifications again, just edit that linux_arm.sh according to the changes below:

diff --git a/linux_arm.sh b/linux_arm.sh
index c54c0f1..206a71b 100755
--- a/linux_arm.sh
+++ b/linux_arm.sh
@@ -6,9 +6,8 @@ GENERAL="\
    --enable-cross-compile \
    --extra-libs="-lgcc" \
    --arch=arm \
-   --cc=arm-linux-gnueabi-gcc \
-   --cross-prefix=arm-linux-gnueabi- \
-   --nm=arm-linux-gnueabi-nm"
+   --cc=gcc \
+   --nm=nm"

 MODULES="\
    --disable-avdevice \
@@ -102,7 +101,7 @@ function build_ARMv7
 ./configure --target-os=linux \
     --prefix=./linux/armv7 \
     ${GENERAL} \
-    --extra-cflags=" -O3 -fasm -Wno-psabi -fno-short-enums -fno-strict-aliasing -finline-limit=300 -mfloat-abi=softfp -mfpu=neon -marm -march=armv7-a" \
+    --extra-cflags=" -O3 -fasm -Wno-psabi -fno-short-enums -fno-strict-aliasing -finline-limit=300 -mfloat-abi=hard -mfpu=neon -marm -march=armv7-a" \
     --disable-shared \
     --enable-static \
     --enable-zlib \
@@ -119,6 +118,6 @@ make clean
 make install
 }

-build_ARMv6
+#build_ARMv6
 build_ARMv7
 echo Linux ARM builds finished
unknownbrackets commented 6 years ago

If ffmpeg isn't working, you probably won't hear music in most games (you may hear sound effects.) Videos also, but ffmpeg is used to decode ATRAC3 audio, not just videos.

-[Unknown]

blisstik commented 6 years ago

I figured out the issue with ffmpeg. My question now is, in the script below, is rm -rf CMakeCache.txt CMakeFiles required? I'm not sure what the effect of deleting that file would do. I've been able to compile with it. Just wondering if it was necessary.

    # build ffmpeg
    source "$md_build/ppsspp/ffmpeg/linux_arm.sh"

    # build ppsspp
    cd "$md_build/ppsspp"
    rm -rf CMakeCache.txt CMakeFiles
    local params=()
    params+=(-DARMV7=ON -DARM=ON -DUSING_EGL=ON -DUSING_GLES2=ON -DUSING_FBDEV=ON -DUSING_X11_VULKAN=OFF -DUSING_QT_UI=OFF -DHEADLESS=OFF -DUNITTEST=OFF -DSIMULATOR=OFF -DUSE_WAYLAND_WSI=OFF -DUSE_FFMPEG=YES -DUSE_SYSTEM_FFMPEG=NO)
    "$cmake" "${params[@]}" .
    make clean
    make
AreaScout commented 6 years ago

Yes that's cool, every time you wanna generate the Makefile with cmake you have to delete that CMakeCache.txt file also the CMakeFiles folder is a good practice to delete, it's where the object files are in.

The issue was -mfloat-abi=softfp with this you get link errors armhf and softfp don't came along very well

blisstik commented 6 years ago

@AreaScout - OK got it working perfectly now. For some reason, it was compiling even without ffmpeg-ppsspp so it must've been using the system version. Anyways, on your YT, did GoW run without any hiccups and tearing? Is it at 1x resolution? I'm trying to see if its better than the FBDEV version I'm running.

AreaScout commented 6 years ago

@6alileo It's 1xPSP but 2xPSP is also working but with some stutters but still playable, here are my settings, screenshot is from windows but this are my settings on XU4, I have absolutely no tearing, it's rock solid, the Gameplay is without hiccup, I only have one position in the game where hiccups are occurred
In audio settings I have that speed hack enabled, but that pretty much is it, compared to ppsspp at the time of the year 2014-2015 this is a dream !

2018-09-04 2018-09-04 3 2018-09-04 2

blisstik commented 6 years ago

I will soon release an HowTo for the Ubuntu 18.04 minimal image from HK in the forums

@AreaScout - any progress on the tutorial?

AreaScout commented 6 years ago

maybe tomorrow

AreaScout commented 6 years ago

@6alileo

https://forum.odroid.com/viewtopic.php?f=98&t=32173

1/4 of the work is done :)

sergiobenrocha2 commented 6 years ago

You guys are using 18.04 right? Testing PPA has package for ARM too (Xorg only, not fbdev), could you guys test it? I'd like to know if it's working

https://code.launchpad.net/~ppsspp/+archive/ubuntu/testing?field.series_filter=bionic

AreaScout commented 6 years ago

I tested it, it seems to work, how did you compile it ? with EGL or SDL2 ? That's important to know

The strange thing is it has package dependency to Qt, why ?

AreaScout commented 6 years ago

although I am curious which git revision you compiled ?

sergiobenrocha2 commented 6 years ago

It's using the last commit, you can see the hash in the recipe: https://code.launchpad.net/%7Eppsspp/+recipe/ppsspp-daily

I'm using -DUSING_GLES2=ON -DUSING_EGL=ON for ARM, and -DUSING_QT_UI=ON for all arch

PPA provides SDL and Qt binaries

You can see in "patches" folder and "rules" file how I build it: https://git.launchpad.net/~ppsspp/ppsspp/+git/debian/tree/

AreaScout commented 6 years ago

Ah thank you, the funny thing is that under Setting->Tools-System Information->Device Info Lang/Region should be set to the user preferred one if it was configured but it shows 'C' which is the standard value on a fresh install on your build and looking into the code this can never happen, it should default to en_US then, so I wonder which code you are using, also when select the menu I can observe a strange visual effect for only a second or so, if you build for ODROID you can use -DUSING_EGL=OFF, then EGL is done by SDL2, you can follow this guide https://forum.odroid.com/viewtopic.php?f=98&t=32173#p233632, the guide is made for GBM enabled user space library but also works for X11 because SDL2 handel's the video backend DRMKMS or X11, dunno if this works for rpi too, let me know what was the outcome

RG

AreaScout commented 6 years ago

@6alileo this should be fixed now, can you double check and close this issue ? On PPSSPP side it should provide everything now needed to successfully compile it on our ODROID's

blisstik commented 5 years ago

Hi Daniel,

I was able to compile on Ubuntu 16.04 without needing to modify the gl2ext.h

On Thu, Sep 20, 2018 at 8:36 AM Daniel Mehrwald notifications@github.com wrote:

@6alileo https://github.com/6alileo this should be fixed now, can you double check and close this issue ? On PPSSPP side it should provide everything now needed to successfully compile it on our ODROID's

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/hrydgard/ppsspp/issues/11344#issuecomment-423228555, or mute the thread https://github.com/notifications/unsubscribe-auth/AoSfFAPgidhqkoJdXe8QLg-2DMxlva6xks5uc7X0gaJpZM4WWRZQ .

-- Galileo Morales IT Business Solutions PH/TXT: (916) 601-2400

AreaScout commented 5 years ago

Sure that is just for that particular 18.04 image, if you are using i.e the header files from the Mali SDK https://developer.arm.com/products/software/mali-sdks/opengl-es/downloads then there also is no need for modify the header, well yes, the eglplatform.h header file should be, it's horribly outdated. Ok the other files are too outdated but most programs compile fine with it. You have to make compromises !

If you just use that command sudo sed -i.bak '/^\#ifndef GL_EXT_buffer_storage$/,/^$/d' /usr/include/GLES2/gl2ext.h on the header file from khronos and no buffer storage entry will found, it fill not be changed, otherwise this entire block is removed with that command:

https://github.com/rockchip-linux/libmali/blob/29mirror/include/GLES2/gl2ext.h#L1112-L1127