Project

General

Profile

Actions

Issue #2171

open

OMAP device: very slow llvmpipe

Added by Denis 'GNUtoo' Carikli over 1 year ago. Updated over 1 year ago.

Status:
New
Priority:
Normal
Assignee:
-
Category:
-
Target version:
Start date:
11/10/2020
Due date:
% Done:

0%

Estimated time:
Resolution:
Device:
Galaxy Nexus (GT-I9250), Galaxy Nexus (I9250), Galaxy Tab 2 10.1 (P51xx), Galaxy Tab 2 7.0 (P31xx)
Grant:
Type of work:

Related issues

Related to Replicant - Issue #1994: Black screen after installing the Replicant 6.0 0004 RC1 imagesResolved01/27/2020

Actions
Actions #1

Updated by Denis 'GNUtoo' Carikli over 1 year ago

  • Device Galaxy Nexus (I9250), Galaxy Tab 2 10.1 (P51xx), Galaxy Tab 2 7.0 (P31xx) added
  • Device deleted (Unknown)

With llvmpipe we have:

01-01 03:43:45.359   145   145 I SurfaceFlinger: SurfaceFlinger is starting
01-01 03:43:45.359   145   145 I SurfaceFlinger: SurfaceFlinger's main thread ready to run. Initializing graphics H/W...
01-01 03:43:45.359   145   145 D libEGL  : UID:1000 EUID:1000
01-01 03:43:45.359   145   145 D libEGL  : ro.zygote.disable_gl_preload not set, EGL overrides disabled
01-01 03:43:45.522   145   145 D libEGL  : loaded /system/lib/egl/libGLES_mesa.so
01-01 03:43:46.203   145   145 W gralloc : page flipping not supported (yres_virtual=1280, requested=2560)
01-01 03:43:46.203   145   145 I gralloc : using (fd=12)
01-01 03:43:46.203   145   145 I gralloc : id           = omapfb
01-01 03:43:46.203   145   145 I gralloc : xres         = 720 px
01-01 03:43:46.203   145   145 I gralloc : yres         = 1280 px
01-01 03:43:46.203   145   145 I gralloc : xres_virtual = 720 px
01-01 03:43:46.203   145   145 I gralloc : yres_virtual = 1280 px
01-01 03:43:46.203   145   145 I gralloc : bpp          = 16
01-01 03:43:46.203   145   145 I gralloc : r            = 11:5
01-01 03:43:46.203   145   145 I gralloc : g            =  5:6
01-01 03:43:46.203   145   145 I gralloc : b            =  0:5
01-01 03:43:46.203   145   145 I gralloc : width        = 58 mm (315.310333 dpi)
01-01 03:43:46.203   145   145 I gralloc : height       = 102 mm (318.745087 dpi)
01-01 03:43:46.203   145   145 I gralloc : refresh rate = 59.14 Hz
01-01 03:43:46.252   145   145 E ti_hwc  : Composer HAL failed to load compatible Graphics HAL
01-01 03:43:46.252   145   145 E SurfaceFlinger: composer device failed to initialize (Invalid argument)
01-01 03:43:46.252   145   145 I SurfaceFlinger: EGL information:
01-01 03:43:46.252   145   145 I SurfaceFlinger: vendor    : Android
01-01 03:43:46.252   145   145 I SurfaceFlinger: version   : 1.4 Android META-EGL
01-01 03:43:46.252   145   145 I SurfaceFlinger: extensions: EGL_KHR_get_all_proc_addresses EGL_ANDROID_presentation_time EGL_KHR_swap_buffers_with_damage EGL_KHR_image_base EGL_KHR_gl_texture_2D_image EGL_KHR_gl_texture_3D_image EGL_KHR_gl_texture_cubemap_image EGL_KHR_gl_renderbuffer_image EGL_KHR_reusable_sync EGL_KHR_fence_sync EGL_KHR_create_context EGL_KHR_surfaceless_context EGL_ANDROID_image_native_buffer EGL_KHR_wait_sync EGL_ANDROID_recordable 
01-01 03:43:46.252   145   145 I SurfaceFlinger: Client API: OpenGL_ES
01-01 03:43:46.252   145   145 I SurfaceFlinger: EGLSurface: 5-6-5-0, config=0xb57ad740
01-01 03:43:46.290   145   145 I SurfaceFlinger: OpenGL ES informations:
01-01 03:43:46.290   145   145 I SurfaceFlinger: vendor    : VMware, Inc.
01-01 03:43:46.290   145   145 I SurfaceFlinger: renderer  : Gallium 0.4 on llvmpipe (LLVM 3.7, 128 bits)
01-01 03:43:46.290   145   145 I SurfaceFlinger: version   : OpenGL ES 3.0 Mesa 13.0.3 (git-bddbe95616)
01-01 03:43:46.290   145   145 I SurfaceFlinger: extensions: GL_EXT_debug_marker GL_EXT_blend_minmax GL_EXT_multi_draw_arrays GL_EXT_texture_format_BGRA8888 GL_OES_compressed_ETC1_RGB8_texture GL_OES_depth24 GL_OES_element_index_uint GL_OES_fbo_render_mipmap GL_OES_mapbuffer GL_OES_rgb8_rgba8 GL_OES_standard_derivatives GL_OES_stencil8 GL_OES_texture_3D GL_OES_texture_float GL_OES_texture_float_linear GL_OES_texture_half_float GL_OES_texture_half_float_linear GL_OES_texture_npot GL_EXT_texture_sRGB_decode GL_OES_EGL_image GL_OES_depth_texture GL_OES_packed_depth_stencil GL_EXT_texture_type_2_10_10_10_REV GL_OES_get_program_binary GL_APPLE_texture_max_level GL_EXT_discard_framebuffer GL_EXT_read_format_bgra GL_NV_fbo_color_attachments GL_OES_EGL_image_external GL_OES_EGL_sync GL_OES_vertex_array_object GL_EXT_texture_rg GL_EXT_unpack_subimage GL_NV_draw_buffers GL_NV_read_buffer GL_NV_read_depth GL_NV_read_depth_stencil GL_NV_read_stencil GL_EXT_draw_buffers GL_EXT_map_buffer_range GL_KHR_debug GL_OES_depth_texture_cube_map GL_OES_surfaceless_context GL_EXT
01-01 03:43:46.290   145   145 I SurfaceFlinger: GL_MAX_TEXTURE_SIZE = 8192
01-01 03:43:46.290   145   145 I SurfaceFlinger: GL_MAX_VIEWPORT_DIMS = 8192
01-01 03:43:46.300   145   145 D SurfaceFlinger: Set power mode=2, type=0 flinger=0xb6ae4000
01-01 03:43:46.550   145   145 D SurfaceFlinger: SF. shader cache generated - 26 shaders in 238.555908 ms

