Faruk Posted July 23, 2020 Posted July 23, 2020 (edited) Armbianmonitor: http://ix.io/2dYw I am using Armbian_20.05.4_Lime-a64_focal_current_5.4.45_desktop.img.xz and I try run glxgears on Olinuxino-A64 with Lima. When I running glxgears I see 117 frames in 5.0 second = 23.313FPS. Also mouse response so slow on desktop. It is understood from here Olinuxino-A64 doing software render. Please correct me if I am wrong. I am new at this job and I have difficulty in fully understanding the problem. Is there a way I can get high FPS in glxgears using Lima? What exactly is problem here? Sorry if I ask silly question. Thanks. Below are some outputs for the board I use. dmesg | grep "lima" output: [ 8.579828] lima 1c40000.gpu: IRQ ppmmu2 not found [ 8.584705] lima 1c40000.gpu: IRQ ppmmu3 not found [ 8.589554] lima 1c40000.gpu: gp - mali400 version major 1 minor 1 [ 8.589626] lima 1c40000.gpu: pp0 - mali400 version major 1 minor 1 [ 8.589670] lima 1c40000.gpu: pp1 - mali400 version major 1 minor 1 [ 8.589694] lima 1c40000.gpu: IRQ pp2 not found [ 8.594298] lima 1c40000.gpu: IRQ pp3 not found [ 8.598869] lima 1c40000.gpu: l2 cache 64K, 4-way, 64byte cache line, 64bit external bus [ 8.606923] lima 1c40000.gpu: bus rate = 200000000 [ 8.606932] lima 1c40000.gpu: mod rate = 297000000 [ 8.607264] [drm] Initialized lima 1.0.0 20190217 for 1c40000.gpu on minor 0 gpu node on sun50i-a64-olinuxoni.dts: gpu@1c40000 { compatible = "allwinner,sun50i-a64-mali", "arm,mali-400"; reg = <0x1c40000 0x10000>; interrupts = <0x0 0x61 0x4 0x0 0x62 0x4 0x0 0x63 0x4 0x0 0x64 0x4 0x0 0x66 0x4 0x0 0x67 0x4 0x0 0x65 0x4>; interrupt-names = "gp", "gpmmu", "pp0", "ppmmu0", "pp1", "ppmmu1", "pmu"; clocks = <0x2 0x35 0x2 0x72>; clock-names = "bus", "core"; resets = <0x2 0x1f>; phandle = <0x83>; }; glxinfo: name of display: :0 display: :0 screen: 0 direct rendering: Yes server glx vendor string: SGI server glx version string: 1.4 server glx extensions: GLX_ARB_context_flush_control, GLX_ARB_create_context, GLX_ARB_create_context_no_error, 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_libglvnd, GLX_EXT_no_config_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: Mesa Project and SGI client glx version string: 1.4 client glx extensions: GLX_ARB_context_flush_control, GLX_ARB_create_context, GLX_ARB_create_context_no_error, GLX_ARB_create_context_profile, GLX_ARB_create_context_robustness, GLX_ARB_fbconfig_float, GLX_ARB_framebuffer_sRGB, GLX_ARB_get_proc_address, GLX_ARB_multisample, GLX_EXT_buffer_age, 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_INTEL_swap_event, GLX_MESA_copy_sub_buffer, GLX_MESA_multithread_makecurrent, GLX_MESA_query_renderer, GLX_MESA_swap_control, GLX_OML_swap_method, GLX_OML_sync_control, GLX_SGIS_multisample, GLX_SGIX_fbconfig, GLX_SGIX_pbuffer, GLX_SGIX_visual_select_group, GLX_SGI_make_current_read, GLX_SGI_swap_control, GLX_SGI_video_sync GLX version: 1.4 GLX extensions: GLX_ARB_create_context, GLX_ARB_create_context_no_error, GLX_ARB_create_context_profile, GLX_ARB_fbconfig_float, GLX_ARB_framebuffer_sRGB, GLX_ARB_get_proc_address, GLX_ARB_multisample, GLX_EXT_buffer_age, 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_MESA_query_renderer, GLX_MESA_swap_control, GLX_OML_swap_method, GLX_OML_sync_control, GLX_SGIS_multisample, GLX_SGIX_fbconfig, GLX_SGIX_pbuffer, GLX_SGIX_visual_select_group, GLX_SGI_make_current_read, GLX_SGI_video_sync Extended renderer info (GLX_MESA_query_renderer): Vendor: lima (0x13b5) Device: Mali400 (0xffffffff) Version: 20.0.8 Accelerated: yes Video memory: 0MB Unified memory: yes Preferred profile: compat (0x2) Max core profile version: 0.0 Max compat profile version: 2.1 Max GLES1 profile version: 1.1 Max GLES[23] profile version: 2.0 OpenGL vendor string: lima OpenGL renderer string: Mali400 OpenGL version string: 2.1 Mesa 20.0.8 OpenGL shading language version string: 1.20 OpenGL extensions: GL_AMD_shader_trinary_minmax, GL_APPLE_packed_pixels, GL_ARB_ES2_compatibility, GL_ARB_clear_buffer_object, GL_ARB_compressed_texture_pixel_storage, GL_ARB_copy_buffer, GL_ARB_debug_output, GL_ARB_depth_texture, GL_ARB_draw_buffers, GL_ARB_draw_elements_base_vertex, GL_ARB_explicit_attrib_location, GL_ARB_explicit_uniform_location, GL_ARB_fragment_coord_conventions, GL_ARB_fragment_program, GL_ARB_fragment_program_shadow, GL_ARB_fragment_shader, GL_ARB_framebuffer_sRGB, GL_ARB_get_program_binary, GL_ARB_get_texture_sub_image, GL_ARB_half_float_pixel, GL_ARB_half_float_vertex, GL_ARB_internalformat_query, GL_ARB_internalformat_query2, GL_ARB_invalidate_subdata, GL_ARB_map_buffer_alignment, GL_ARB_map_buffer_range, GL_ARB_multi_bind, GL_ARB_multisample, GL_ARB_multitexture, GL_ARB_occlusion_query, GL_ARB_occlusion_query2, GL_ARB_parallel_shader_compile, GL_ARB_pixel_buffer_object, GL_ARB_point_parameters, GL_ARB_point_sprite, GL_ARB_program_interface_query, GL_ARB_provoking_vertex, GL_ARB_robustness, GL_ARB_sampler_objects, GL_ARB_separate_shader_objects, GL_ARB_shader_objects, GL_ARB_shader_texture_lod, GL_ARB_shading_language_100, GL_ARB_shading_language_include, GL_ARB_shadow, GL_ARB_sync, GL_ARB_texture_border_clamp, GL_ARB_texture_compression, GL_ARB_texture_cube_map, GL_ARB_texture_env_add, GL_ARB_texture_env_combine, GL_ARB_texture_env_crossbar, GL_ARB_texture_env_dot3, GL_ARB_texture_mirrored_repeat, GL_ARB_texture_non_power_of_two, GL_ARB_texture_rectangle, GL_ARB_texture_storage, GL_ARB_transpose_matrix, GL_ARB_vertex_array_object, GL_ARB_vertex_attrib_binding, GL_ARB_vertex_buffer_object, GL_ARB_vertex_program, GL_ARB_vertex_shader, GL_ARB_window_pos, GL_ATI_blend_equation_separate, GL_ATI_draw_buffers, GL_ATI_fragment_shader, GL_ATI_separate_stencil, GL_ATI_texture_env_combine3, GL_EXT_EGL_image_storage, GL_EXT_EGL_sync, GL_EXT_abgr, GL_EXT_bgra, GL_EXT_blend_color, GL_EXT_blend_equation_separate, GL_EXT_blend_func_separate, GL_EXT_blend_minmax, GL_EXT_blend_subtract, GL_EXT_compiled_vertex_array, GL_EXT_copy_texture, GL_EXT_direct_state_access, GL_EXT_draw_range_elements, GL_EXT_fog_coord, GL_EXT_framebuffer_blit, GL_EXT_framebuffer_multisample, GL_EXT_framebuffer_multisample_blit_scaled, GL_EXT_framebuffer_object, GL_EXT_framebuffer_sRGB, GL_EXT_gpu_program_parameters, GL_EXT_multi_draw_arrays, GL_EXT_packed_depth_stencil, GL_EXT_packed_pixels, GL_EXT_pixel_buffer_object, GL_EXT_point_parameters, GL_EXT_provoking_vertex, GL_EXT_rescale_normal, GL_EXT_secondary_color, GL_EXT_separate_specular_color, GL_EXT_shadow_funcs, GL_EXT_stencil_two_side, GL_EXT_stencil_wrap, GL_EXT_subtexture, GL_EXT_texture, GL_EXT_texture3D, GL_EXT_texture_cube_map, GL_EXT_texture_edge_clamp, GL_EXT_texture_env_add, GL_EXT_texture_env_combine, GL_EXT_texture_env_dot3, GL_EXT_texture_lod_bias, GL_EXT_texture_object, GL_EXT_texture_rectangle, GL_EXT_texture_sRGB, GL_EXT_texture_sRGB_decode, GL_EXT_vertex_array, GL_IBM_multimode_draw_arrays, GL_IBM_rasterpos_clip, GL_IBM_texture_mirrored_repeat, GL_INGR_blend_func_separate, GL_KHR_context_flush_control, GL_KHR_debug, GL_KHR_no_error, GL_KHR_parallel_shader_compile, GL_KHR_texture_compression_astc_ldr, GL_KHR_texture_compression_astc_sliced_3d, GL_MESA_pack_invert, GL_MESA_window_pos, GL_NV_blend_square, GL_NV_fog_distance, GL_NV_light_max_exponent, GL_NV_packed_depth_stencil, GL_NV_texgen_reflection, GL_NV_texture_env_combine4, GL_NV_texture_rectangle, GL_OES_EGL_image, GL_OES_read_format, GL_SGIS_generate_mipmap, GL_SGIS_texture_border_clamp, GL_SGIS_texture_edge_clamp, GL_SGIS_texture_lod, GL_SUN_multi_draw_arrays OpenGL ES profile version string: OpenGL ES 2.0 Mesa 20.0.8 OpenGL ES profile shading language version string: OpenGL ES GLSL ES 1.0.16 OpenGL ES profile extensions: GL_APPLE_texture_max_level, GL_EXT_blend_minmax, GL_EXT_compressed_ETC1_RGB8_sub_texture, GL_EXT_discard_framebuffer, GL_EXT_draw_buffers, GL_EXT_draw_elements_base_vertex, GL_EXT_frag_depth, GL_EXT_map_buffer_range, GL_EXT_multi_draw_arrays, GL_EXT_occlusion_query_boolean, GL_EXT_read_format_bgra, GL_EXT_separate_shader_objects, GL_EXT_texture_border_clamp, GL_EXT_texture_format_BGRA8888, GL_EXT_unpack_subimage, GL_KHR_context_flush_control, GL_KHR_debug, GL_KHR_no_error, GL_KHR_parallel_shader_compile, GL_KHR_texture_compression_astc_ldr, GL_KHR_texture_compression_astc_sliced_3d, GL_NV_draw_buffers, GL_NV_fbo_color_attachments, GL_NV_read_buffer, GL_NV_read_depth, GL_NV_read_depth_stencil, GL_NV_read_stencil, GL_OES_EGL_image, GL_OES_EGL_image_external, GL_OES_EGL_sync, GL_OES_compressed_ETC1_RGB8_texture, GL_OES_depth24, GL_OES_depth_texture, GL_OES_draw_elements_base_vertex, GL_OES_element_index_uint, GL_OES_fbo_render_mipmap, GL_OES_get_program_binary, GL_OES_mapbuffer, GL_OES_packed_depth_stencil, GL_OES_required_internalformat, GL_OES_rgb8_rgba8, GL_OES_stencil8, GL_OES_surfaceless_context, GL_OES_texture_3D, GL_OES_texture_border_clamp, GL_OES_texture_npot, GL_OES_vertex_array_object, GL_OES_vertex_half_float 126 GLX Visuals visual x bf lv rg d st colorbuffer sr ax dp st accumbuffer ms cav id dep cl sp sz l ci b ro r g b a F gb bf th cl r g b a ns b eat ---------------------------------------------------------------------------- 0x021 24 tc 0 32 0 r y . 8 8 8 8 . . 0 24 8 0 0 0 0 0 0 None 0x022 24 dc 0 32 0 r y . 8 8 8 8 . . 0 24 8 0 0 0 0 0 0 None 0x29b 24 tc 0 32 0 r . . 8 8 8 8 . . 0 0 0 0 0 0 0 0 0 None 0x29c 24 tc 0 32 0 r . . 8 8 8 8 . . 0 0 0 16 16 16 16 0 0 Slow 0x29d 24 tc 0 32 0 r y . 8 8 8 8 . . 0 0 0 0 0 0 0 0 0 None ... 150 GLXFBConfigs: visual x bf lv rg d st colorbuffer sr ax dp st accumbuffer ms cav id dep cl sp sz l ci b ro r g b a F gb bf th cl r g b a ns b eat ---------------------------------------------------------------------------- 0x0d9 24 tc 0 32 0 r . . 8 8 8 8 . . 0 0 0 0 0 0 0 0 0 None 0x0da 24 tc 0 32 0 r . . 8 8 8 8 . . 0 0 0 16 16 16 16 0 0 Slow 0x0db 24 tc 0 32 0 r y . 8 8 8 8 . . 0 0 0 0 0 0 0 0 0 None 0x0dc 24 tc 0 32 0 r y . 8 8 8 8 . . 0 0 0 16 16 16 16 0 0 Slow ... and lsmod output: Module Size Used by snd_soc_hdmi_codec 20480 1 dw_hdmi_cec 16384 0 dw_hdmi_i2s_audio 16384 0 axp20x_adc 20480 0 axp20x_battery 16384 0 axp20x_ac_power 16384 0 snd_soc_spdif_tx 16384 0 snd_soc_simple_card 24576 1 snd_soc_simple_card_utils 20480 1 snd_soc_simple_card sun50i_codec_analog 28672 0 sun8i_adda_pr_regmap 16384 1 sun50i_codec_analog sun8i_drm_hdmi 24576 0 zstd 16384 4 sun4i_gpadc_iio 24576 0 sun8i_codec 28672 0 dw_hdmi 40960 2 sun8i_drm_hdmi,dw_hdmi_i2s_audio sun4i_i2s 24576 2 lima 45056 3 cec 69632 2 dw_hdmi_cec,dw_hdmi gpu_sched 28672 1 lima snd_soc_core 176128 7 sun4i_i2s,snd_soc_spdif_tx,snd_soc_hdmi_codec,sun50i_codec_analog,sun8i_codec,snd_soc_simple_card_utils,snd_soc_simple_card ac97_bus 16384 1 snd_soc_core snd_pcm_dmaengine 16384 1 snd_soc_core snd_pcm 106496 5 sun4i_i2s,snd_soc_hdmi_codec,sun8i_codec,snd_soc_core,snd_pcm_dmaengine snd_timer 40960 1 snd_pcm snd 86016 6 snd_soc_hdmi_codec,snd_timer,snd_soc_core,snd_pcm soundcore 16384 1 snd r8723bs 589824 0 cfg80211 356352 1 r8723bs rfkill 28672 4 cfg80211 sun4i_drm 20480 7 sun4i_frontend 16384 1 sun4i_drm sun4i_tcon 32768 1 sun4i_drm sun8i_mixer 40960 0 sun8i_tcon_top 16384 3 sun8i_drm_hdmi,sun4i_tcon,sun4i_drm cpufreq_dt 20480 0 zram 32768 2 sch_fq_codel 20480 6 usb_f_acm 20480 1 u_serial 32768 1 usb_f_acm g_serial 16384 0 libcomposite 61440 2 g_serial,usb_f_acm ip_tables 32768 0 x_tables 36864 1 ip_tables autofs4 49152 2 axp20x_usb_power 16384 0 pinctrl_axp209 16384 0 axp20x_regulator 45056 8 fixed 20480 2 dwmac_sun8i 28672 0 mdio_mux 16384 1 dwmac_sun8i Edited July 23, 2020 by Faruk
Werner Posted July 23, 2020 Posted July 23, 2020 As far from what I see it is not software rendered. That would be LLVM. What you can try is to install mesa from scratch or use oibaf ppa (I had more success on H6 with 1st method though) to get more up to date mesa binaries and/or install a more recent kernel. You can compile a 5.7 kernel package for sunxi64 using the build script: github.com/armbian/build/ or check nightly builds for trunk kernel packages.
Faruk Posted July 23, 2020 Author Posted July 23, 2020 32 minutes ago, Werner said: As far from what I see it is not software rendered. That would be LLVM. What you can try is to install mesa from scratch or use oibaf ppa (I had more success on H6 with 1st method though) to get more up to date mesa binaries and/or install a more recent kernel. You can compile a 5.7 kernel package for sunxi64 using the build script: github.com/armbian/build/ or check nightly builds for trunk kernel packages. Thank for your reply but Will it be enough just to upgrade the kernel ?
Werner Posted July 23, 2020 Posted July 23, 2020 I don't know. Maybe, maybe not. I neither have this board nor access to a similar one to test atm. Dealing with SBCs often is try'n'error. That is the usual business....
Recommended Posts