ptitSeb / gl4es

GL4ES is a OpenGL 2.1/1.5 to GL ES 2.0/1.1 translation library, with support for Pandora, ODroid, OrangePI, CHIP, Raspberry PI, Android, Emscripten and AmigaOS4.
http://ptitseb.github.io/gl4es/
MIT License
700 stars 159 forks source link

[Turnip] Flightgear crash #388

Open IntinteDAO opened 2 years ago

IntinteDAO commented 2 years ago

On Android in VNC thanks to Turnip, I decided to see how gl4es works and if there are differences compared to zink (as I understand it, it converts Vulkan to OpenGL?). In any case, I noticed that Flightgear crashes on gl4es.

root@localhost:~# dbus-launch fgfs
dbus[16232]: Unable to set up transient service directory: XDG_RUNTIME_DIR "/tmp" can be written by others (mode 041777)
LIBGL: Initialising gl4es
LIBGL: v1.1.5 built on Jul  9 2022 08:33:17
LIBGL: Using GLES 2.0 backend
LIBGL: loaded: libGLESv2.so
LIBGL: loaded: libEGL.so
LIBGL: Using GLES 2.0 backend
WARNING: Some incorrect rendering might occur because the selected Vulkan device (Turnip Adreno (TM) 650) doesn't support base Zink requirements: feats.features.wideLines 
LIBGL: Hardware Full NPOT detected and used
LIBGL: Extension GL_EXT_blend_minmax  detected and used
LIBGL: Extension GL_EXT_draw_buffers  detected and used
LIBGL: FBO are in core, and so used
LIBGL: PointSprite are in core, and so used
LIBGL: CubeMap are in core, and so used
LIBGL: BlendColor is in core, and so used
LIBGL: Blend Subtract is in core, and so used
LIBGL: Blend Function and Equation Separation is in core, and so used
LIBGL: Texture Mirrored Repeat is in core, and so used
LIBGL: Extension GL_OES_mapbuffer  detected
LIBGL: Extension GL_OES_element_index_uint  detected and used
LIBGL: Extension GL_OES_packed_depth_stencil  detected and used
LIBGL: Extension GL_OES_depth24  detected and used
LIBGL: Extension GL_OES_rgb8_rgba8  detected and used
LIBGL: Extension GL_EXT_multi_draw_arrays  detected
LIBGL: Extension GL_EXT_texture_format_BGRA8888  detected and used
LIBGL: Extension GL_OES_depth_texture  detected and used
LIBGL: Extension GL_OES_texture_stencil8  detected and used
LIBGL: Extension GL_EXT_texture_rg  detected and used
LIBGL: Extension GL_OES_texture_float  detected and used
LIBGL: Extension GL_OES_texture_half_float  detected and used
LIBGL: Extension GL_EXT_color_buffer_float  detected and used
LIBGL: Extension GL_EXT_color_buffer_half_float  detected and used
LIBGL: high precision float in fragment shader available and used
LIBGL: Extension GL_EXT_frag_depth  detected and used
LIBGL: Max vertex attrib: 16
LIBGL: Extension GL_OES_standard_derivatives  detected and used
LIBGL: Max texture size: 16384
LIBGL: Max Varying Vector: 16
LIBGL: Texture Units: 16/16 (hardware: 32), Max lights: 8, Max planes: 6
LIBGL: Extension GL_EXT_texture_filter_anisotropic  detected and used
LIBGL: Max Anisotropic filtering: 16
LIBGL: Max Color Attachments: 8 / Draw buffers: 8
LIBGL: Hardware vendor is Collabora Ltd
LIBGL: GLSL 300 es supported
LIBGL: GLSL 310 es supported and used
LIBGL: sRGB surface supported
LIBGL: EGLImage to Texture2D supported
LIBGL: EGLImage to RenderBuffer supported
LIBGL: Targeting OpenGL 2.1
LIBGL: Not trying to batch small subsequent glDrawXXXX
LIBGL: try to use VBO
LIBGL: Force texture for Attachment color0 on FBO
LIBGL: Hack to trigger a SwapBuffers when a Full Framebuffer Blit on default FBO is done
LIBGL: glX Will try to recycle EGL Surface
LIBGL: Current folder is:/root
    0.06 [WARN]:gui        QStandardPaths: wrong permissions on runtime directory /tmp, 0777 instead of 0700