Whereas with , we have:

01-01 03:51:25.641   144   144 W gralloc : page flipping not supported (yres_virtual=1280, requested=2560)
01-01 03:51:25.641   144   144 I gralloc : using (fd=12)
01-01 03:51:25.641   144   144 I gralloc : id           = omapfb
01-01 03:51:25.641   144   144 I gralloc : xres         = 720 px
01-01 03:51:25.641   144   144 I gralloc : yres         = 1280 px
01-01 03:51:25.641   144   144 I gralloc : xres_virtual = 720 px
01-01 03:51:25.641   144   144 I gralloc : yres_virtual = 1280 px
01-01 03:51:25.641   144   144 I gralloc : bpp          = 16
01-01 03:51:25.641   144   144 I gralloc : r            = 11:5
01-01 03:51:25.641   144   144 I gralloc : g            =  5:6
01-01 03:51:25.641   144   144 I gralloc : b            =  0:5
01-01 03:51:25.641   144   144 I gralloc : width        = 58 mm (315.310333 dpi)
01-01 03:51:25.641   144   144 I gralloc : height       = 102 mm (318.745087 dpi)
01-01 03:51:25.641   144   144 I gralloc : refresh rate = 59.14 Hz
01-01 03:51:25.742   144   144 E ti_hwc  : Composer HAL failed to load compatible Graphics HAL
01-01 03:51:25.742   144   144 E SurfaceFlinger: composer device failed to initialize (Invalid argument)
01-01 03:51:25.742   144   144 W SurfaceFlinger: no suitable EGLConfig found, trying a simpler query
01-01 03:51:25.742   144   144 W SurfaceFlinger: EGL_SLOW_CONFIG selected!
01-01 03:51:25.742   144   144 I SurfaceFlinger: EGL information:
01-01 03:51:25.742   144   144 I SurfaceFlinger: vendor    : Android
01-01 03:51:25.742   144   144 I SurfaceFlinger: version   : 1.4 Android META-EGL
01-01 03:51:25.742   144   144 I SurfaceFlinger: extensions: EGL_KHR_get_all_proc_addresses EGL_ANDROID_presentation_time EGL_KHR_swap_buffers_with_damage EGL_KHR_image_base EGL_KHR_fence_sync EGL_ANDROID_image_native_buffer 
01-01 03:51:25.742   144   144 I SurfaceFlinger: Client API: OpenGL_ES
01-01 03:51:25.742   144   144 I SurfaceFlinger: EGLSurface: 5-6-5-0, config=0x0
01-01 03:51:25.742   144   144 W SurfaceFlinger: no suitable EGLConfig found, trying a simpler query
01-01 03:51:25.742   144   144 W SurfaceFlinger: EGL_SLOW_CONFIG selected!
01-01 03:51:25.742   144   144 I SurfaceFlinger: EGL information:
01-01 03:51:25.742   144   144 I SurfaceFlinger: vendor    : Android
01-01 03:51:25.742   144   144 I SurfaceFlinger: version   : 1.4 Android META-EGL
01-01 03:51:25.742   144   144 I SurfaceFlinger: extensions: EGL_KHR_get_all_proc_addresses EGL_ANDROID_presentation_time EGL_KHR_swap_buffers_with_damage EGL_KHR_image_base EGL_KHR_fence_sync EGL_ANDROID_image_native_buffer 
01-01 03:51:25.742   144   144 I SurfaceFlinger: Client API: OpenGL_ES
01-01 03:51:25.742   144   144 I SurfaceFlinger: EGLSurface: 5-6-5-0, config=0x0
01-01 03:51:25.743   144   144 I SurfaceFlinger: OpenGL ES informations:
01-01 03:51:25.743   144   144 I SurfaceFlinger: vendor    : Android
01-01 03:51:25.743   144   144 I SurfaceFlinger: renderer  : Android PixelFlinger 1.4
01-01 03:51:25.743   144   144 I SurfaceFlinger: version   : OpenGL ES-CM 1.0
01-01 03:51:25.743   144   144 I SurfaceFlinger: extensions: GL_EXT_debug_marker GL_OES_byte_coordinates GL_OES_fixed_point GL_OES_single_precision GL_OES_read_format GL_OES_compressed_paletted_texture GL_OES_draw_texture GL_OES_matrix_get GL_OES_query_matrix GL_OES_EGL_image GL_OES_EGL_sync GL_OES_compressed_ETC1_RGB8_texture GL_ARB_texture_compression GL_ARB_texture_non_power_of_two GL_ANDROID_user_clip_plane GL_ANDROID_vertex_buffer_object GL_ANDROID_generate_mipmap 
01-01 03:51:25.743   144   144 I SurfaceFlinger: GL_MAX_TEXTURE_SIZE = 4096
01-01 03:51:25.743   144   144 I SurfaceFlinger: GL_MAX_VIEWPORT_DIMS = 4096
01-01 03:51:25.744   144   144 W SurfaceFlinger: no suitable EGLConfig found, trying a simpler query
01-01 03:51:25.744   144   144 W SurfaceFlinger: EGL_SLOW_CONFIG selected!
01-01 03:51:25.744   144   144 I SurfaceFlinger: EGL information:
01-01 03:51:25.744   144   144 I SurfaceFlinger: vendor    : Android
01-01 03:51:25.744   144   144 I SurfaceFlinger: version   : 1.4 Android META-EGL
01-01 03:51:25.744   144   144 I SurfaceFlinger: extensions: EGL_KHR_get_all_proc_addresses EGL_ANDROID_presentation_time EGL_KHR_swap_buffers_with_damage EGL_KHR_image_base EGL_KHR_fence_sync EGL_ANDROID_image_native_buffer 
01-01 03:51:25.744   144   144 I SurfaceFlinger: Client API: OpenGL_ES
01-01 03:51:25.744   144   144 I SurfaceFlinger: EGLSurface: 5-6-5-0, config=0x0
01-01 03:51:25.749   144   144 D SurfaceFlinger: Set power mode=2, type=0 flinger=0xb6a24000
01-01 03:51:26.507   180   198 D libEGL  : UID:1003 EUID:1003
01-01 03:51:26.508   180   198 D libEGL  : ro.zygote.disable_gl_preload not set, EGL overrides disabled
01-01 03:51:26.508   180   198 D libEGL  : Emulator without GPU support detected. Fallback to software renderer.
01-01 03:51:26.513   180   198 D libEGL  : loaded /system/lib/egl/libGLES_android.so

