Page 1 of 1

Kodi Krypton on Wandboard

PostPosted: Tue Apr 03, 2018 5:30 pm
by trunkz
I'm trying to build kodi on the wandboard quad imx6 board

I get error:

/usr/include/EGL/eglvivante.h

unrecognized platform

I have been hacking this file ever since with no luck. Is there a way to tell kodi to use the opengl to compile and not egl

im trying to build krypton with cmake. Everything else compiles right this is the only error which shows up as a very ugly linker error at the end.


Thanks for trying to help

Re: Kodi Krypton on Wandboard

PostPosted: Wed Apr 04, 2018 8:22 pm
by ClayMontgomery
It's not unusual for it to be necessary to hack eglvivante.h. I had to do it too.

The EGL driver is required to use any OpenGL ES implementation. So, you actually need both an EGL and OpenGL ES driver, plus some other objects provided by Vivante, such as their galcore module.
There are actually several OpenGL ES drivers provided for various versions of the standard, including 1.1 and 2.0 (which now includes 3.0), and at least 3 versions of the EGL, includiong one for X11 and one for fb.
The EGL provides the interface for OpenGL ES to use a windowing system and even if you don't have a windowing system you still must use the fb version of the EGL.

Regards, Clay

Re: Kodi Krypton on Wandboard

PostPosted: Sun Apr 08, 2018 3:47 am
by trunkz
Thanks for your help!

Below is the latest output:

[100%] Built target libkodi
[100%] Built target kodi-libraries
[100%] Linking CXX executable kodi-x11
CMakeFiles/kodi.dir/build.make:524: recipe for target 'kodi-x11' failed
CMakeFiles/Makefile2:739: recipe for target 'CMakeFiles/kodi.dir/all' failed
Makefile:138: recipe for target 'all' failed


