Intel 945GSE/GMA950 and OpenGL

1,305 views
Skip to first unread message

Synologic

unread,
Jan 2, 2012, 4:05:43 PM1/2/12
to Android-x86
Hi,

i wasn't able to find much in the list regarding if HW Acceleration is
available for boards using i945/GMA950.
I tried both Honeycomb and ICS builds, but none of them works hw
accelerated.

Can somebody provide some insight into this ?

Chih-Wei Huang

unread,
Jan 2, 2012, 8:42:09 PM1/2/12
to andro...@googlegroups.com

Yes, it is supported.

--
You received this message because you are subscribed to the Google Groups "Android-x86" group.
To post to this group, send email to andro...@googlegroups.com.
To unsubscribe from this group, send email to android-x86...@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/android-x86?hl=en.

Viorel Dehelean

unread,
Jan 3, 2012, 1:13:59 AM1/3/12
to andro...@googlegroups.com
do i need to do anything special, as i tried a lot of things and i cant seem to get it to work. Logcat shows:

I/SurfaceFlinger(  955): SurfaceFlinger is starting
I/SurfaceFlinger(  955): SurfaceFlinger's main thread ready to run. Initializing graphics H/W...
W/gralloc (  955): page flipping not supported (yres_virtual=600, requested=1200)
I/gralloc (  955): using (fd=27)
I/gralloc (  955): id           = VESA VGA
I/gralloc (  955): xres         = 800 px
I/gralloc (  955): yres         = 600 px
I/gralloc (  955): xres_virtual = 800 px
I/gralloc (  955): yres_virtual = 600 px
I/gralloc (  955): bpp          = 16
I/gralloc (  955): r            = 11:5
I/gralloc (  955): g            =  5:6
I/gralloc (  955): b            =  0:5
I/gralloc (  955): width        = 127 mm (159.999998 dpi)
I/gralloc (  955): height       = 95 mm (160.421050 dpi)
I/gralloc (  955): refresh rate = 81.54 Hz
D/libEGL  (  955): loaded /system/lib/egl/libGLES_android.so
D/libEGL  (  955): 3D hardware acceleration is disabled
I/SurfaceFlinger(  955): EGL informations:
I/SurfaceFlinger(  955): # of configs : 8
I/SurfaceFlinger(  955): vendor    : Android
I/SurfaceFlinger(  955): version   : 1.4 Android META-EGL
I/SurfaceFlinger(  955): extensions: EGL_KHR_image EGL_KHR_image_base EGL_KHR_image_pixmap EGL_KHR_gl_texture_2D_image EGL_KHR_gl_texture_cubemap_image EGL_KHR_gl_renderbuffer_image EGL_KHR_fence_sync EGL_ANDROID_image_native_buffer EGL_ANDROID_swap_rectangle
I/SurfaceFlinger(  955): Client API: OpenGL ES
I/SurfaceFlinger(  955): EGLSurface: 5-6-5-0, config=0x0
I/SurfaceFlinger(  955): OpenGL informations:
I/SurfaceFlinger(  955): vendor    : Android
I/SurfaceFlinger(  955): renderer  : Android PixelFlinger 1.4
I/SurfaceFlinger(  955): version   : OpenGL ES-CM 1.0
I/SurfaceFlinger(  955): 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(  955): GL_MAX_TEXTURE_SIZE = 4096
I/SurfaceFlinger(  955): GL_MAX_VIEWPORT_DIMS = 4096
I/SurfaceFlinger(  955): flags = 000c0000
W/SurfaceFlinger(  955): hwcomposer module not found

2012/1/3 Chih-Wei Huang <cwh...@android-x86.org>

Viorel Dehelean

unread,
Jan 3, 2012, 12:56:15 PM1/3/12
to Android-x86
I have added "BOARD_GPU_DRIVERS = i915" in BoardConfig.mk which seems
to have loaded inteldrmfb rather than uvesafb, still there's no GUI
showing and there are a lot of crashes in the log like:

W/Surface ( 1092): failed locking buffer (handle = 0x81e1370)
I/DEBUG ( 966): *** *** *** *** *** *** *** *** *** *** *** *** ***
*** *** ***
I/DEBUG ( 966): Build fingerprint: 'generic_x86/generic_x86/
generic_x86:3.2.2/HLK75D/eng.root.20120103.135117:eng/test-keys'
I/DEBUG ( 966): pid: 1092, tid: 1092 >>> com.android.systemui <<<
I/DEBUG ( 966): signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault
addr 81523000
I/DEBUG ( 966): eax 00000000 ebx 00000c80 ecx 0000003f edx
00000000
I/DEBUG ( 966): esi 0000002e edi 81523000
I/DEBUG ( 966): xcs 00000073 xds 0000007b xes 0000007b xfs
00000000 xss 0000007b
I/DEBUG ( 966): eip 801162e7 ebp bfc964f0 esp bfc964c8 flags
00010202