Here we can see that:
  • libagl has EGL_SLOW_CONFIG enabled, whereas it's not enable in llvmpipe case.
  • libagl has detected "Emulator without GPU support" and falls back "to software renderer".

Both really look like crucial performance related configuration that could completely explain the really poor performance with llvmpipe.

Actions #2

Updated by Denis 'GNUtoo' Carikli over 1 year ago

On the GT-I9300 with replicant-6.0-dev from today we have:

01-01 01:04:48.470  1973  1973 I SurfaceFlinger: SurfaceFlinger is starting
01-01 01:04:48.470  1973  1973 I SurfaceFlinger: SurfaceFlinger's main thread ready to run. Initializing graphics H/W...
01-01 01:04:48.470  1973  1973 D libEGL  : UID:1000 EUID:1000
01-01 01:04:48.485  1973  1973 D libEGL  : override found: /system/etc/libGLES_android//system/bin/surfaceflinger
01-01 01:04:48.520  1973  1973 D libEGL  : loaded /system/lib/egl/libGLES_android.so
01-01 01:04:48.595  1973  1973 W gralloc : page flipping not supported (yres_virtual=1280, requested=2560)
01-01 01:04:48.595  1973  1973 I gralloc : using (fd=15)
01-01 01:04:48.595  1973  1973 I gralloc : id           = s3cfb
01-01 01:04:48.595  1973  1973 I gralloc : xres         = 720 px
01-01 01:04:48.595  1973  1973 I gralloc : yres         = 1280 px
01-01 01:04:48.595  1973  1973 I gralloc : xres_virtual = 720 px
01-01 01:04:48.595  1973  1973 I gralloc : yres_virtual = 1280 px
01-01 01:04:48.595  1973  1973 I gralloc : bpp          = 16
01-01 01:04:48.595  1973  1973 I gralloc : r            = 11:5
01-01 01:04:48.595  1973  1973 I gralloc : g            =  5:6
01-01 01:04:48.595  1973  1973 I gralloc : b            =  0:5
01-01 01:04:48.595  1973  1973 I gralloc : width        = 60 mm (304.799988 dpi)
01-01 01:04:48.595  1973  1973 I gralloc : height       = 106 mm (306.716980 dpi)
01-01 01:04:48.595  1973  1973 I gralloc : refresh rate = 60.51 Hz
01-01 01:04:48.610  1973  1973 I SurfaceFlinger: Using composer version 1.0
01-01 01:04:48.610  1973  1973 W SurfaceFlinger: no suitable EGLConfig found, trying a simpler query
01-01 01:04:48.610  1973  1973 W SurfaceFlinger: EGL_SLOW_CONFIG selected!
01-01 01:04:48.610  1973  1973 I SurfaceFlinger: EGL information:
01-01 01:04:48.610  1973  1973 I SurfaceFlinger: vendor    : Android
01-01 01:04:48.610  1973  1973 I SurfaceFlinger: version   : 1.4 Android META-EGL
01-01 01:04:48.610  1973  1973 I SurfaceFlinger: extensions: EGL_KHR_get_all_proc_addresses EGL_ANDROID_presentation_time EGL_KHR_swap_buffers_with_damage EGL_KHR_image_base EGL_KHR_fence_sync EGL_ANDROID_image_native_buffer 
01-01 01:04:48.610  1973  1973 I SurfaceFlinger: Client API: OpenGL_ES
01-01 01:04:48.610  1973  1973 I SurfaceFlinger: EGLSurface: 5-6-5-0, config=0x0
01-01 01:04:48.610  1973  2045 W SurfaceFlinger: Ignoring duplicate VSYNC event from HWC (t=0)
01-01 01:04:48.615  1973  1973 W SurfaceFlinger: no suitable EGLConfig found, trying a simpler query
01-01 01:04:48.615  1973  1973 W SurfaceFlinger: EGL_SLOW_CONFIG selected!
01-01 01:04:48.615  1973  1973 I SurfaceFlinger: EGL information:
01-01 01:04:48.615  1973  1973 I SurfaceFlinger: vendor    : Android
01-01 01:04:48.615  1973  1973 I SurfaceFlinger: version   : 1.4 Android META-EGL
01-01 01:04:48.615  1973  1973 I SurfaceFlinger: extensions: EGL_KHR_get_all_proc_addresses EGL_ANDROID_presentation_time EGL_KHR_swap_buffers_with_damage EGL_KHR_image_base EGL_KHR_fence_sync EGL_ANDROID_image_native_buffer 
01-01 01:04:48.615  1973  1973 I SurfaceFlinger: Client API: OpenGL_ES
01-01 01:04:48.615  1973  1973 I SurfaceFlinger: EGLSurface: 5-6-5-0, config=0x0
01-01 01:04:48.615  1973  1973 I SurfaceFlinger: OpenGL ES informations:
01-01 01:04:48.615  1973  1973 I SurfaceFlinger: vendor    : Android
01-01 01:04:48.615  1973  1973 I SurfaceFlinger: renderer  : Android PixelFlinger 1.4
01-01 01:04:48.615  1973  1973 I SurfaceFlinger: version   : OpenGL ES-CM 1.0
01-01 01:04:48.615  1973  1973 I SurfaceFlinger: extensions: GL_EXT_debug_marker GL_OES_byte_coordinates GL_OES_fixed_point GL_OES_single_precision GL_OES_read_format GL_OES_compressed_paletted_texture GL_OES_draw_texture GL_OES_matrix_get GL_OES_query_matrix GL_OES_EGL_image GL_OES_EGL_sync GL_OES_compressed_ETC1_RGB8_texture GL_ARB_texture_compression GL_ARB_texture_non_power_of_two GL_ANDROID_user_clip_plane GL_ANDROID_vertex_buffer_object GL_ANDROID_generate_mipmap 
01-01 01:04:48.615  1973  1973 I SurfaceFlinger: GL_MAX_TEXTURE_SIZE = 4096
01-01 01:04:48.615  1973  1973 I SurfaceFlinger: GL_MAX_VIEWPORT_DIMS = 4096
01-01 01:04:48.615  1973  1973 E cutils-trace: Error opening trace file: No such file or directory (2)
01-01 01:04:48.615  1973  1973 W SurfaceFlinger: no suitable EGLConfig found, trying a simpler query
01-01 01:04:48.615  1973  1973 W SurfaceFlinger: EGL_SLOW_CONFIG selected!
01-01 01:04:48.615  1973  1973 I SurfaceFlinger: EGL information:
01-01 01:04:48.615  1973  1973 I SurfaceFlinger: vendor    : Android
01-01 01:04:48.615  1973  1973 I SurfaceFlinger: version   : 1.4 Android META-EGL
01-01 01:04:48.615  1973  1973 I SurfaceFlinger: extensions: EGL_KHR_get_all_proc_addresses EGL_ANDROID_presentation_time EGL_KHR_swap_buffers_with_damage EGL_KHR_image_base EGL_KHR_fence_sync EGL_ANDROID_image_native_buffer 
01-01 01:04:48.615  1973  1973 I SurfaceFlinger: Client API: OpenGL_ES
01-01 01:04:48.615  1973  1973 I SurfaceFlinger: EGLSurface: 5-6-5-0, config=0x0
01-01 01:04:48.615  1973  1973 D SurfaceFlinger: Set power mode=2, type=0 flinger=0x40147df0
01-01 01:04:48.910  2048  2069 D libEGL  : UID:1003 EUID:1003
01-01 01:04:48.915  2048  2069 D libEGL  : override found: /system/etc/libGLES_android//system/bin/bootanimation
01-01 01:04:48.925  2048  2069 D libEGL  : loaded /system/lib/egl/libGLES_android.so

