mrfixit2001 / debian_desktop

Feature Complete Debian Desktop
74 stars 5 forks source link

Can't play OpenRA #35

Closed Luo-Chang closed 3 years ago

Luo-Chang commented 3 years ago

Hi MrFixIt,

Thanks for your amazing work first!

When I compile and run the OpenRA, the GL4ES seems working great and OpenRA successfully detected the OpenGL version 2.0.

But the game just won't start with some initialization failures and told me to check the "Graphics.log".

Can you run OpenRA normally?

I will copy the log file here later.

Thanks in advance!

Luo-Chang commented 3 years ago

Here is the running log from Terminal:

Gtk-Message: GtkDialog mapped without a transient parent. This is discouraged. Platform is Linux Engine version is {DEV_VERSION}

LIBGL: Initialising gl4es LIBGL: v1.1.1 built on Mar 10 2019 13:15:04 LIBGL: Using GLES 2.0 backend LIBGL: loaded: libbrcmGLESv2.so LIBGL: loaded: libbrcmEGL.so LIBGL: Using GLES 2.0 backend LIBGL: Hardware Full NPOT detected and used LIBGL: Extension GL_EXT_blend_minmax 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 Substract 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_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_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: Max vertex attrib: 16 LIBGL: Extension GL_OES_standard_derivatives detected and used LIBGL: Max texture size: 8192 LIBGL: Max Varying Vector: 15 LIBGL: Texture Units: 8(8), Max lights: 8, Max planes: 6 LIBGL: Hardware vendor is ARM LIBGL: sRGB surface supported LIBGL: Targeting OpenGL 2.0 LIBGL: glXMakeCurrent FBO workaround enabled LIBGL: FBO workaround for using binded texture enabled LIBGL: glX Will try to recycle EGL Surface LIBGL: Current folder is:/home/rock/OpenRA-release-20200503

Using SDL 2 with OpenGL (Modern) renderer Desktop resolution: 1920x1080 No custom resolution provided, using desktop resolution Using resolution: 1920x1080 Using window scale 1.00 Exception of type System.InvalidProgramException: OpenGL Version Error: See graphics.log for details. at OpenRA.Platforms.Default.OpenGL.Initialize (System.Boolean preferLegacyProfile) [0x0008a] in <02bcbd781a454692998673a751a048d9>:0 at OpenRA.Platforms.Default.Sdl2GraphicsContext.InitializeOpenGL () [0x00070] in <02bcbd781a454692998673a751a048d9>:0 at OpenRA.Platforms.Default.ThreadedGraphicsContext.RenderThread (System.Object contextObject) [0x0002a] in <02bcbd781a454692998673a751a048d9>:0 at System.Threading.ThreadHelper.ThreadStart_Context (System.Object state) [0x00025] in <9f0df102fe6e4cfea29d2e46f585d8a5>:0 at System.Threading.ExecutionContext.RunInternal (System.Threading.ExecutionContext executionContext, System.Threading.ContextCallback callback, System.Object state, System.Boolean preserveSyncCtx) [0x00071] in <9f0df102fe6e4cfea29d2e46f585d8a5>:0 at System.Threading.ExecutionContext.Run (System.Threading.ExecutionContext executionContext, System.Threading.ContextCallback callback, System.Object state, System.Boolean preserveSyncCtx) [0x00000] in <9f0df102fe6e4cfea29d2e46f585d8a5>:0 at System.Threading.ExecutionContext.Run (System.Threading.ExecutionContext executionContext, System.Threading.ContextCallback callback, System.Object state) [0x0002b] in <9f0df102fe6e4cfea29d2e46f585d8a5>:0 at System.Threading.ThreadHelper.ThreadStart (System.Object obj) [0x0000f] in <9f0df102fe6e4cfea29d2e46f585d8a5>:0

