ptitSeb
Posts: 132
Joined: Tue May 19, 2015 2:49 pm

Re: gzdoom on raspberry pi

Tue Apr 04, 2017 1:33 pm

THt's the GL extension provides by gl4es. I was more interested in the underlying GLES extension.

To easily have then, you can add

Code: Select all

printf("LIBGL: GLES extensions are\n%s\n", Exts);
Line 101 of src/glx/hardext.c

(I'll probably do a LIBGL_XXXX option in the near future for that).

raysaaron
Posts: 30
Joined: Sun Feb 12, 2017 4:20 am

Re: gzdoom on raspberry pi

Tue Apr 04, 2017 2:12 pm

Here it is:

Code: Select all

GL_VENDOR: VMware, Inc.
GL_RENDERER: Gallium 0.4 on llvmpipe (LLVM 3.7, 128 bits)
GL_VERSION: 3.0 Mesa 11.1.0
GL_EXTENSIONS:
	GL_ARB_multisample
	GL_EXT_abgr
	GL_EXT_bgra
	GL_EXT_blend_color
	GL_EXT_blend_minmax
	GL_EXT_blend_subtract
	GL_EXT_copy_texture
	GL_EXT_polygon_offset
	GL_EXT_subtexture
	GL_EXT_texture_object
	GL_EXT_vertex_array
	GL_EXT_compiled_vertex_array
	GL_EXT_texture
	GL_EXT_texture3D
	GL_IBM_rasterpos_clip
	GL_ARB_point_parameters
	GL_EXT_draw_range_elements
	GL_EXT_packed_pixels
	GL_EXT_point_parameters
	GL_EXT_rescale_normal
	GL_EXT_separate_specular_color
	GL_EXT_texture_edge_clamp
	GL_SGIS_generate_mipmap
	GL_SGIS_texture_border_clamp
	GL_SGIS_texture_edge_clamp
	GL_SGIS_texture_lod
	GL_ARB_framebuffer_sRGB
	GL_ARB_multitexture
	GL_EXT_framebuffer_sRGB
	GL_IBM_multimode_draw_arrays
	GL_IBM_texture_mirrored_repeat
	GL_ARB_texture_cube_map
	GL_ARB_texture_env_add
	GL_ARB_transpose_matrix
	GL_EXT_blend_func_separate
	GL_EXT_fog_coord
	GL_EXT_multi_draw_arrays
	GL_EXT_secondary_color
	GL_EXT_texture_env_add
	GL_EXT_texture_lod_bias
	GL_INGR_blend_func_separate
	GL_NV_blend_square
	GL_NV_light_max_exponent
	GL_NV_texgen_reflection
	GL_NV_texture_env_combine4
	GL_S3_s3tc
	GL_SUN_multi_draw_arrays
	GL_ARB_texture_border_clamp
	GL_ARB_texture_compression
	GL_EXT_framebuffer_object
	GL_EXT_texture_compression_s3tc
	GL_EXT_texture_env_combine
	GL_EXT_texture_env_dot3
	GL_MESA_window_pos
	GL_NV_packed_depth_stencil
	GL_NV_texture_rectangle
	GL_ARB_depth_texture
	GL_ARB_occlusion_query
	GL_ARB_shadow
	GL_ARB_texture_env_combine
	GL_ARB_texture_env_crossbar
	GL_ARB_texture_env_dot3
	GL_ARB_texture_mirrored_repeat
	GL_ARB_window_pos
	GL_EXT_stencil_two_side
	GL_EXT_texture_cube_map
	GL_NV_depth_clamp
	GL_NV_fog_distance
	GL_APPLE_packed_pixels
	GL_APPLE_vertex_array_object
	GL_ARB_draw_buffers
	GL_ARB_fragment_program
	GL_ARB_fragment_shader
	GL_ARB_shader_objects
	GL_ARB_vertex_program
	GL_ARB_vertex_shader
	GL_ATI_draw_buffers
	GL_ATI_texture_env_combine3
	GL_ATI_texture_float
	GL_EXT_shadow_funcs
	GL_EXT_stencil_wrap
	GL_MESA_pack_invert
	GL_MESA_ycbcr_texture
	GL_NV_primitive_restart
	GL_ARB_depth_clamp
	GL_ARB_fragment_program_shadow
	GL_ARB_half_float_pixel
	GL_ARB_occlusion_query2
	GL_ARB_point_sprite
	GL_ARB_shading_language_100
	GL_ARB_sync
	GL_ARB_texture_non_power_of_two
	GL_ARB_vertex_buffer_object
	GL_ATI_blend_equation_separate
	GL_EXT_blend_equation_separate
	GL_OES_read_format
	GL_ARB_color_buffer_float
	GL_ARB_pixel_buffer_object
	GL_ARB_texture_compression_rgtc
	GL_ARB_texture_float
	GL_ARB_texture_rectangle
	GL_ATI_texture_compression_3dc
	GL_EXT_packed_float
	GL_EXT_pixel_buffer_object
	GL_EXT_texture_compression_dxt1
	GL_EXT_texture_compression_rgtc
	GL_EXT_texture_mirror_clamp
	GL_EXT_texture_rectangle
	GL_EXT_texture_sRGB
	GL_EXT_texture_shared_exponent
	GL_ARB_framebuffer_object
	GL_EXT_framebuffer_blit
	GL_EXT_framebuffer_multisample
	GL_EXT_packed_depth_stencil
	GL_ARB_vertex_array_object
	GL_ATI_separate_stencil
	GL_ATI_texture_mirror_once
	GL_EXT_draw_buffers2
	GL_EXT_draw_instanced
	GL_EXT_gpu_program_parameters
	GL_EXT_texture_array
	GL_EXT_texture_compression_latc
	GL_EXT_texture_integer
	GL_EXT_texture_sRGB_decode
	GL_EXT_timer_query
	GL_OES_EGL_image
	GL_ARB_copy_buffer
	GL_ARB_depth_buffer_float
	GL_ARB_draw_instanced
	GL_ARB_half_float_vertex
	GL_ARB_instanced_arrays
	GL_ARB_map_buffer_range
	GL_ARB_texture_rg
	GL_ARB_texture_swizzle
	GL_ARB_vertex_array_bgra
	GL_EXT_texture_swizzle
	GL_EXT_vertex_array_bgra
	GL_NV_conditional_render
	GL_AMD_conservative_depth
	GL_AMD_draw_buffers_blend
	GL_AMD_seamless_cubemap_per_texture
	GL_AMD_shader_stencil_export
	GL_ARB_ES2_compatibility
	GL_ARB_blend_func_extended
	GL_ARB_debug_output
	GL_ARB_draw_buffers_blend
	GL_ARB_draw_elements_base_vertex
	GL_ARB_explicit_attrib_location
	GL_ARB_fragment_coord_conventions
	GL_ARB_provoking_vertex
	GL_ARB_sampler_objects
	GL_ARB_seamless_cube_map
	GL_ARB_shader_stencil_export
	GL_ARB_shader_texture_lod
	GL_ARB_texture_cube_map_array
	GL_ARB_texture_gather
	GL_ARB_texture_multisample
	GL_ARB_texture_rgb10_a2ui
	GL_ARB_uniform_buffer_object
	GL_ARB_vertex_type_2_10_10_10_rev
	GL_EXT_provoking_vertex
	GL_EXT_texture_snorm
	GL_MESA_texture_signed_rgba
	GL_ARB_get_program_binary
	GL_ARB_robustness
	GL_ARB_separate_shader_objects
	GL_ARB_shader_bit_encoding
	GL_ARB_timer_query
	GL_ARB_transform_feedback2
	GL_ARB_transform_feedback3
	GL_ANGLE_texture_compression_dxt3
	GL_ANGLE_texture_compression_dxt5
	GL_ARB_base_instance
	GL_ARB_compressed_texture_pixel_storage
	GL_ARB_conservative_depth
	GL_ARB_internalformat_query
	GL_ARB_map_buffer_alignment
	GL_ARB_shading_language_420pack
	GL_ARB_shading_language_packing
	GL_ARB_texture_storage
	GL_ARB_transform_feedback_instanced
	GL_EXT_framebuffer_multisample_blit_scaled
	GL_EXT_transform_feedback
	GL_AMD_shader_trinary_minmax
	GL_ARB_ES3_compatibility
	GL_ARB_clear_buffer_object
	GL_ARB_explicit_uniform_location
	GL_ARB_invalidate_subdata
	GL_ARB_program_interface_query
	GL_ARB_stencil_texturing
	GL_ARB_texture_query_levels
	GL_ARB_texture_storage_multisample
	GL_ARB_texture_view
	GL_ARB_vertex_attrib_binding
	GL_KHR_debug
	GL_ARB_buffer_storage
	GL_ARB_multi_bind
	GL_ARB_seamless_cubemap_per_texture
	GL_ARB_texture_mirror_clamp_to_edge
	GL_ARB_texture_stencil8
	GL_ARB_vertex_type_10f_11f_11f_rev
	GL_EXT_shader_integer_mix
	GL_ARB_clip_control
	GL_ARB_conditional_render_inverted
	GL_ARB_get_texture_sub_image
	GL_EXT_polygon_offset_clamp
	GL_KHR_context_flush_control
using GL_ARB_texture_non_power_of_two
using GL_ARB_multitexture
using GL_ARB_texture_compression
using GL_EXT_framebuffer_object
using GL_EXT_packed_depth_stencil
using GL_EXT_blend_color
using GL_ARB_pixel_buffer_object

ptitSeb
Posts: 132
Joined: Tue May 19, 2015 2:49 pm

Re: gzdoom on raspberry pi

Tue Apr 04, 2017 2:18 pm

I don't really understand what's going on here.

What I see is that:
1. It's not a GLES driver but a full OpenGL driver?
2. It's MESA GL in Software mode (so it's super slow)