I'm rather lost at this point, anybody has any suggestions ?

Viorel Dehelean

unread,
Jan 8, 2012, 10:20:07 AM1/8/12
to Android-x86
Ok, so for all you people trying to get GMA950 OpenGL, here's what i
did to get it working:

First of all, some background on my board ... it is a Commell LE374
board (http://www.commell.com.tw/Product/SBC/LE-374.htm) ... nice
small board.
This board however, offers CRT, DVI, LVDS, SVIDEO output.

Now, i remeber lots of threads with people complaining that after
enabling BOARD_USES_I915C := true they got no video after booting.
I didn't get either, what i did however is to use BOARD_GPU_DRIVERS =
i915 on my BoardConfig.mk and produce an iso

That didnt do much, in terms of the fact that i915 driver gets built
but not loaded. Perhaps the autodetect script doesnt work very well
(how do i edit it tho ??)

All things considered i tried the manual way. I edited the debug mode
grub entry and added the following:

video="LVDS-1:d"

What's that mean, it means that firstly, LVDS interface gets turned
off in the GMA, for some reasons, the GRALLOC always used that
connector (how to force it not to ??), resulting in the following
output (or something similar):

I/GRALLOC-KMS( 913): there is one single mode on connector 0x5 <-
which always was 800x600

with LVDS turned off, i get:

I/GRALLOC-KMS( 913): there are 22 modes on connector 0x9
I/GRALLOC-KMS( 913): 1920x1080
I/GRALLOC-KMS( 913): 1600x1200
I/GRALLOC-KMS( 913): 1680x1050
I/GRALLOC-KMS( 913): 1280x1024
I/GRALLOC-KMS( 913): 1280x1024
I/GRALLOC-KMS( 913): 1440x900
I/GRALLOC-KMS( 913): 1280x960
I/GRALLOC-KMS( 913): 1280x800
I/GRALLOC-KMS( 913): 1152x864
I/GRALLOC-KMS( 913): 1024x768
I/GRALLOC-KMS( 913): 1024x768
I/GRALLOC-KMS( 913): 1024x768
I/GRALLOC-KMS( 913): 832x624
I/GRALLOC-KMS( 913): 800x600
I/GRALLOC-KMS( 913): 800x600
I/GRALLOC-KMS( 913): 800x600
I/GRALLOC-KMS( 913): 800x600
I/GRALLOC-KMS( 913): 640x480
I/GRALLOC-KMS( 913): 640x480
I/GRALLOC-KMS( 913): 640x480
I/GRALLOC-KMS( 913): 640x480
I/GRALLOC-KMS( 913): 720x400
I/GRALLOC-KMS( 913): the best mode is 1920x1080
D/GRALLOC-KMS( 913): will use copy for fb posting
I/GRALLOC-MOD( 913): mode.hdisplay 1920
I/GRALLOC-MOD( 913): mode.vdisplay 1080
I/GRALLOC-MOD( 913): mode.vrefresh 60.000000
I/GRALLOC-MOD( 913): format 0x5
I/GRALLOC-MOD( 913): xdpi 93.000000
I/GRALLOC-MOD( 913): ydpi 85.000000

Hence it selects 1920x1080 by default.

After turning off the LVDS, the working connector seems to be the CRT
connector, and after booting, OpenGL acceleration is available to
Android.
If you want to turn off VGA connector, you can also add
video="VGA-1:d" to the kernel parameter

Saying all that, the question remains, how can i use a different
resolution other than 1920x1080 where OpenGL performance is rather
poor on the GMA950 ... i have tried using video="1280x800" or whatever
in the kernel command line, to no effect.

Maciej Jablonski

unread,
Feb 24, 2012, 6:38:47 AM2/24/12
to andro...@googlegroups.com
Certainly, you can change the resolution from the shell (ICS), try

setprop debug.drm.mode 800x600

or

setprop debug.drm.mode 800x600@32

and then to restart UI and make change take effect:

killall surfaceflinger



For permanent on boot solution I think you need to add
the same line to the init.rc file somewhere before  'class_start default'.

Not sure if you can make debug.drm.mode set from kernel commandline.


Reply all
Reply to author
Forward
0 new messages