Closed blisstik closed 5 years ago
Looks like a header file problem
inside ext/native/gfx/gl_common.h
add on first line this -> #define GL_GLEXT_PROTOTYPES
@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
That is the fbdev driver i guess from HK, let me check this
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
sorry gl2ext.h it should be
another 'rude' option would be to just temporary hide this six functions in your gl2ext.h with ´´//´´
glBindFragDataLocationIndexedEXT glBindFragDataLocationEXT glGetProgramResourceLocationIndexEXT glGetFragDataIndexEXT glBufferStorageEXT glCopyImageSubDataOES
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.
yes I think so, just try it, it does not take that long
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
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
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]
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"
}
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]
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
@unknownbrackets
I will look on a useful solution to ifdef this, but for now, sleeping is plan A
@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
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]
Yeah, we are not using Wayland. Only FB-Dev on Mesa headers.
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).
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]
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
@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 .
@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 .
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.
@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?
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]
@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 😎
@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()
@unknownbrackets
Yes it's armv7
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.
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
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]
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
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
@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.
@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 !
I will soon release an HowTo for the Ubuntu 18.04 minimal image from HK in the forums
@AreaScout - any progress on the tutorial?
maybe tomorrow
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
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 ?
although I am curious which git revision you compiled ?
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/
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
@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
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
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
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
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