Even it does work eventually, it will be to slow to be useable.

PS: Are you using the Beta Desktop OpenGL driver? If yes, then you should not use gl4es and just use the driver. If it doesn't work, consider using old stable GLES driver + gl4es as a test.

raysaaron
Posts: 30
Joined: Sun Feb 12, 2017 4:20 am

Re: gzdoom on raspberry pi

Tue Apr 04, 2017 2:38 pm

is This it:

Code: Select all

EGL
Vendor: Broadcom
Version: 1.4
Client APIs: OpenGL_ES OpenVG
Extensions: EGL_KHR_image EGL_KHR_image_base EGL_KHR_image_pixmap EGL_KHR_vg_parent_image EGL_KHR_gl_texture_2D_image EGL_KHR_gl_texture_cubemap_image EGL_KHR_lock_surface
OpenGL ES
Vendor: Broadcom
Renderer: VideoCore IV HW
Version: OpenGL ES 2.0
GLSL version: OpenGL ES GLSL ES 1.00
Extensions: GL_OES_compressed_ETC1_RGB8_texture GL_OES_compressed_paletted_texture GL_OES_texture_npot GL_OES_depth24 GL_OES_vertex_half_float GL_OES_EGL_image GL_OES_EGL_image_external GL_EXT_discard_framebuffer GL_OES_rgb8_rgba8 GL_OES_depth32 GL_OES_mapbuffer GL_EXT_texture_format_BGRA8888 GL_APPLE_rgb_422
Implementation limits:
GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS = 8
GL_MAX_CUBE_MAP_TEXTURE_SIZE = 2048
GL_MAX_FRAGMENT_UNIFORM_VECTORS = 136
GL_MAX_RENDERBUFFER_SIZE = 2048
GL_MAX_TEXTURE_IMAGE_UNITS = 8
GL_MAX_TEXTURE_SIZE = 2048
GL_MAX_VARYING_VECTORS = 8
GL_MAX_VERTEX_ATTRIBS = 8
GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS = 0
GL_MAX_VERTEX_UNIFORM_VECTORS = 136
GL_MAX_VIEWPORT_DIMS = 2048, 2048