build/utils/utils.a(GLUtils.cpp.o):GLUtils.cpp:function LogGraphicsInfo(): error: undefined reference to 'glGetStringi'
build/rendering/gl/rendering_gl.a(RenderSystemGL.cpp.o):RenderSystemGL.cpp:function CRenderSystemGL::DestroyRenderSystem(): error: undefined reference to 'glDeleteVertexArrays'
build/rendering/gl/rendering_gl.a(RenderSystemGL.cpp.o):RenderSystemGL.cpp:function CRenderSystemGL::ApplyStateBlock(): error: undefined reference to 'glBindVertexArray'
build/rendering/gl/rendering_gl.a(RenderSystemGL.cpp.o):RenderSystemGL.cpp:function CRenderSystemGL::InitRenderSystem(): error: undefined reference to 'glGetStringi'
build/rendering/gl/rendering_gl.a(RenderSystemGL.cpp.o):RenderSystemGL.cpp:function CRenderSystemGL::InitRenderSystem(): error: undefined reference to 'glGenVertexArrays'
build/rendering/gl/rendering_gl.a(RenderSystemGL.cpp.o):RenderSystemGL.cpp:function CRenderSystemGL::InitRenderSystem(): error: undefined reference to 'glBindVertexArray'
build/rendering/gl/rendering_gl.a(RenderSystemGL.cpp.o):RenderSystemGL.cpp:function CRenderSystemGL::ResetRenderSystem(int, int): error: undefined reference to 'glBindVertexArray'
build/rendering/gl/rendering_gl.a(RenderSystemGL.cpp.o):RenderSystemGL.cpp:function CRenderSystemGL::ResetRenderSystem(int, int): error: undefined reference to 'glDeleteVertexArrays'
build/rendering/gl/rendering_gl.a(RenderSystemGL.cpp.o):RenderSystemGL.cpp:function CRenderSystemGL::ResetRenderSystem(int, int): error: undefined reference to 'glGenVertexArrays'
build/rendering/gl/rendering_gl.a(RenderSystemGL.cpp.o):RenderSystemGL.cpp:function CRenderSystemGL::ResetRenderSystem(int, int): error: undefined reference to 'glBindVertexArray'
build/cores/VideoPlayer/videorenderers/videorenderers.a(RenderCapture.cpp.o):RenderCapture.cpp:function CRenderCaptureGL::~CRenderCaptureGL(): error: undefined reference to 'glDeleteQueriesARB'
build/cores/VideoPlayer/videorenderers/videorenderers.a(RenderCapture.cpp.o):RenderCapture.cpp:function CRenderCaptureGL::~CRenderCaptureGL(): error: undefined reference to 'glBindBufferARB'
build/cores/VideoPlayer/videorenderers/videorenderers.a(RenderCapture.cpp.o):RenderCapture.cpp:function CRenderCaptureGL::~CRenderCaptureGL(): error: undefined reference to 'glUnmapBufferARB'
build/cores/VideoPlayer/videorenderers/videorenderers.a(RenderCapture.cpp.o):RenderCapture.cpp:function CRenderCaptureGL::~CRenderCaptureGL(): error: undefined reference to 'glBindBufferARB'
build/cores/VideoPlayer/videorenderers/videorenderers.a(RenderCapture.cpp.o):RenderCapture.cpp:function CRenderCaptureGL::~CRenderCaptureGL(): error: undefined reference to 'glDeleteBuffersARB'
build/cores/VideoPlayer/videorenderers/videorenderers.a(RenderCapture.cpp.o):RenderCapture.cpp:function CRenderCaptureGL::BeginRender(): error: undefined reference to 'glBindBufferARB'
build/cores/VideoPlayer/videorenderers/videorenderers.a(RenderCapture.cpp.o):RenderCapture.cpp:function CRenderCaptureGL::BeginRender(): error: undefined reference to 'glBufferDataARB'
build/cores/VideoPlayer/videorenderers/videorenderers.a(RenderCapture.cpp.o):RenderCapture.cpp:function CRenderCaptureGL::BeginRender(): error: undefined reference to 'glDeleteQueriesARB'
build/cores/VideoPlayer/videorenderers/videorenderers.a(RenderCapture.cpp.o):RenderCapture.cpp:function CRenderCaptureGL::BeginRender(): error: undefined reference to 'glGenBuffersARB'
build/cores/VideoPlayer/videorenderers/videorenderers.a(RenderCapture.cpp.o):RenderCapture.cpp:function CRenderCaptureGL::BeginRender(): error: undefined reference to 'glBeginQueryARB'
build/cores/VideoPlayer/videorenderers/videorenderers.a(RenderCapture.cpp.o):RenderCapture.cpp:function CRenderCaptureGL::BeginRender(): error: undefined reference to 'glGenQueriesARB'
build/cores/VideoPlayer/videorenderers/videorenderers.a(RenderCapture.cpp.o):RenderCapture.cpp:function CRenderCaptureGL::ReadOut(): error: undefined reference to 'glBindBufferARB'
build/cores/VideoPlayer/videorenderers/videorenderers.a(RenderCapture.cpp.o):RenderCapture.cpp:function CRenderCaptureGL::ReadOut(): error: undefined reference to 'glMapBufferARB'
build/cores/VideoPlayer/videorenderers/videorenderers.a(RenderCapture.cpp.o):RenderCapture.cpp:function CRenderCaptureGL::ReadOut(): error: undefined reference to 'glUnmapBufferARB'
build/cores/VideoPlayer/videorenderers/videorenderers.a(RenderCapture.cpp.o):RenderCapture.cpp:function CRenderCaptureGL::ReadOut(): error: undefined reference to 'glGetQueryObjectuivARB'
build/cores/VideoPlayer/videorenderers/videorenderers.a(RenderCapture.cpp.o):RenderCapture.cpp:function CRenderCaptureGL::PboToBuffer(): error: undefined reference to 'glMapBufferARB'
build/cores/VideoPlayer/videorenderers/videorenderers.a(RenderCapture.cpp.o):RenderCapture.cpp:function CRenderCaptureGL::PboToBuffer(): error: undefined reference to 'glUnmapBufferARB'
build/cores/VideoPlayer/videorenderers/videorenderers.a(RenderCapture.cpp.o):RenderCapture.cpp:function CRenderCaptureGL::EndRender(): error: undefined reference to 'glEndQueryARB'
build/cores/VideoPlayer/videorenderers/videorenderers.a(LinuxRendererGL.cpp.o):LinuxRendererGL.cpp:function CLinuxRendererGL::DeleteYV12Texture(int): error: undefined reference to 'glUnmapBufferARB'
build/cores/VideoPlayer/videorenderers/videorenderers.a(LinuxRendererGL.cpp.o):LinuxRendererGL.cpp:function CLinuxRendererGL::DeleteYV12Texture(int): error: undefined reference to 'glDeleteBuffersARB'
build/cores/VideoPlayer/videorenderers/videorenderers.a(LinuxRendererGL.cpp.o):LinuxRendererGL.cpp:function CLinuxRendererGL::CreateYV12Texture(int): error: undefined reference to 'glGenBuffersARB'
build/cores/VideoPlayer/videorenderers/videorenderers.a(LinuxRendererGL.cpp.o):LinuxRendererGL.cpp:function CLinuxRendererGL::CreateYV12Texture(int): error: undefined reference to 'glBufferDataARB'
build/cores/VideoPlayer/videorenderers/videorenderers.a(LinuxRendererGL.cpp.o):LinuxRendererGL.cpp:function CLinuxRendererGL::CreateYV12Texture(int): error: undefined reference to 'glMapBufferARB'
build/cores/VideoPlayer/videorenderers/videorenderers.a(LinuxRendererGL.cpp.o):LinuxRendererGL.cpp:function CLinuxRendererGL::CreateYV12Texture(int): error: undefined reference to 'glDeleteBuffersARB'
build/cores/VideoPlayer/videorenderers/videorenderers.a(LinuxRendererGL.cpp.o):LinuxRendererGL.cpp:function CLinuxRendererGL::DeleteNV12Texture(int): error: undefined reference to 'glDeleteBuffersARB'
build/cores/VideoPlayer/videorenderers/videorenderers.a(LinuxRendererGL.cpp.o):LinuxRendererGL.cpp:function CLinuxRendererGL::CreateNV12Texture(int): error: undefined reference to 'glGenBuffersARB'
build/cores/VideoPlayer/videorenderers/videorenderers.a(LinuxRendererGL.cpp.o):LinuxRendererGL.cpp:function CLinuxRendererGL::CreateNV12Texture(int): error: undefined reference to 'glBufferDataARB'
build/cores/VideoPlayer/videorenderers/videorenderers.a(LinuxRendererGL.cpp.o):LinuxRendererGL.cpp:function CLinuxRendererGL::CreateNV12Texture(int): error: undefined reference to 'glMapBufferARB'
build/cores/VideoPlayer/videorenderers/videorenderers.a(LinuxRendererGL.cpp.o):LinuxRendererGL.cpp:function CLinuxRendererGL::CreateYUV422PackedTexture(int): error: undefined reference to 'glGenBuffersARB'
build/cores/VideoPlayer/videorenderers/videorenderers.a(LinuxRendererGL.cpp.o):LinuxRendererGL.cpp:function CLinuxRendererGL::CreateYUV422PackedTexture(int): error: undefined reference to 'glBufferDataARB'
collect2: error: ld returned 1 exit status
CMakeFiles/kodi.dir/build.make:524: recipe for target 'kodi-x11' failed
make[2]: *** [kodi-x11] Error 1
CMakeFiles/Makefile2:739: recipe for target 'CMakeFiles/kodi.dir/all' failed
make[1]: *** [CMakeFiles/kodi.dir/all] Error 2
Makefile:138: recipe for target 'all' failed
make: *** [all] Error 2