So we can clearly see EGL_SLOW_CONFIG selected!.

Actions #3

Updated by Denis 'GNUtoo' Carikli over 1 year ago

device/generic/qemu/init.ranchu.rc has the following:

# Disable GPU support
    setprop ro.kernel.qemu 1
    setprop ro.kernel.qemu.gles 0

I tried it on GT-I9250 with Replicant 6.0 0004 RC3 with the default graphics settings (llvmpipe) with:

adb root
adb shell
setprop ro.kernel.qemu 1
setprop ro.kernel.qemu.gles 0
killall surfaceflinger

And it made graphics fast again.

The downside of using both properties is that applications like tor-browser don't work while they work on the GT-I9300 with llvmpipe.

Actions #4

Updated by Denis 'GNUtoo' Carikli over 1 year ago

With:

setprop ro.kernel.qemu 1
setprop ro.kernel.qemu.gles 1

the device became super slow again.

Actions #5

Updated by Denis 'GNUtoo' Carikli over 1 year ago

With:

setprop ro.kernel.qemu 1
setprop ro.kernel.qemu.gles 1

We have:

12-04 01:38:59.882  2495  2495 I SurfaceFlinger: SurfaceFlinger is starting
12-04 01:38:59.882  2495  2495 I SurfaceFlinger: SurfaceFlinger's main thread ready to run. Initializing graphics H/W...
12-04 01:38:59.882  2495  2495 D libEGL  : UID:1000 EUID:1000
12-04 01:38:59.882  2495  2495 D libEGL  : ro.zygote.disable_gl_preload not set, EGL overrides disabled
12-04 01:38:59.891  2495  2495 D libEGL  : loaded /system/lib/egl/libGLES_mesa.so
12-04 01:39:00.158  2495  2495 W gralloc : page flipping not supported (yres_virtual=1280, requested=2560)
12-04 01:39:00.158  2495  2495 I gralloc : using (fd=12)
12-04 01:39:00.158  2495  2495 I gralloc : id           = omapfb
12-04 01:39:00.158  2495  2495 I gralloc : xres         = 720 px
12-04 01:39:00.158  2495  2495 I gralloc : yres         = 1280 px
12-04 01:39:00.158  2495  2495 I gralloc : xres_virtual = 720 px
12-04 01:39:00.158  2495  2495 I gralloc : yres_virtual = 1280 px
12-04 01:39:00.158  2495  2495 I gralloc : bpp          = 16
12-04 01:39:00.158  2495  2495 I gralloc : r            = 11:5
12-04 01:39:00.158  2495  2495 I gralloc : g            =  5:6
12-04 01:39:00.158  2495  2495 I gralloc : b            =  0:5
12-04 01:39:00.158  2495  2495 I gralloc : width        = 58 mm (315.310333 dpi)
12-04 01:39:00.158  2495  2495 I gralloc : height       = 102 mm (318.745087 dpi)
12-04 01:39:00.158  2495  2495 I gralloc : refresh rate = 59.14 Hz
12-04 01:39:00.166  2495  2495 E ti_hwc  : Composer HAL failed to load compatible Graphics HAL
12-04 01:39:00.166  2495  2495 E SurfaceFlinger: composer device failed to initialize (Invalid argument)
12-04 01:39:00.166  2495  2495 I SurfaceFlinger: EGL information:
12-04 01:39:00.167  2495  2495 I SurfaceFlinger: vendor    : Android
12-04 01:39:00.167  2495  2495 I SurfaceFlinger: version   : 1.4 Android META-EGL
12-04 01:39:00.167  2495  2495 I SurfaceFlinger: extensions: EGL_KHR_get_all_proc_addresses EGL_ANDROID_presentation_time EGL_KHR_swap_buffers_with_damage EGL_KHR_image_base EGL_KHR_gl_texture_2D_image EGL_KHR_gl_texture_3D_image EGL_KHR_gl_texture_cubemap_image EGL_KHR_gl_renderbuffer_image EGL_KHR_reusable_sync EGL_KHR_fence_sync EGL_KHR_create_context EGL_KHR_surfaceless_context EGL_ANDROID_image_native_buffer EGL_KHR_wait_sync EGL_ANDROID_recordable 
12-04 01:39:00.167  2495  2495 I SurfaceFlinger: Client API: OpenGL_ES
12-04 01:39:00.167  2495  2495 I SurfaceFlinger: EGLSurface: 5-6-5-0, config=0xb572d740
12-04 01:39:00.214  2495  2495 I SurfaceFlinger: OpenGL ES informations:
12-04 01:39:00.214  2495  2495 I SurfaceFlinger: vendor    : VMware, Inc.
12-04 01:39:00.214  2495  2495 I SurfaceFlinger: renderer  : Gallium 0.4 on llvmpipe (LLVM 3.7, 128 bits)
12-04 01:39:00.214  2495  2495 I SurfaceFlinger: version   : OpenGL ES 3.0 Mesa 13.0.3 (git-bddbe95616)
12-04 01:39:00.214  2495  2495 I SurfaceFlinger: extensions: GL_EXT_debug_marker GL_EXT_blend_minmax GL_EXT_multi_draw_arrays GL_EXT_texture_format_BGRA8888 GL_OES_compressed_ETC1_RGB8_texture GL_OES_depth24 GL_OES_element_index_uint GL_OES_fbo_render_mipmap GL_OES_mapbuffer GL_OES_rgb8_rgba8 GL_OES_standard_derivatives GL_OES_stencil8 GL_OES_texture_3D GL_OES_texture_float GL_OES_texture_float_linear GL_OES_texture_half_float GL_OES_texture_half_float_linear GL_OES_texture_npot GL_EXT_texture_sRGB_decode GL_OES_EGL_image GL_OES_depth_texture GL_OES_packed_depth_stencil GL_EXT_texture_type_2_10_10_10_REV GL_OES_get_program_binary GL_APPLE_texture_max_level GL_EXT_discard_framebuffer GL_EXT_read_format_bgra GL_NV_fbo_color_attachments GL_OES_EGL_image_external GL_OES_EGL_sync GL_OES_vertex_array_object GL_EXT_texture_rg GL_EXT_unpack_subimage GL_NV_draw_buffers GL_NV_read_buffer GL_NV_read_depth GL_NV_read_depth_stencil GL_NV_read_stencil GL_EXT_draw_buffers GL_EXT_map_buffer_range GL_KHR_debug GL_OES_depth_texture_cube_map GL_OES_surfaceless_context GL_EXT
12-04 01:39:00.214  2495  2495 I SurfaceFlinger: GL_MAX_TEXTURE_SIZE = 8192
12-04 01:39:00.214  2495  2495 I SurfaceFlinger: GL_MAX_VIEWPORT_DIMS = 8192
12-04 01:39:00.229  2495  2495 D SurfaceFlinger: Set power mode=2, type=0 flinger=0xb6aa4000
12-04 01:39:00.546  2495  2495 D SurfaceFlinger: SF. shader cache generated - 26 shaders in 307.220459 ms
12-04 01:39:01.651  2498  2498 V MediaUtils: physMem: 1040437248
12-04 01:39:01.651  2498  2498 V MediaUtils: requested limit: 676284180
12-04 01:39:01.651  2498  2498 V MediaUtils: actual limit: 676284180
12-04 01:39:01.651  2498  2498 V MediaUtils: original limits: 4294967295/4294967295
12-04 01:39:01.652  2498  2498 V MediaUtils: new limits: 676284180/4294967295
12-04 01:39:01.765  2498  2498 I mediaserver: ServiceManager: 0xb600e120
12-04 01:39:01.765  2498  2498 I AudioFlinger: Using default 3000 mSec as standby time.
12-04 01:39:01.795  2508  2512 D libEGL  : UID:1003 EUID:1003
12-04 01:39:01.795  2508  2512 D libEGL  : ro.zygote.disable_gl_preload not set, EGL overrides disabled
12-04 01:39:01.828  2508  2512 D libEGL  : loaded /system/lib/egl/libGLES_mesa.so