ptitSeb
Posts: 132
Joined: Tue May 19, 2015 2:49 pm

Re: gzdoom on raspberry pi

Tue Apr 04, 2017 4:17 pm

Almost. That's the GLES2 driver infos (and this time, it's hardware accelerated). gl4es use GLESv1 driver, but it should be there too.

Doesn't Zandronum work with gl4es and the Broadcom GLES driver?

raysaaron
Posts: 30
Joined: Sun Feb 12, 2017 4:20 am

Re: gzdoom on raspberry pi

Wed Apr 05, 2017 4:53 am

I navigated to /opt/vc/lib/ and i am seeing that libGLESv1_CM.so is just a link to libGLESv2.so

raysaaron
Posts: 30
Joined: Sun Feb 12, 2017 4:20 am

Re: gzdoom on raspberry pi

Wed Apr 05, 2017 5:31 am

I've also found that gl4es uses libGLESv1_CM.so rather than libGLESv1.so

ptitSeb
Posts: 132
Joined: Tue May 19, 2015 2:49 pm

Re: gzdoom on raspberry pi

Wed Apr 05, 2017 6:40 am

Yes, on the rasperry GLESv1 is named libGLESv1_CM.so.
It can also be found as libGLES_CM.so on other machine.
gl4es has code to load it with this 2 names, and also initialize first the BCM stuff (only found on RPi) if found.

