robherring / generic_device

A generic android device repository
62 stars 29 forks source link

Android-9 : Linaro_arm64 (Target - VM) - SwiftShader based software rendering for VM #29

Open vinaykumarmp opened 4 years ago

vinaykumarmp commented 4 years ago

Android boot fails with Surfaceflinger errors .

Steps followed :

  1. Modified external/swiftshader/Android.mk to build for arm64 - target. Able to build it successfully.

diff --git a/Android.mk b/Android.mk index a89cdf086..707b7b13a 100644 --- a/Android.mk +++ b/Android.mk @@ -29,7 +29,7 @@ endif endif

ifndef unsupported_build -ifeq ($(TARGET_ARCH),$(filter $(TARGET_ARCH),x86 x86_64 arm)) +ifeq ($(TARGET_ARCH),$(filter $(TARGET_ARCH),x86 x86_64 arm arm64)) include $(call all-makefiles-under,$(LOCAL_PATH)) endif -endif \ No newline at end of file +endif diff --git a/src/Common/Thread.hpp b/src/Common/Thread.hpp index 186d1bd9f..06cb5edd9 100644 --- a/src/Common/Thread.hpp +++ b/src/Common/Thread.hpp @@ -253,7 +253,7 @@ namespace sw return InterlockedExchange((volatile long*)target, (long)value);

else

                    int ret;
  1. Modified : device/linaro/generic with below changes :

    index 53fb8d1..68f6683 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,3 @@ linaro*/ db410c/ +thunderx*/ diff --git a/graphics/device.mk b/graphics/device.mk index 0151742..450c082 100644 --- a/graphics/device.mk +++ b/graphics/device.mk @@ -1,7 +1,10 @@ PRODUCT_PROPERTY_OVERRIDES := $(if $(CONFIG_SW_GRAPHICS), \ ro.kernel.qemu=1)

-PRODUCT_PACKAGES := libGLES_android +PRODUCT_PACKAGES := libGLES_android \

With qemu=1 from cmdline , android picks the swiftshader-gles path but Surfaceflinger breaks. (Also tried by avoiding drm_hwc & drm_gralloc during build but no help) .

Appreciate your inputs.

Useful logs :


10-25 13:34:55.155 1851 1851 D vndksupport: Loading /vendor/lib64/egl/libEGL_swiftshader.so from current namespace instead of sphal namespace. 10-25 13:34:55.162 1851 1851 D libEGL : loaded /vendor/lib64/egl/libEGL_swiftshader.so 10-25 13:34:55.288 1851 1851 D vndksupport: Loading /vendor/lib64/egl/libGLESv1_CM_swiftshader.so from current namespace instead of sphal namespace. 10-25 13:34:55.289 1851 1851 D libEGL : loaded /vendor/lib64/egl/libGLESv1_CM_swiftshader.so 10-25 13:34:55.407 1851 1851 D vndksupport: Loading /vendor/lib64/egl/libGLESv2_swiftshader.so from current namespace instead of sphal namespace. 10-25 13:34:55.408 1851 1851 D libEGL : loaded /vendor/lib64/egl/libGLESv2_swiftshader.so

10-25 13:34:55.541 1851 1851 I ConfigStore: android::hardware::configstore::V1_0::ISurfaceFlingerConfigs::hasHDRDisplay retrieved: 0 10-25 13:34:55.543 1851 1851 W SurfaceFlinger: no suitable EGLConfig found, trying a simpler query 10-25 13:34:55.543 1851 1851 I SurfaceFlinger: EGL information: 10-25 13:34:55.543 1851 1851 I SurfaceFlinger: vendor : Android 10-25 13:34:55.543 1851 1851 I SurfaceFlinger: version : 1.4 Android META-EGL

10-25 13:34:55.543 1851 1851 I SurfaceFlinger: Client API: OpenGL_ES 10-25 13:34:55.543 1851 1851 I SurfaceFlinger: EGLSurface: 8-8-8-8, config=0x2e 10-25 13:34:55.572 1851 1851 I SurfaceFlinger: OpenGL ES informations: 10-25 13:34:55.572 1851 1851 I SurfaceFlinger: vendor : Google Inc. 10-25 13:34:55.572 1851 1851 I SurfaceFlinger: renderer : Google SwiftShader 10-25 13:34:55.572 1851 1851 I SurfaceFlinger: version : OpenGL ES 2.0 SwiftShader 4.0.0.4

W ServiceManagement: Waited one second for android.hardware.graphics.composer@2.1::IComposer/default. Waiting another... 10-25 09:53:13.220 2002 2027 I ServiceManager: Waiting for service SurfaceFlinger... 10-25 09:53:13.632 1852 1852 W ServiceManagement: Waited one second for android.hardware.graphics.composer@2.1::IComposer/default. Waiting another... 10-25 09:53:14.221 2002 2027 I ServiceManager: Waiting for service SurfaceFlinger... 10-25 09:53:14.322 2002 2027 W ServiceManager: Service SurfaceFlinger didn't start. Returning NULL