Actions #6

Updated by Denis 'GNUtoo' Carikli over 1 year ago

With:

[ro.kernel.qemu]: [1]
[ro.kernel.qemu.gles]: [0]

12-04 01:52:58.542   146   146 I SurfaceFlinger: SurfaceFlinger is starting
12-04 01:52:58.545   146   146 I SurfaceFlinger: SurfaceFlinger's main thread ready to run. Initializing graphics H/W...
12-04 01:52:58.545   146   146 D libEGL  : UID:1000 EUID:1000
12-04 01:52:58.545   146   146 D libEGL  : ro.zygote.disable_gl_preload not set, EGL overrides disabled
12-04 01:52:58.603   146   146 D libEGL  : loaded /system/lib/egl/libGLES_mesa.so
12-04 01:52:59.360   146   146 W gralloc : page flipping not supported (yres_virtual=1280, requested=2560)
12-04 01:52:59.360   146   146 I gralloc : using (fd=12)
12-04 01:52:59.360   146   146 I gralloc : id           = omapfb
12-04 01:52:59.360   146   146 I gralloc : xres         = 720 px
12-04 01:52:59.360   146   146 I gralloc : yres         = 1280 px
12-04 01:52:59.360   146   146 I gralloc : xres_virtual = 720 px
12-04 01:52:59.360   146   146 I gralloc : yres_virtual = 1280 px
12-04 01:52:59.360   146   146 I gralloc : bpp          = 16
12-04 01:52:59.360   146   146 I gralloc : r            = 11:5
12-04 01:52:59.360   146   146 I gralloc : g            =  5:6
12-04 01:52:59.360   146   146 I gralloc : b            =  0:5
12-04 01:52:59.360   146   146 I gralloc : width        = 58 mm (315.310333 dpi)
12-04 01:52:59.360   146   146 I gralloc : height       = 102 mm (318.745087 dpi)
12-04 01:52:59.360   146   146 I gralloc : refresh rate = 59.14 Hz
12-04 01:52:59.405   146   146 E ti_hwc  : Composer HAL failed to load compatible Graphics HAL
12-04 01:52:59.405   146   146 E SurfaceFlinger: composer device failed to initialize (Invalid argument)
12-04 01:52:59.406   146   146 I SurfaceFlinger: EGL information:
12-04 01:52:59.406   146   146 I SurfaceFlinger: vendor    : Android
12-04 01:52:59.406   146   146 I SurfaceFlinger: version   : 1.4 Android META-EGL
12-04 01:52:59.406   146   146 I SurfaceFlinger: extensions: EGL_KHR_get_all_proc_addresses EGL_ANDROID_presentation_time EGL_KHR_swap_buffers_with_damage EGL_KHR_image_base EGL_KHR_gl_texture_2D_image EGL_KHR_gl_texture_3D_image EGL_KHR_gl_texture_cubemap_image EGL_KHR_gl_renderbuffer_image EGL_KHR_reusable_sync EGL_KHR_fence_sync EGL_KHR_create_context EGL_KHR_surfaceless_context EGL_ANDROID_image_native_buffer EGL_KHR_wait_sync EGL_ANDROID_recordable 
12-04 01:52:59.406   146   146 I SurfaceFlinger: Client API: OpenGL_ES
12-04 01:52:59.406   146   146 I SurfaceFlinger: EGLSurface: 5-6-5-0, config=0xb56ed740
12-04 01:52:59.446   146   146 I SurfaceFlinger: OpenGL ES informations:
12-04 01:52:59.446   146   146 I SurfaceFlinger: vendor    : VMware, Inc.
12-04 01:52:59.446   146   146 I SurfaceFlinger: renderer  : Gallium 0.4 on llvmpipe (LLVM 3.7, 128 bits)
12-04 01:52:59.446   146   146 I SurfaceFlinger: version   : OpenGL ES 3.0 Mesa 13.0.3 (git-bddbe95616)
12-04 01:52:59.446   146   146 I SurfaceFlinger: extensions: GL_EXT_debug_marker GL_EXT_blend_minmax GL_EXT_multi_draw_arrays GL_EXT_texture_format_BGRA8888 GL_OES_compressed_ETC1_RGB8_texture GL_OES_depth24 GL_OES_element_index_uint GL_OES_fbo_render_mipmap GL_OES_mapbuffer GL_OES_rgb8_rgba8 GL_OES_standard_derivatives GL_OES_stencil8 GL_OES_texture_3D GL_OES_texture_float GL_OES_texture_float_linear GL_OES_texture_half_float GL_OES_texture_half_float_linear GL_OES_texture_npot GL_EXT_texture_sRGB_decode GL_OES_EGL_image GL_OES_depth_texture GL_OES_packed_depth_stencil GL_EXT_texture_type_2_10_10_10_REV GL_OES_get_program_binary GL_APPLE_texture_max_level GL_EXT_discard_framebuffer GL_EXT_read_format_bgra GL_NV_fbo_color_attachments GL_OES_EGL_image_external GL_OES_EGL_sync GL_OES_vertex_array_object GL_EXT_texture_rg GL_EXT_unpack_subimage GL_NV_draw_buffers GL_NV_read_buffer GL_NV_read_depth GL_NV_read_depth_stencil GL_NV_read_stencil GL_EXT_draw_buffers GL_EXT_map_buffer_range GL_KHR_debug GL_OES_depth_texture_cube_map GL_OES_surfaceless_context GL_EXT
12-04 01:52:59.446   146   146 I SurfaceFlinger: GL_MAX_TEXTURE_SIZE = 8192
12-04 01:52:59.446   146   146 I SurfaceFlinger: GL_MAX_VIEWPORT_DIMS = 8192
12-04 01:52:59.462   146   146 D SurfaceFlinger: Set power mode=2, type=0 flinger=0xb6a64000
12-04 01:52:59.687   146   146 D SurfaceFlinger: SF. shader cache generated - 26 shaders in 207.702637 ms
Actions #7