I don't understand what is the status on Zandronum / gl4es for you. Is it working (is it smooth), not working (what is happening).

raysaaron
Posts: 30
Joined: Sun Feb 12, 2017 4:20 am

Re: gzdoom on raspberry pi

Wed Apr 05, 2017 7:15 am

it is not even starting yet.just freezes on the gl4es boot

ptitSeb
Posts: 132
Joined: Tue May 19, 2015 2:49 pm

Re: gzdoom on raspberry pi

Wed Apr 05, 2017 8:33 am

Freeze? That's odd.

Can you copy/paste the console output?

Also, you can try to use some gl4es env. variable to tweak thing.
You can try LIBGL_FB=1 or LIBGL_FB=3 to see if it solve the freeze issue (LIBGL_FB=3 may slow things down a bit, and LIBGL_FB=1 will skip X11 stuff and so force fullscreen).

Vanfanel
Posts: 403
Joined: Sat Aug 18, 2012 5:58 pm

Re: gzdoom on raspberry pi

Wed Apr 05, 2017 9:27 am

@ptitSeb: How's LIBGL_FB=1 supposed to work on the Raspberry Pi? The Raspberry Pi currently uses dispmanx as it's X11-less 2D system, but there is no dispmanx code in gl4es at all.

ptitSeb
Posts: 132
Joined: Tue May 19, 2015 2:49 pm

Re: gzdoom on raspberry pi

Wed Apr 05, 2017 9:43 am

Vanfanel wrote:@ptitSeb: How's LIBGL_FB=1 supposed to work on the Raspberry Pi? The Raspberry Pi currently uses dispmanx as it's X11-less 2D system, but there is no dispmanx code in gl4es at all.
Mmmm, maybe it will not work indeed.
I don't have a RPi to test, but yeah, some dispmanx minimum code probably need to be written for LIBGL_FB=1 to work.

Vanfanel
Posts: 403
Joined: Sat Aug 18, 2012 5:58 pm

Re: gzdoom on raspberry pi

Wed Apr 05, 2017 10:01 am

@ptitSeb: It does not work at all, I have tried :D
Any chances of dispmanx being added? X11 isn't exactly a good thing on the Pi and all gaming-oriented distros skip it for good...

ptitSeb
Posts: 132
Joined: Tue May 19, 2015 2:49 pm

Re: gzdoom on raspberry pi

Wed Apr 05, 2017 10:26 am

Vanfanel wrote:@ptitSeb: It does not work at all, I have tried :D
Any chances of dispmanx being added? X11 isn't exactly a good thing on the Pi and all gaming-oriented distros skip it for good...
I'll take a look and see if I can put some simple init code.

ptitSeb
Posts: 132
Joined: Tue May 19, 2015 2:49 pm

Re: gzdoom on raspberry pi

Wed Apr 05, 2017 2:11 pm

