generic_device
generic_device copied to clipboard
Android-9 : Linaro_arm64 (Target - VM) - SwiftShader based software rendering for VM
Android boot fails with Surfaceflinger errors .
Steps followed :
- 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;
-
__asm__ __volatile__("lock; xchgl %0,(%1)" : "=r" (ret) :"r" (target), "0" (value) : "memory" );
-
__asm__ __volatile__("lock; xchgl %w0,(%1)" : "=r" (ret) :"r" (target), "0" (value) : "memory" ); return ret; #endif }
- 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 \
-
libEGL_swiftshader \
-
libGLESv1_CM_swiftshader \
-
libGLESv2_swiftshader
PRODUCT_PROPERTY_OVERRIDES +=
ro.sf.lcd_density=$(CONFIG_DISPLAY_DPI)
${config_name}/config.mk)
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 [email protected]::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 [email protected]::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