Updated by Denis 'GNUtoo' Carikli over 1 year ago

In frameworks_native, this commit enabled llvmpipe:

108a3f6c4 Enable llvmpipe on the Samsung devices with an OMAP4 SOC

But it did it in a way that is not optimal: With it, the hwc fails to load, and so it falls back on a default implementation.

Trying to force EGL_SLOW_CONFIG with this patch:

diff --git a/services/surfaceflinger/RenderEngine/RenderEngine.cpp b/services/surfaceflinger/RenderEngine/RenderEngine.cpp
index ba9403029..d9fd731b5 100644
--- a/services/surfaceflinger/RenderEngine/RenderEngine.cpp
+++ b/services/surfaceflinger/RenderEngine/RenderEngine.cpp
@@ -374,6 +374,7 @@ static status_t selectEGLConfig(EGLDisplay display, EGLint format,

     EGLAttributeVector attribs;
     if (renderableType) {
+        attribs[EGL_CONFIG_CAVEAT]              = EGL_SLOW_CONFIG;
         attribs[EGL_RENDERABLE_TYPE]            = renderableType;
         attribs[EGL_RECORDABLE_ANDROID]         = EGL_TRUE;
         attribs[EGL_SURFACE_TYPE]               = EGL_WINDOW_BIT|EGL_PBUFFER_BIT;
@@ -385,6 +386,7 @@ static status_t selectEGLConfig(EGLDisplay display, EGLint format,
         wantedAttributeValue                    = format;
     } else {
         // if no renderable type specified, fallback to a simplified query
+        attribs[EGL_CONFIG_CAVEAT]              = EGL_SLOW_CONFIG;
         wantedAttribute                         = EGL_NATIVE_VISUAL_ID;
         wantedAttributeValue                    = format;
     }

resulted in a black screen at boot.

So the solution is probably to fix the hwc, but since:
  • It's probably too much work
  • We have a workaround that is not worse than before
  • People were already used to not being able to run certain applications

It's probably better to use the qemu workarounds for now at leat.

Actions #8

Updated by Denis 'GNUtoo' Carikli over 1 year ago

  • Related to Issue #1994: Black screen after installing the Replicant 6.0 0004 RC1 images added
Actions #9

Updated by Denis 'GNUtoo' Carikli over 1 year ago

  • Device Galaxy Nexus (GT-I9250) added
Actions

Also available in: Atom PDF