[ERROR] FATAL UNHANDLED EXCEPTION: System.InvalidProgramException: OpenGL Version Error: See graphics.log for details. at OpenRA.Platforms.Default.OpenGL.Initialize (System.Boolean preferLegacyProfile) [0x0008a] in <02bcbd781a454692998673a751a048d9>:0 at OpenRA.Platforms.Default.Sdl2GraphicsContext.InitializeOpenGL () [0x00070] in <02bcbd781a454692998673a751a048d9>:0 at OpenRA.Platforms.Default.ThreadedGraphicsContext.RenderThread (System.Object contextObject) [0x0002a] in <02bcbd781a454692998673a751a048d9>:0 at System.Threading.ThreadHelper.ThreadStart_Context (System.Object state) [0x00025] in <9f0df102fe6e4cfea29d2e46f585d8a5>:0 at System.Threading.ExecutionContext.RunInternal (System.Threading.ExecutionContext executionContext, System.Threading.ContextCallback callback, System.Object state, System.Boolean preserveSyncCtx) [0x00071] in <9f0df102fe6e4cfea29d2e46f585d8a5>:0 at System.Threading.ExecutionContext.Run (System.Threading.ExecutionContext executionContext, System.Threading.ContextCallback callback, System.Object state, System.Boolean preserveSyncCtx) [0x00000] in <9f0df102fe6e4cfea29d2e46f585d8a5>:0 at System.Threading.ExecutionContext.Run (System.Threading.ExecutionContext executionContext, System.Threading.ContextCallback callback, System.Object state) [0x0002b] in <9f0df102fe6e4cfea29d2e46f585d8a5>:0 at System.Threading.ThreadHelper.ThreadStart (System.Object obj) [0x0000f] in <9f0df102fe6e4cfea29d2e46f585d8a5>:0

Luo-Chang commented 3 years ago

Here is the "graphics.log":

Unsupported OpenGL version: 2.0 gl4es wrapper 1.1.1

OpenGL Information: Vendor: ptitSeb Renderer: GL4ES wrapper GL Version: 2.0 gl4es wrapper 1.1.1 Shader Version: 1.10 via gl4es Available extensions: GL_EXT_abgr GL_EXT_packed_pixels GL_EXT_compiled_vertex_array GL_ARB_vertex_buffer_object GL_ARB_vertex_array_object GL_ARB_vertex_buffer GL_EXT_vertex_array GL_EXT_secondary_color GL_ARB_multitexture GL_ARB_texture_border_clamp GL_ARB_texture_env_add GL_EXT_texture_env_add GL_ARB_texture_env_combine GL_EXT_texture_env_combine GL_ARB_texture_env_crossbar GL_EXT_texture_env_crossbar GL_ARB_texture_env_dot3 GL_EXT_texture_env_dot3 GL_SGIS_generate_mipmap GL_EXT_draw_range_elements GL_EXT_bgra GL_ARB_texture_compression GL_EXT_texture_compression_s3tc GL_OES_texture_compression_S3TC GL_EXT_texture_compression_dxt1 GL_EXT_texture_compression_dxt3 GL_EXT_texture_compression_dxt5 GL_ARB_point_parameters GL_EXT_point_parameters GL_EXT_stencil_wrap GL_SGIS_texture_edge_clamp GL_EXT_texture_edge_clamp GL_EXT_direct_state_access GL_EXT_multi_draw_arrays GL_SUN_multi_draw_arrays GL_ARB_multisample GL_EXT_texture_object GL_EXT_polygon_offset GL_GL4ES_hint GL_ARB_texture_rectangle GL_ARB_draw_elements_base_vertex GL_EXT_draw_elements_base_vertex GL_APPLE_texture_2D_limited_npot GL_ARB_texture_non_power_of_two GL_EXT_blend_color GL_EXT_blend_minmax GL_EXT_blend_equation_separate GL_EXT_blend_func_separate GL_EXT_blend_subtract GL_ARB_texture_mirrored_repeat GL_ARB_framebuffer_object GL_EXT_framebuffer_object GL_EXT_packed_depth_stencil GL_ARB_draw_buffers GL_ARB_point_sprite GL_ARB_texture_cube_map GL_EXT_texture_cube_map GL_EXT_texture_rg GL_EXT_color_buffer_float GL_EXT_color_buffer_half_float GL_EXT_depth_texture GL_ARB_depth_texture GL_EXT_fog_coord GL_EXT_separate_specular_color GL_EXT_rescale_normal GL_ARB_ES2_compatibility GL_ARB_fragment_shader GL_ARB_vertex_shader GL_ARB_shader_objects GL_ARB_shading_language_100 GL_ATI_texture_env_combine3 GL_ATIX_texture_env_route GL_NV_texture_env_combine4 GL_ARB_draw_instanced GL_ARB_instanced_arrays