Now checking for plug-in osgPlugins-3.6.5/osgdb_nvtt.so
WARNING: Some incorrect rendering might occur because the selected Vulkan device (Turnip Adreno (TM) 650) doesn't support base Zink requirements: feats.features.wideLines 
    0.74 [WARN]:general    Enabling ATI/AMD viewport hack
Mesa: User error: GL_INVALID_OPERATION in glGenerateMipmap(zero size base image)

   38.54 [ALRT]:io         mipmapping: texture size not a power-of-two: /usr/share/games/flightgear/Aircraft/c172p/Models/Interior/Panel/Instruments/gear/breakers-switches.png
   38.55 [ALRT]:io         mipmapping: texture size not a power-of-two: /usr/share/games/flightgear/Aircraft/c172p/Models/Effects/interior/lm_gear-breakers.png
   49.36 [INFO]:OSG        
   49.36 [WARN]:OSG        PNG lib warning : iCCP: known incorrect sRGB profile
   50.00 [WARN]:OSG        PNG lib warning : iCCP: known incorrect sRGB profile
   56.93 [ALRT]:io         mipmapping: texture size not a power-of-two: /usr/share/games/flightgear/Aircraft/c172p/Models/Exterior/rbf/rbf.png
   57.32 [WARN]:OSG        PNG lib warning : iCCP: known incorrect sRGB profile
   57.38 [WARN]:OSG        PNG lib warning : iCCP: known incorrect sRGB profile
   58.55 [ALRT]:io         mipmapping: texture size not a power-of-two: /usr/share/games/flightgear/Aircraft/c172p/Models/Effects/interior/lm_fuel-selector.png
ALSA lib confmisc.c:855:(parse_card) cannot find card '0'
ALSA lib conf.c:5178:(_snd_config_evaluate) function snd_func_card_inum returned error: No such file or directory
ALSA lib confmisc.c:422:(snd_func_concat) error evaluating strings
ALSA lib conf.c:5178:(_snd_config_evaluate) function snd_func_concat returned error: No such file or directory
ALSA lib confmisc.c:1334:(snd_func_refer) error evaluating name
ALSA lib conf.c:5178:(_snd_config_evaluate) function snd_func_refer returned error: No such file or directory
ALSA lib conf.c:5701:(snd_config_expand) Evaluate error: No such file or directory
ALSA lib pcm.c:2664:(snd_pcm_open_noupdate) Unknown PCM default
AL lib: (EE) ALCplaybackAlsa_open: Could not open playback device 'default': No such file or directory
   76.50 [ALRT]:sound      Error: Default audio device not available.
   80.66 [ALRT]:nasal      ERROR: Cannot add listener to tied property /sim[0]/current-view[0]/heading-offset-deg[0]
   81.07 [INFO]:nasal      KMA20 audio panel initialized
   81.09 [INFO]:nasal      Hobbs system stopped
   81.09 [INFO]:nasal      Hobbs system stopped
   81.09 [INFO]:nasal      Starter off
   81.09 [INFO]:nasal      KI266 dme indicator #0 initialized
   81.20 [INFO]:nasal      Electrical system initialized
   81.44 [ALRT]:nasal      ERROR: Cannot add listener to tied property /instrumentation[0]/gps[0]/mode[0]
   81.45 [INFO]:nasal      Astro Tech LC-2 Chronometer Loaded
   83.60 [WARN]:OSG        PNG lib warning : iCCP: known incorrect sRGB profile
   87.05 [INFO]:nasal      Primer reset to 0
   89.25 [ALRT]:flight     Failed to save initial FDM property state
Mesa: User error: GL_INVALID_ENUM in glHint(target)
../src/mesa/main/bufferobj.c:471:_mesa_bufferobj_map_range: Assertion `offset < obj->Size' failed.
Aborted
ptitSeb commented 2 years ago

So this is OpenGL -> GLES -> Vulkan ... That's some transformations!

Thanks for the test, but that will be tricky to fix as I have to duplicate on my side (maybe I don't need turnip to reproduce).

IntinteDAO commented 2 years ago

All in all, I don't know what the chain is. I think GLES is native, but maybe not.

In any case, on Turnip and Zink Flightgear works (but unfortunately on high details, and the smartphone does not do well with such graphics quality, and it is impossible to change :D)

The GL4ES project itself is interesting and I will test different games. Flightgear should work, because I think it supports OpenGL 1.4.