Vanfanel wrote:@ptitSeb: It does not work at all, I have tried :D
Any chances of dispmanx being added? X11 isn't exactly a good thing on the Pi and all gaming-oriented distros skip it for good...
Ok, I have pushed a first try to my github.
I try to use dispmanx complety dynamicaly (so there is still no #ifdef BCM_HOST to keep the binary kindof universal). Not sure it works, so if you can give it a try. It should create a dispmanx display (the size of the screen) when using LIBGL_FB=1

Vanfanel
Posts: 403
Joined: Sat Aug 18, 2012 5:58 pm

Re: gzdoom on raspberry pi

Wed Apr 05, 2017 2:51 pm

@ptitSeb: Thanks for adding dispmanx support.
Seems it won't build however:

Code: Select all

[ 97%] [100%] Building C object src/CMakeFiles/GL.dir/glx/streaming.c.o
Building C object src/CMakeFiles/GL.dir/glx/utils.c.o
/home/pi/src/gl4es/src/glx/glx.c:111:16: error: redefinition of 'struct tag_VC_RECT_T'
 typedef struct tag_VC_RECT_T {
                ^~~~~~~~~~~~~
In file included from /opt/vc/include/interface/vmcs_host/vc_dispmanx.h:34:0,
                 from /opt/vc/include/EGL/eglplatform.h:110,
                 from /opt/vc/include/EGL/egl.h:36,
                 from /home/pi/src/gl4es/src/glx/glx.h:1,
                 from /home/pi/src/gl4es/src/glx/glx.c:20:
/opt/vc/include/interface/vctypes/vc_image_types.h:39:16: note: originally defined here
 typedef struct tag_VC_RECT_T {
                ^~~~~~~~~~~~~
/home/pi/src/gl4es/src/glx/glx.c:116:3: error: conflicting types for 'VC_RECT_T'
 } VC_RECT_T;
   ^~~~~~~~~
In file included from /opt/vc/include/interface/vmcs_host/vc_dispmanx.h:34:0,
                 from /opt/vc/include/EGL/eglplatform.h:110,
                 from /opt/vc/include/EGL/egl.h:36,
                 from /home/pi/src/gl4es/src/glx/glx.h:1,
                 from /home/pi/src/gl4es/src/glx/glx.c:20:
/opt/vc/include/interface/vctypes/vc_image_types.h:44:3: note: previous declaration of 'VC_RECT_T' was here
 } VC_RECT_T;
   ^~~~~~~~~
/home/pi/src/gl4es/src/glx/glx.c:121:3: error: conflicting types for 'EGL_DISPMANX_WINDOW_T'
 } EGL_DISPMANX_WINDOW_T;
   ^~~~~~~~~~~~~~~~~~~~~
In file included from /opt/vc/include/EGL/egl.h:36:0,
                 from /home/pi/src/gl4es/src/glx/glx.h:1,
                 from /home/pi/src/gl4es/src/glx/glx.c:20:
/opt/vc/include/EGL/eglplatform.h:118:3: note: previous declaration of 'EGL_DISPMANX_WINDOW_T' was here
 } EGL_DISPMANX_WINDOW_T;
   ^~~~~~~~~~~~~~~~~~~~~
/home/pi/src/gl4es/src/glx/glx.c:123:29: error: 'vc_dispmanx_display_open' redeclared as different kind of symbol
 DISPMANX_DISPLAY_HANDLE_T (*vc_dispmanx_display_open)(uint32_t);
                             ^~~~~~~~~~~~~~~~~~~~~~~~
In file included from /opt/vc/include/EGL/eglplatform.h:110:0,
                 from /opt/vc/include/EGL/egl.h:36,
                 from /home/pi/src/gl4es/src/glx/glx.h:1,
                 from /home/pi/src/gl4es/src/glx/glx.c:20:
/opt/vc/include/interface/vmcs_host/vc_dispmanx.h:64:44: note: previous declaration of 'vc_dispmanx_display_open' was here
 VCHPRE_ DISPMANX_DISPLAY_HANDLE_T VCHPOST_ vc_dispmanx_display_open( uint32_t device );
                                            ^~~~~~~~~~~~~~~~~~~~~~~~
/home/pi/src/gl4es/src/glx/glx.c:124:28: error: 'vc_dispmanx_update_start' redeclared as different kind of symbol
 DISPMANX_UPDATE_HANDLE_T (*vc_dispmanx_update_start)(int32_t);
                            ^~~~~~~~~~~~~~~~~~~~~~~~
In file included from /opt/vc/include/EGL/eglplatform.h:110:0,
                 from /opt/vc/include/EGL/egl.h:36,
                 from /home/pi/src/gl4es/src/glx/glx.h:1,
                 from /home/pi/src/gl4es/src/glx/glx.c:20:
/opt/vc/include/interface/vmcs_host/vc_dispmanx.h:83:43: note: previous declaration of 'vc_dispmanx_update_start' was here
 VCHPRE_ DISPMANX_UPDATE_HANDLE_T VCHPOST_ vc_dispmanx_update_start( int32_t priority );
                                           ^~~~~~~~~~~~~~~~~~~~~~~~
/home/pi/src/gl4es/src/glx/glx.c:125:29: error: 'vc_dispmanx_element_add' redeclared as different kind of symbol
 DISPMANX_ELEMENT_HANDLE_T (*vc_dispmanx_element_add)(
                             ^~~~~~~~~~~~~~~~~~~~~~~
In file included from /opt/vc/include/EGL/eglplatform.h:110:0,
                 from /opt/vc/include/EGL/egl.h:36,
                 from /home/pi/src/gl4es/src/glx/glx.h:1,
                 from /home/pi/src/gl4es/src/glx/glx.c:20:
/opt/vc/include/interface/vmcs_host/vc_dispmanx.h:85:44: note: previous declaration of 'vc_dispmanx_element_add' was here
 VCHPRE_ DISPMANX_ELEMENT_HANDLE_T VCHPOST_ vc_dispmanx_element_add ( DISPMANX_UPDATE_HANDLE_T update, DISPMANX_DISPLAY_HANDLE_T display,
                                            ^~~~~~~~~~~~~~~~~~~~~~~
/home/pi/src/gl4es/src/glx/glx.c:131:7: error: 'vc_dispmanx_update_submit_sync' redeclared as different kind of symbol
 int (*vc_dispmanx_update_submit_sync)(DISPMANX_RESOURCE_HANDLE_T);
       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /opt/vc/include/EGL/eglplatform.h:110:0,
                 from /opt/vc/include/EGL/egl.h:36,
                 from /home/pi/src/gl4es/src/glx/glx.h:1,
                 from /home/pi/src/gl4es/src/glx/glx.c:20:
/opt/vc/include/interface/vmcs_host/vc_dispmanx.h:103:22: note: previous declaration of 'vc_dispmanx_update_submit_sync' was here
 VCHPRE_ int VCHPOST_ vc_dispmanx_update_submit_sync( DISPMANX_UPDATE_HANDLE_T update );
                      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/pi/src/gl4es/src/glx/glx.c: In function 'gl4es_glXMakeCurrent':
/home/pi/src/gl4es/src/glx/glx.c:980:116: warning: passing argument 3 of 'egl_eglCreateWindowSurface' makes pointer from integer without a cast [-Wint-conversion]
                     eglSurf = context->eglSurface = egl_eglCreateWindowSurface(eglDisplay, context->eglConfigs[0], drawable, (globals4es.glx_surface_srgb)?sRGB:NULL);
                                                                                                                    ^~~~~~~~
/home/pi/src/gl4es/src/glx/glx.c:980:116: note: expected 'EGLNativeWindowType {aka void *}' but argument is of type 'GLXDrawable {aka int}'
src/CMakeFiles/GL.dir/build.make:767: recipe for target 'src/CMakeFiles/GL.dir/glx/glx.c.o' failed
make[3]: *** [src/CMakeFiles/GL.dir/glx/glx.c.o] Error 1
make[3]: *** Waiting for unfinished jobs....
CMakeFiles/Makefile2:75: recipe for target 'src/CMakeFiles/GL.dir/all' failed
make[2]: *** [src/CMakeFiles/GL.dir/all] Error 2
CMakeFiles/Makefile2:87: recipe for target 'src/CMakeFiles/GL.dir/rule' failed
make[1]: *** [src/CMakeFiles/GL.dir/rule] Error 2
Makefile:110: recipe for target 'GL' failed
make: *** [GL] Error 2


ptitSeb
Posts: 132
Joined: Tue May 19, 2015 2:49 pm

Re: gzdoom on raspberry pi

Wed Apr 05, 2017 2:59 pm

Vanfanel wrote:@ptitSeb: Thanks for adding dispmanx support.
Seems it won't build however:
Ok, second try upload to my github. It should build now (but maybe it segfault running, in that case, I need the "LIBGL: Warning XXXX is null" that maybe printed if any)

Vanfanel
Posts: 403
Joined: Sat Aug 18, 2012 5:58 pm

Re: gzdoom on raspberry pi

Wed Apr 05, 2017 3:41 pm

Nope, still the same problem:

Code: Select all

/home/pi/src/gl4es/src/glx/glx.c:123:33: error: 'vc_dispmanx_display_open' redeclared as different kind of symbol
 bcm_DISPMANX_DISPLAY_HANDLE_T (*vc_dispmanx_display_open)(uint32_t);
                                 ^~~~~~~~~~~~~~~~~~~~~~~~
In file included from /opt/vc/include/EGL/eglplatform.h:110:0,
                 from /opt/vc/include/EGL/egl.h:36,
                 from /home/pi/src/gl4es/src/glx/glx.h:1,
                 from /home/pi/src/gl4es/src/glx/glx.c:20:
/opt/vc/include/interface/vmcs_host/vc_dispmanx.h:64:44: note: previous declaration of 'vc_dispmanx_display_open' was here
 VCHPRE_ DISPMANX_DISPLAY_HANDLE_T VCHPOST_ vc_dispmanx_display_open( uint32_t device );
                                            ^~~~~~~~~~~~~~~~~~~~~~~~
/home/pi/src/gl4es/src/glx/glx.c:124:32: error: 'vc_dispmanx_update_start' redeclared as different kind of symbol
 bcm_DISPMANX_UPDATE_HANDLE_T (*vc_dispmanx_update_start)(int32_t);
                                ^~~~~~~~~~~~~~~~~~~~~~~~
In file included from /opt/vc/include/EGL/eglplatform.h:110:0,
                 from /opt/vc/include/EGL/egl.h:36,
                 from /home/pi/src/gl4es/src/glx/glx.h:1,
                 from /home/pi/src/gl4es/src/glx/glx.c:20:
/opt/vc/include/interface/vmcs_host/vc_dispmanx.h:83:43: note: previous declaration of 'vc_dispmanx_update_start' was here
 VCHPRE_ DISPMANX_UPDATE_HANDLE_T VCHPOST_ vc_dispmanx_update_start( int32_t priority );
                                           ^~~~~~~~~~~~~~~~~~~~~~~~
/home/pi/src/gl4es/src/glx/glx.c:125:33: error: 'vc_dispmanx_element_add' redeclared as different kind of symbol
 bcm_DISPMANX_ELEMENT_HANDLE_T (*vc_dispmanx_element_add)(
                                 ^~~~~~~~~~~~~~~~~~~~~~~
In file included from /opt/vc/include/EGL/eglplatform.h:110:0,
                 from /opt/vc/include/EGL/egl.h:36,
                 from /home/pi/src/gl4es/src/glx/glx.h:1,
                 from /home/pi/src/gl4es/src/glx/glx.c:20:
/opt/vc/include/interface/vmcs_host/vc_dispmanx.h:85:44: note: previous declaration of 'vc_dispmanx_element_add' was here
 VCHPRE_ DISPMANX_ELEMENT_HANDLE_T VCHPOST_ vc_dispmanx_element_add ( DISPMANX_UPDATE_HANDLE_T update, DISPMANX_DISPLAY_HANDLE_T display,
                                            ^~~~~~~~~~~~~~~~~~~~~~~
/home/pi/src/gl4es/src/glx/glx.c:131:7: error: 'vc_dispmanx_update_submit_sync' redeclared as different kind of symbol
 int (*vc_dispmanx_update_submit_sync)(bcm_DISPMANX_RESOURCE_HANDLE_T);
       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /opt/vc/include/EGL/eglplatform.h:110:0,
                 from /opt/vc/include/EGL/egl.h:36,
                 from /home/pi/src/gl4es/src/glx/glx.h:1,
                 from /home/pi/src/gl4es/src/glx/glx.c:20:
/opt/vc/include/interface/vmcs_host/vc_dispmanx.h:103:22: note: previous declaration of 'vc_dispmanx_update_submit_sync' was here
 VCHPRE_ int VCHPOST_ vc_dispmanx_update_submit_sync( DISPMANX_UPDATE_HANDLE_T update );
                      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/pi/src/gl4es/src/glx/glx.c: In function 'gl4es_glXMakeCurrent':
/home/pi/src/gl4es/src/glx/glx.c:980:116: warning: passing argument 3 of 'egl_eglCreateWindowSurface' makes pointer from integer without a cast [-Wint-conversion]
                     eglSurf = context->eglSurface = egl_eglCreateWindowSurface(eglDisplay, context->eglConfigs[0], drawable, (globals4es.glx_surface_srgb)?sRGB:NULL);
                                                                                                                    ^~~~~~~~
/home/pi/src/gl4es/src/glx/glx.c:980:116: note: expected 'EGLNativeWindowType {aka void *}' but argument is of type 'GLXDrawable {aka int}'
src/CMakeFiles/GL.dir/build.make:767: recipe for target 'src/CMakeFiles/GL.dir/glx/glx.c.o' failed
make[3]: *** [src/CMakeFiles/GL.dir/glx/glx.c.o] Error 1
make[3]: *** Waiting for unfinished jobs....
CMakeFiles/Makefile2:75: recipe for target 'src/CMakeFiles/GL.dir/all' failed
make[2]: *** [src/CMakeFiles/GL.dir/all] Error 2
CMakeFiles/Makefile2:87: recipe for target 'src/CMakeFiles/GL.dir/rule' failed
make[1]: *** [src/CMakeFiles/GL.dir/rule] Error 2
Makefile:110: recipe for target 'GL' failed
make: *** [GL] Error 2


ptitSeb
Posts: 132
Joined: Tue May 19, 2015 2:49 pm

Re: gzdoom on raspberry pi

Wed Apr 05, 2017 3:45 pm

Vanfanel wrote:Nope, still the same problem:
Mmmm, ok, third try, this time it should compile on the RPi.

raysaaron
Posts: 30
Joined: Sun Feb 12, 2017 4:20 am

Re: gzdoom on raspberry pi

Wed Apr 05, 2017 4:11 pm

I don't know but it works on Eric Anholt's OpenGL Driver.

ptitSeb
Posts: 132
Joined: Tue May 19, 2015 2:49 pm

Re: gzdoom on raspberry pi

Wed Apr 05, 2017 4:18 pm

raysaaron wrote:I don't know but it works on Eric Anholt's OpenGL Driver.
Zandronum works with the beta OpenGL driver?

Vanfanel
Posts: 403
Joined: Sat Aug 18, 2012 5:58 pm

Re: gzdoom on raspberry pi

Thu Apr 06, 2017 10:23 am

@ptitSeb: now it builds!
What should I use to try it? I tried building SDL2 with OpenGL support, but none of the tests I tried work.

ptitSeb
Posts: 132
Joined: Tue May 19, 2015 2:49 pm

Re: gzdoom on raspberry pi

Thu Apr 06, 2017 10:28 am

Simply glxgears to check it works.

From the build folder of gl4es, try with

Code: Select all

LD_LIBRARY_PATH=lib glxgears
and also with

Code: Select all

LD_LIBRARY_PATH=lib LIBGL_FB=1 glxgears
to see fullscreen stuff.

a test with

Code: Select all

LD_LIBRARY_PATH=lib LIBGL_FB=3 glxgears
can be interesting also.

Vanfanel
Posts: 403
Joined: Sat Aug 18, 2012 5:58 pm

Re: gzdoom on raspberry pi

Thu Apr 06, 2017 10:55 am

@ptibSeb: GLXGears depends on X11 libs, which are not present on my system, and never will.
Any other example I can build without depending on stinky X, please?

ptitSeb
Posts: 132
Joined: Tue May 19, 2015 2:49 pm

Re: gzdoom on raspberry pi

Thu Apr 06, 2017 12:24 pm

Anything based on SDL / SDL2 then. You'll need to compile SDL(2) with OpenGL support if needed.

Zandronum should work.

Stunt car remake on my github is simple enough and should work (based on SDL) : https://github.com/ptitSeb/stuntcarremake
You can also try Prototype: https://github.com/ptitSeb/prototype that should works too.

Return to “Gaming”

Who is online

Users browsing this forum: No registered users and 12 guests