Luo-Chang commented 3 years ago

I then tried to update the GL4ES version and compile using the following instruction:

mkdir build; cd build; cmake .. -DODROID=1 -DCMAKE_BUILD_TYPE=RelWithDebInfo; make

and replaced the libGL.so.1.2.0

The GL4ES worked great vut This time the error information is different:

Gtk-Message: GtkDialog mapped without a transient parent. This is discouraged.

Platform is Linux
Engine version is {DEV_VERSION}
LIBGL: Initialising gl4es
LIBGL: v1.1.5 built on Oct 21 2020 10:35:16
LIBGL: Using GLES 2.0 backend
LIBGL: loaded: libGLESv2.so
LIBGL: loaded: libEGL.so
LIBGL: Using GLES 2.0 backend
LIBGL: Hardware Full NPOT detected and used
LIBGL: Extension GL_EXT_blend_minmax  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 Substract 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_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_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: Max vertex attrib: 16
LIBGL: Extension GL_OES_standard_derivatives  detected and used
LIBGL: Max texture size: 8192
LIBGL: Max Varying Vector: 15
LIBGL: Texture Units: 16/16 (hardware: 16), Max lights: 8, Max planes: 6
LIBGL: Max Color Attachments: 1 / Draw buffers: 1
LIBGL: Hardware vendor is ARM
LIBGL: GLSL 300 es supported
LIBGL: GLSL 310 es supported and used
LIBGL: sRGB surface supported
LIBGL: EGLImage from Pixmap supported
LIBGL: EGLImage to Texture2D supported
LIBGL: EGLImage to RenderBuffer supported
LIBGL: Targeting OpenGL 2.1
LIBGL: NPOT texture handled in hardware
LIBGL: Not trying to batch small subsequent glDrawXXXX
LIBGL: try to use VBO
LIBGL: glXMakeCurrent FBO workaround enabled
LIBGL: FBO workaround for using binded texture enabled
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:/home/rock/OpenRA-release-20200503
Using SDL 2 with OpenGL (Modern) renderer
Desktop resolution: 1920x1080
No custom resolution provided, using desktop resolution
Using resolution: 1920x1080
Using window scale 1.00
OpenGL version: 2.1 gl4es wrapper 1.1.5
Renderer initialization failed. Check graphics.log for details.
Using SDL 2 with OpenGL (Modern) renderer
Desktop resolution: 1920x1080
No custom resolution provided, using desktop resolution
Using resolution: 1920x1080
Using window scale 1.00
OpenGL version: 2.1 gl4es wrapper 1.1.5
Renderer initialization failed. Check graphics.log for details.
Exception of type `System.InvalidOperationException`: Failed to initialize platform-integration library. Check graphics.log for details.
  at OpenRA.Game.Initialize (OpenRA.Arguments args) [0x00162] in <7771ec3bb18944699f17a0bcf2379f7b>:0 
  at OpenRA.Game.InitializeAndRun (System.String[] args) [0x00006] in <7771ec3bb18944699f17a0bcf2379f7b>:0 
  at OpenRA.Program.Main (System.String[] args) [0x00044] in <7771ec3bb18944699f17a0bcf2379f7b>:0 

LIBGL: Shuting down
Luo-Chang commented 3 years ago

And here is the graphics.log with new version of GL4ES:

GL Info Log:
0:23: L0001: Storage qualifier not allowed
System.InvalidProgramException: Compile error in shader object '/home/rock/OpenRA-release-20200503/glsl/combined.vert'
  at OpenRA.Platforms.Default.Shader.CompileShaderObject (System.Int32 type, System.String name) [0x00137] in <02bcbd781a454692998673a751a048d9>:0 
  at OpenRA.Platforms.Default.Shader..ctor (System.String name) [0x00032] in <02bcbd781a454692998673a751a048d9>:0 
  at OpenRA.Platforms.Default.Sdl2GraphicsContext.CreateShader (System.String name) [0x00006] in <02bcbd781a454692998673a751a048d9>:0 
  at OpenRA.Platforms.Default.ThreadedGraphicsContext+<>c__DisplayClass23_0.<RenderThread>b__9 (System.Object name) [0x00000] in <02bcbd781a454692998673a751a048d9>:0 
  at OpenRA.Platforms.Default.ThreadedGraphicsContext+Message.Execute () [0x000ad] in <02bcbd781a454692998673a751a048d9>:0 
