This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

Android Devkit v2.3 GB for DM37xx



Hi,

 

with the out-of-box binaries I am noticing that the performance of the UI is very sluggish. I heard that there was a u-boot issue that caused the SGX to be really slow. Are these patches on rowboat already? Are there any other reasons for the sluggishness?

 

Thanks,

--Gunter

 

  • Gunter,

    Is this the first time you boot the board with these binaries? If it is the first time there will be some sluggishness until the system loads all the services, after the first boot you should not see the sluggishness. Just in case you can download the latest binaries from http://software-dl.ti.com/dsps/dsps_public_sw/sdo_tii/TI_Android_DevKit/TI_Android_GingerBread_2_3_DevKit_1_0/index_FDS.html and create the sd card again.

  • Alejandro,

     

    thanks. I will do some more testing tomorrow. Are you saying that the Devkit binaries have a u-boot that has the SGX slow clock fixed?

     

    Thanks,

    --Gunter

  • No, I believe the clock was not corrected in this release, but there should be no much sluggish even though with the low clock.

  • Hi,

     

    can I ask again whether there is a patch to u-boot that corrects the SGX clock to the higher speed for the 2.3 GB devkit?

     

    Thanks,

    --Gunter

  • Hi Gunter,

    You can verify SGX clock speed with the help of following steps.

    1. mount  -t  debugfs debugfs /sys/kernel/debug
    2. cd /sys/kernel/debug
    3. cat virt_26m_ck/osc_sys_ck/sys_ck/dpll3_ck/dpll3_m2_ck/core_ck/sgx_fck/rate

    If speed is 200MHz this SGX clock is fine.

    Thanks and Regards,

    Pankaj Bharadiya.


  • I found this error, but no one answered me, please check it out.

    http://e2e.ti.com/support/embedded/f/509/t/112282.aspx

  • This issue is present for me on a DM3530 board using the gingerbread-dsp branch. SGX 1.7 is built and installed, but the UI performance is terrible. In fact the UI without SGX is much better. When I cat sgx_fck I get 110666666 which I expect. This issue is present on 2.6.32, 2.6.37, and 2.6.39 kernels, has anyone found a solution?

  • The Rowboat gingerbread-dsp branch does not support DM3530. Have you done any changes on top of it? Do you use the EVM or custom board?

    And the gb-dsp branch only supports 2.6.32 kernel at the moment. There are some work needed to port the DSP related components to support newer kernels, for example, 2.6.37. So I assume you have done such migration work.

    If the UI performance is not better than without SGX, most likely the SGX driver/lib are not in use. 

    I remember Aditya in this forum has helped someone solved a similar issue. the logcat message shows the SGX is not in use and Android uses s/w openGLES rendering instead. Please search this forum to find the similar post.

  • Bin Liu said:
    The Rowboat gingerbread-dsp branch does not support DM3530. Have you done any changes on top of it? Do you use the EVM or custom board?

    I am using a custom 3530 board, however I have tried building both manifest's rowboat-gingerbread-dsp and rowboat-gingerbread. Same result.

    I have ported the mainline 2.6.39 Android kernel and have it running with gingerbread currently. I am building the SGX modules against the 2.6.39 kernel without error. However, I am seeing this same issue with the 2.6.32 rowboat kernel as well.

    Bin Liu said:
    I remember Aditya in this forum has helped someone solved a similar issue. the logcat message shows the SGX is not in use and Android uses s/w openGLES rendering instead. Please search this forum to find the similar post.

    I found this post, but the solution did not fix my problem.

    Here is my logcat about SGX:

    I/sysproc ( 1109): Entered system_init()
    I/sysproc ( 1109): ServiceManager: 0x7c8c0
    I/SurfaceFlinger( 1109): SurfaceFlinger is starting
    I/SurfaceFlinger( 1109): SurfaceFlinger's main thread ready to run. Initializing graphics H/W...
    E/SurfaceFlinger( 1109): Couldn't open /sys/power/wait_for_fb_sleep or /sys/power/wait_for_fb_wake
    D/libEGL  ( 1109): loaded /system/lib/egl/libGLES_android.so
    D/libEGL  ( 1109): loaded /system/lib/egl/libEGL_POWERVR_SGX530_121.so
    D/libEGL  ( 1109): loaded /system/lib/egl/libGLESv1_CM_POWERVR_SGX530_121.so
    D/libEGL  ( 1109): loaded /system/lib/egl/libGLESv2_POWERVR_SGX530_121.so
    W/SurfaceFlinger( 1109): ro.sf.lcd_density not defined, using 160 dpi by default.
    E/libEGL  ( 1109): eglSetSwapRectangleANDROID:1844 error 3008 (EGL_BAD_DISPLAY)
    I/SurfaceFlinger( 1109): EGL informations:
    I/SurfaceFlinger( 1109): # of configs : 36
    I/SurfaceFlinger( 1109): vendor    : Android
    I/SurfaceFlinger( 1109): version   : 1.4 Android META-EGL
    I/SurfaceFlinger( 1109): extensions: EGL_KHR_image EGL_KHR_image_base EGL_KHR_image_pixmap EGL_ANDROID_image_native_buffer EGL_ANDROID_swap_rectangle
    I/SurfaceFlinger( 1109): Client API: OpenGL ES
    I/SurfaceFlinger( 1109): EGLSurface: 5-6-5-0, config=0xa
    I/SurfaceFlinger( 1109): OpenGL informations:
    I/SurfaceFlinger( 1109): vendor    : Imagination Technologies
    I/SurfaceFlinger( 1109): renderer  : PowerVR SGX 530
    I/SurfaceFlinger( 1109): version   : OpenGL ES-CM 1.1
    I/SurfaceFlinger( 1109): extensions: GL_OES_byte_coordinates GL_OES_fixed_point GL_OES_single_precision GL_OES_matrix_get GL_OES_read_format GL_OES_compressed_paletted_texture GL_OES_point_sprite GL_OES_point_size_array GL_OES_matrix_palette GL_OES_draw_texture GL_OES_query_matrix GL_OES_texture_env_crossbar GL_OES_texture_mirrored_repeat GL_OES_texture_cube_map GL_OES_blend_subtract GL_OES_blend_func_separate GL_OES_blend_equation_separate GL_OES_stencil_wrap GL_OES_extended_matrix_palette GL_OES_framebuffer_object GL_OES_rgb8_rgba8 GL_OES_depth24 GL_OES_stencil8 GL_OES_compressed_ETC1_RGB8_texture GL_OES_mapbuffer GL_OES_EGL_image GL_EXT_multi_draw_arrays GL_OES_required_internalformat GL_IMG_read_format GL_IMG_texture_compression_pvrtc GL_IMG_texture_format_BGRA8888 GL_EXT_texture_format_BGRA8888 GL_IMG_texture_stream GL_OES_egl_sync GL_IMG_vertex_array_object
    I/SurfaceFlinger( 1109): GL_MAX_TEXTURE_SIZE = 2048
    I/SurfaceFlinger( 1109): GL_MAX_VIEWPORT_DIMS = 2048
    I/SurfaceFlinger( 1109): flags = 00010000
    D/SensorService( 1109): nuSensorService starting...
    E/SensorService( 1109): couldn't load sensors module (No such file or directory)
    I/sysproc ( 1109): System server: starting Android runtime.
    I/sysproc ( 1109): System server: starting Android services.
    I/sysproc ( 1109): System server: entering thread pool.
    I/SystemServer( 1109): Entered the Android system server!
    I/SystemServer( 1109): Entropy Service
    D/libEGL  ( 1123): loaded /system/lib/egl/libGLES_android.so
    D/libEGL  ( 1123): loaded /system/lib/egl/libEGL_POWERVR_SGX530_121.so
    D/libEGL  ( 1123): loaded /system/lib/egl/libGLESv1_CM_POWERVR_SGX530_121.so
    D/libEGL  ( 1123): loaded /system/lib/egl/libGLESv2_POWERVR_SGX530_121.so
    I/SystemServer( 1109): Power Manager
    I/SystemServer( 1109): Activity Manager

    This is what the UI looks like after boot.

    http://www.san-dex.com/omap/sgx.mp4

    Let me know what else to provide to debug. Thanks for all your help.

    Tyler

     

  • Some interesting logcat...

    Without building the SGX modules into the root filesystem I get this...

    I/sysproc ( 1046): Entered system_init()
    I/sysproc ( 1046): ServiceManager: 0x8d6e0
    I/SurfaceFlinger( 1046): SurfaceFlinger is starting
    I/SurfaceFlinger( 1046): SurfaceFlinger's main thread ready to run. Initializing graphics H/W...
    E/SurfaceFlinger( 1046): Couldn't open /sys/power/wait_for_fb_sleep or /sys/power/wait_for_fb_wake
    I/gralloc ( 1046): using (fd=25)
    I/gralloc ( 1046): id           = omapfb
    I/gralloc ( 1046): xres         = 480 px
    I/gralloc ( 1046): yres         = 640 px
    I/gralloc ( 1046): xres_virtual = 480 px
    I/gralloc ( 1046): yres_virtual = 1280 px
    I/gralloc ( 1046): bpp          = 16
    I/gralloc ( 1046): r            = 11:5
    I/gralloc ( 1046): g            =  5:6
    I/gralloc ( 1046): b            =  0:5
    I/gralloc ( 1046): width        = 76 mm (160.421051 dpi)
    I/gralloc ( 1046): height       = 102 mm (159.372543 dpi)
    I/gralloc ( 1046): refresh rate = 60.00 Hz
    D/libEGL  ( 1046): egl.cfg not found, using default config
    D/libEGL  ( 1046): loaded /system/lib/egl/libGLES_android.so
    W/SurfaceFlinger( 1046): ro.sf.lcd_density not defined, using 160 dpi by default.
    I/SurfaceFlinger( 1046): EGL informations:
    I/SurfaceFlinger( 1046): # of configs : 8
    I/SurfaceFlinger( 1046): vendor    : Android
    I/SurfaceFlinger( 1046): version   : 1.4 Android META-EGL
    I/SurfaceFlinger( 1046): extensions: EGL_KHR_image EGL_KHR_image_base EGL_KHR_image_pixmap EGL_ANDROID_image_native_buffer EGL_ANDROID_swap_rectangle
    I/SurfaceFlinger( 1046): Client API: OpenGL ES
    I/SurfaceFlinger( 1046): EGLSurface: 5-6-5-0, config=0x0
    I/SurfaceFlinger( 1046): OpenGL informations:
    I/SurfaceFlinger( 1046): vendor    : Android
    I/SurfaceFlinger( 1046): renderer  : Android PixelFlinger 1.4
    I/SurfaceFlinger( 1046): version   : OpenGL ES-CM 1.0
    I/SurfaceFlinger( 1046): extensions: 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_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
    I/SurfaceFlinger( 1046): GL_MAX_TEXTURE_SIZE = 4096
    I/SurfaceFlinger( 1046): GL_MAX_VIEWPORT_DIMS = 4096
    I/SurfaceFlinger( 1046): flags = 000c0000
    D/SensorService( 1046): nuSensorService starting...
    E/SensorService( 1046): couldn't load sensors module (No such file or directory)
    I/sysproc ( 1046): System server: starting Android runtime.
    I/sysproc ( 1046): System server: starting Android services.
    I/sysproc ( 1046): System server: entering thread pool.
    I/SystemServer( 1046): Entered the Android system server!
    I/SystemServer( 1046): Entropy Service
    D/libEGL  ( 1060): egl.cfg not found, using default config
    D/libEGL  ( 1060): loaded /system/lib/egl/libGLES_android.so
    I/ARMAssembler( 1046): generated scanline__00000077:03010104_00000004_00000000 [ 22 ipp] (41 ins) at [0x439001e8:0x4390028c] in 244141 ns
    I/ARMAssembler( 1060): generated scanline__00000077:03010104_00008A04_00000000 [  9 ipp] (30 ins) at [0x41ac71e8:0x41ac7260] in 274658 ns
    I/SystemServer( 1046): Power Manager
    I/SystemServer( 1046): Activity Manager
    I/ActivityManager( 1046): Memory class: 16

    With the SGX drivers installed in the root file system...

    I/sysproc ( 1111): Entered system_init()
    I/sysproc ( 1111): ServiceManager: 0x8d6e0
    I/SurfaceFlinger( 1111): SurfaceFlinger is starting
    I/SurfaceFlinger( 1111): SurfaceFlinger's main thread ready to run. Initializing graphics H/W...
    E/SurfaceFlinger( 1111): Couldn't open /sys/power/wait_for_fb_sleep or /sys/power/wait_for_fb_wake
    D/libEGL  ( 1111): loaded /system/lib/egl/libGLES_android.so
    D/libEGL  ( 1111): loaded /system/lib/egl/libEGL_POWERVR_SGX530_121.so
    D/libEGL  ( 1111): loaded /system/lib/egl/libGLESv1_CM_POWERVR_SGX530_121.so
    D/libEGL  ( 1111): loaded /system/lib/egl/libGLESv2_POWERVR_SGX530_121.so
    W/SurfaceFlinger( 1111): ro.sf.lcd_density not defined, using 160 dpi by default.
    E/libEGL  ( 1111): eglSetSwapRectangleANDROID:1844 error 3008 (EGL_BAD_DISPLAY)
    I/SurfaceFlinger( 1111): EGL informations:
    I/SurfaceFlinger( 1111): # of configs : 36
    I/SurfaceFlinger( 1111): vendor    : Android
    I/SurfaceFlinger( 1111): version   : 1.4 Android META-EGL
    I/SurfaceFlinger( 1111): extensions: EGL_KHR_image EGL_KHR_image_base EGL_KHR_image_pixmap EGL_ANDROID_image_native_buffer EGL_ANDROID_swap_rectangle
    I/SurfaceFlinger( 1111): Client API: OpenGL ES
    I/SurfaceFlinger( 1111): EGLSurface: 5-6-5-0, config=0xa
    I/SurfaceFlinger( 1111): OpenGL informations:
    I/SurfaceFlinger( 1111): vendor    : Imagination Technologies
    I/SurfaceFlinger( 1111): renderer  : PowerVR SGX 530
    I/SurfaceFlinger( 1111): version   : OpenGL ES-CM 1.1
    I/SurfaceFlinger( 1111): extensions: GL_OES_byte_coordinates GL_OES_fixed_point GL_OES_single_precision GL_OES_matrix_get GL_OES_read_format GL_OES_compressed_paletted_texture GL_OES_point_sprite GL_OES_point_size_array GL_OES_matrix_palette GL_OES_draw_texture GL_OES_query_matrix GL_OES_texture_env_crossbar GL_OES_texture_mirrored_repeat GL_OES_texture_cube_map GL_OES_blend_subtract GL_OES_blend_func_separate GL_OES_blend_equation_separate GL_OES_stencil_wrap GL_OES_extended_matrix_palette GL_OES_framebuffer_object GL_OES_rgb8_rgba8 GL_OES_depth24 GL_OES_stencil8 GL_OES_compressed_ETC1_RGB8_texture GL_OES_mapbuffer GL_OES_EGL_image GL_EXT_multi_draw_arrays GL_OES_required_internalformat GL_IMG_read_format GL_IMG_texture_compression_pvrtc GL_IMG_texture_format_BGRA8888 GL_EXT_texture_format_BGRA8888 GL_IMG_texture_stream GL_OES_egl_sync GL_IMG_vertex_array_object
    I/SurfaceFlinger( 1111): GL_MAX_TEXTURE_SIZE = 2048
    I/SurfaceFlinger( 1111): GL_MAX_VIEWPORT_DIMS = 2048
    I/SurfaceFlinger( 1111): flags = 00010000
    D/SensorService( 1111): nuSensorService starting...
    E/SensorService( 1111): couldn't load sensors module (No such file or directory)
    I/sysproc ( 1111): System server: starting Android runtime.
    I/sysproc ( 1111): System server: starting Android services.
    I/sysproc ( 1111): System server: entering thread pool.
    I/SystemServer( 1111): Entered the Android system server!
    I/SystemServer( 1111): Entropy Service
    D/libEGL  ( 1125): loaded /system/lib/egl/libGLES_android.so
    D/libEGL  ( 1125): loaded /system/lib/egl/libEGL_POWERVR_SGX530_121.so
    D/libEGL  ( 1125): loaded /system/lib/egl/libGLESv1_CM_POWERVR_SGX530_121.so
    D/libEGL  ( 1125): loaded /system/lib/egl/libGLESv2_POWERVR_SGX530_121.so
    E/SurfaceFlinger( 1111): eglSwapBuffers: EGL error 0x3008 (EGL_BAD_DISPLAY)
    I/SystemServer( 1111): Power Manager
    I/SystemServer( 1111): Activity Manager
    I/ActivityManager( 1111): Memory class: 16

    I guess what is interesting to me is that gralloc is not being called when the SGX drivers are loaded. Is this expected?

    I/gralloc ( 1046): using (fd=25)
    I/gralloc ( 1046): id           = omapfb
    I/gralloc ( 1046): xres         = 480 px
    I/gralloc ( 1046): yres         = 640 px
    I/gralloc ( 1046): xres_virtual = 480 px
    I/gralloc ( 1046): yres_virtual = 1280 px
    I/gralloc ( 1046): bpp          = 16
    I/gralloc ( 1046): r            = 11:5
    I/gralloc ( 1046): g            =  5:6
    I/gralloc ( 1046): b            =  0:5
    I/gralloc ( 1046): width        = 76 mm (160.421051 dpi)
    I/gralloc ( 1046): height       = 102 mm (159.372543 dpi)
    I/gralloc ( 1046): refresh rate = 60.00 Hz

    Thanks for any input!

  • Solved:

    My board has a manually updated lcd display. Turns out I needed to enable this kernel option to be built inl: CONFIG_OMAP2_DSS_FAKE_VSYNC=y

    I'm up and running with the 2.6.39 kernel, Gingerbread 2.3.4 DSP branch, and now working SGX. Thanks!