Again thank you for trying to help me.

Re: Kodi Krypton on Wandboard

PostPosted: Sun Apr 08, 2018 3:48 am
by trunkz
output of glxinfo:

name of display: :0.0
display: :0 screen: 0
direct rendering: Yes
server glx vendor string: SGI
server glx version string: 1.4
server glx extensions:
GLX_ARB_create_context, GLX_ARB_create_context_profile,
GLX_ARB_fbconfig_float, GLX_ARB_framebuffer_sRGB, GLX_ARB_multisample,
GLX_EXT_create_context_es2_profile, GLX_EXT_create_context_es_profile,
GLX_EXT_fbconfig_packed_float, GLX_EXT_framebuffer_sRGB,
GLX_EXT_import_context, GLX_EXT_texture_from_pixmap, GLX_EXT_visual_info,
GLX_EXT_visual_rating, GLX_MESA_copy_sub_buffer, GLX_OML_swap_method,
GLX_SGIS_multisample, GLX_SGIX_fbconfig, GLX_SGIX_pbuffer,
GLX_SGIX_visual_select_group, GLX_SGI_make_current_read
client glx vendor string: Vivante Corp
client glx version string: 1.4
client glx extensions:
GLX_ARB_get_proc_address, GLX_SGIX_fbconfig, GLX_SGIX_pbuffer,
GLX_SGI_make_current_read
GLX version: 1.4
GLX extensions:
GLX_SGIX_fbconfig, GLX_SGIX_pbuffer, GLX_SGI_make_current_read
OpenGL vendor string: Vivante Corporation
OpenGL renderer string: Vivante GC2000
OpenGL version string: 2.1 2.0.1
OpenGL shading language version string: 1.20
OpenGL extensions:
GL_ARB_depth_texture, GL_ARB_fragment_program_shadow,
GL_ARB_fragment_shader, GL_ARB_imaging, GL_ARB_multisample,
GL_ARB_multitexture, GL_ARB_pixel_buffer_object, GL_ARB_shader_objects,
GL_ARB_texture_compression, GL_ARB_texture_env_add,
GL_ARB_texture_env_combine, GL_ARB_texture_non_power_of_two,
GL_ARB_texture_rectangle, GL_ARB_vertex_buffer_object,
GL_ARB_vertex_shader, GL_ARB_window_pos, GL_ATI_draw_buffers,
GL_ATI_element_array, GL_ATI_separate_stencil,
GL_ATI_texture_env_combine3, GL_ATI_vertex_array_object, GL_EXT_abgr,
GL_EXT_bgra, GL_EXT_blend_color, GL_EXT_blend_equation_separate,
GL_EXT_blend_func_separate, GL_EXT_color_table, GL_EXT_convolution,
GL_EXT_draw_buffers2, GL_EXT_draw_instanced, GL_EXT_draw_range_elements,
GL_EXT_framebuffer_blit, GL_EXT_framebuffer_multisample,
GL_EXT_framebuffer_object, GL_EXT_histogram, GL_EXT_packed_depth_stencil,
GL_EXT_pixel_buffer_object, GL_EXT_polygon_offset, GL_EXT_rescale_normal,
GL_EXT_secondary_color, GL_EXT_separate_specular_color,
GL_EXT_stencil_two_side, GL_EXT_subtexture, GL_EXT_texture,
GL_EXT_texture3D, GL_EXT_texture_array, GL_EXT_texture_buffer_object,
GL_EXT_texture_compression_s3tc, GL_EXT_texture_cube_map,
GL_EXT_texture_env_add, GL_EXT_texture_env_combine,
GL_EXT_texture_filter_anisotropic, GL_EXT_texture_lod_bias,
GL_EXT_texture_object, GL_EXT_texture_rectangle, GL_EXT_timer_query,
GL_EXT_vertex_array, GL_NV_texture_rectangle, GL_SGIS_generate_mipmap,
GL_SGIS_texture_lod, GL_SGI_color_matrix, WGL_ARB_extensions_string,
WGL_EXT_extensions_string, WGL_EXT_swap_control

Re: Kodi Krypton on Wandboard

PostPosted: Sun Apr 08, 2018 5:27 pm
by ClayMontgomery
What is unique about those Vertex Array functions is that they are new in OpenGL ES 3.0 and don't exist in 2.0. So, I think the version of Kodi you are building requires OpenGL ES 3.0, but you are linking to an older 2.0 driver module that does not have those functions. Vivante updated their OpenGL ES driver from 2.0 only to 2.0/3.0 about 2 years ago. I think this happened with the Fido release of Yocto (1.8).

There is an archive of Vivante packages here:
http://downloads.yoctoproject.org/mirro ... ta-hfp.bin
http://downloads.yoctoproject.org/mirro ... .3-hfp.bin

When you get Kodi Krypton running on the Wandboard, I would like to help you test it!

Regards, Clay

Re: Kodi Krypton on Wandboard

PostPosted: Sun Apr 08, 2018 7:51 pm
by trunkz
Awesome thank you Clay!

ok so i got the bin files, but am not sure how to install them. Of course I was able to extract everything in both bin files

do i simply toss it all in /usr/local/ and create some links ln -s to where all my older drivers were?

Again, thank you!