--- End of stack trace from previous location where exception was thrown ---

  at OpenRA.Platforms.Default.ThreadedGraphicsContext+Message.Result () [0x00033] in <02bcbd781a454692998673a751a048d9>:0 
  at OpenRA.Platforms.Default.ThreadedGraphicsContext.RunMessage (OpenRA.Platforms.Default.ThreadedGraphicsContext+Message message) [0x00007] in <02bcbd781a454692998673a751a048d9>:0 
  at OpenRA.Platforms.Default.ThreadedGraphicsContext.Send[T] (System.Func`2[T,TResult] method, System.Object state) [0x00024] in <02bcbd781a454692998673a751a048d9>:0 
  at OpenRA.Platforms.Default.ThreadedGraphicsContext.CreateShader (System.String name) [0x00000] in <02bcbd781a454692998673a751a048d9>:0 
  at OpenRA.Renderer..ctor (OpenRA.IPlatform platform, OpenRA.GraphicSettings graphicSettings) [0x000b0] in <7771ec3bb18944699f17a0bcf2379f7b>:0 
  at OpenRA.Game.Initialize (OpenRA.Arguments args) [0x00204] in <7771ec3bb18944699f17a0bcf2379f7b>:0 
GL Info Log:
0:23: L0001: Storage qualifier not allowed
System.InvalidProgramException: Compile error in shader object '/home/rock/OpenRA-release-20200503/glsl/combined.vert'
  at OpenRA.Platforms.Default.Shader.CompileShaderObject (System.Int32 type, System.String name) [0x00137] in <02bcbd781a454692998673a751a048d9>:0 
  at OpenRA.Platforms.Default.Shader..ctor (System.String name) [0x00032] in <02bcbd781a454692998673a751a048d9>:0 
  at OpenRA.Platforms.Default.Sdl2GraphicsContext.CreateShader (System.String name) [0x00006] in <02bcbd781a454692998673a751a048d9>:0 
  at OpenRA.Platforms.Default.ThreadedGraphicsContext+<>c__DisplayClass23_0.<RenderThread>b__9 (System.Object name) [0x00000] in <02bcbd781a454692998673a751a048d9>:0 
  at OpenRA.Platforms.Default.ThreadedGraphicsContext+Message.Execute () [0x000ad] in <02bcbd781a454692998673a751a048d9>:0 
--- End of stack trace from previous location where exception was thrown ---

  at OpenRA.Platforms.Default.ThreadedGraphicsContext+Message.Result () [0x00033] in <02bcbd781a454692998673a751a048d9>:0 
  at OpenRA.Platforms.Default.ThreadedGraphicsContext.RunMessage (OpenRA.Platforms.Default.ThreadedGraphicsContext+Message message) [0x00007] in <02bcbd781a454692998673a751a048d9>:0 
  at OpenRA.Platforms.Default.ThreadedGraphicsContext.Send[T] (System.Func`2[T,TResult] method, System.Object state) [0x00024] in <02bcbd781a454692998673a751a048d9>:0 
  at OpenRA.Platforms.Default.ThreadedGraphicsContext.CreateShader (System.String name) [0x00000] in <02bcbd781a454692998673a751a048d9>:0 
  at OpenRA.Renderer..ctor (OpenRA.IPlatform platform, OpenRA.GraphicSettings graphicSettings) [0x000b0] in <7771ec3bb18944699f17a0bcf2379f7b>:0 
  at OpenRA.Game.Initialize (OpenRA.Arguments args) [0x00204] in <7771ec3bb18944699f17a0bcf2379f7b>:0 

Sorry for so many posts and thanks in advance!

Luo-Chang commented 3 years ago

It turns out that OpenRA does not support OpenGL 2.x anymore, while the GL4ES we used only provides OpenGL 2.x interfaces.

For anyone who suffered same issue:

Compile the OpenRA release 20200202. This is the last release that supports OpenGL 2.x

Hope someone can work out a solution to provide modern OpenGL support for us.