Android-x86 Status Update - X Window System

2y ago
27 Views
2 Downloads
3.34 MB
53 Pages
Last View : 26d ago
Last Download : 3m ago
Upload by : Hayden Brunner
Transcription

26-28 Sept. - A CoruñaAndroid-x86 status updatefrom lead developer Chih-Wei HuangGraphics stack evolutionandroid-x86.orgpresented by Mauro Rossi (maurossi)

Agenda - Part IAndroid-x86 status update Android-x86 project origins Android-x86 as seen in analytics Porting proceedings How to contribute to add new supported Hardware Stable and development release status Future Plansandroid-x86.org26-28 Sept. - A Coruña

Android-x86: what is it?26-28 Sept. - A CoruñaIt is an Android Board Support Package*For generic x86 platforms, including Desktop, LaptopsEffective Desktop OS alternative, with “Mouse Click as a Touch”Completely Open Source and tracked as Linux OS in DistroWatchStarted in 2009 by Chih-Wei Huang and Yi Sun (beyounn)*https://en.wikipedia.org/wiki/Board support packageandroid-x86.org

Android-x86 in analytics (1/2)26-28 Sept. - A Coruña3 milion downloads reached and users still growingandroid-x86.org

Android-x86 in analytics (2/2)android-x86.org26-28 Sept. - A Coruña

Porting proceedings26-28 Sept. - A Coruña Prepare the codebase manifest xml AOSP git projects Modified AOSP git projects device/generic/x86 device/generic/common (BoardConfig.mk, init.sh) frameworks/base (SurfaceFlinger) hardware/libhardware{, *} system/core kernel Android-x86 git projects bootable/newinstaller external/drm gralloc external/libdrm (update versions) external/mesa (updated versions) external/llvm (updated versions)android-x86.orgChih-Wei Wang

Our development cycle“Agile by necessity”Apply android-x86 patches (git rebase) to AOSPTry to build and fix compiling errorsTry to boot, identify and fix problems Display is one the most critical aspectsandroid-x86.org26-28 Sept. - A Coruña

Android-x86 and CI/CD26-28 Sept. - A CoruñaMostly manual/visual testingAndroid CTS for EGL/GLESWe need effortless CI toolsfor Build, Boot and GUI testsMost probably never,let’s start from CIandroid-x86.org

Overview of /etc/init.sh26-28 Sept. - A CoruñaKey part of android-x86 runtime drivers configurationBased on sh script, with specialized init HAL functionsAdding new hardware support requires: linux kernel support (pre-requisite) change init hal * - e.g. init hal bluetooth() for BluetoothPatches from community are welcome to extend HW supportandroid-x86.org

nougat-x86 features26-28 Sept. - A Coruña Android 7.1.2 r36 based 32-bit and 64-bit systems support Kernel 4.9, KMS enabled 3D Hardware acceleration (Intel/AMD/Nvidia graphics chipsets) Live CD & hard disk installation, Auto Update feature Hybrid iso image and EFI image Mouse, Wifi, Ethernet, Audio, Bluetooth and Sensors Drivers Auto-detect at init Virtual Machine installation Qemu, Virtualbox and VMware Player supportedandroid-x86.org

oreo-x86 features26-28 Sept. - A Coruña Android 8.1.0 r46 based 32-bit and 64-bit systems support Kernel 4.17 wip, KMS enabled 3D Hardware acceleration (Intel/AMD/Nvidia graphics chipsets), HWC wip, Vulkan wip Live CD & Hard Disk installation, Auto Update feature Hybrid iso image and EFI image Mouse, Wifi, Ethernet, Audio, Bluetooth and Sensors Drivers Auto-detect at init Virtual Machine installation supported Qemu, Virtualbox and VMware Player Multimedia: Hardware accelerated codecs, HDMI audio LineageOS integrationandroid-x86.org

Android-x86 porting status26-28 Sept. - A g soonHW AccelerationOKOK*Starting soonAudioOKOK*Starting soonWifiOKOK*Starting soonEthernetOKOKStarting soonBluetoothOKOK*Starting soonSensorsOKOKStarting soonCameraOKOKStarting soonTouchscreenOKOKStarting soonBacklightOKOKStarting soonSuspend/ResumeOKOKStarting soonandroid-x86.org*community is asking for additional HW support 3D, Audio, Wifi, Bluetooth

Future plans26-28 Sept. - A CoruñaEmbrace the CI culture, one step at a timeRelease HWC Vulkan enabled iso (atomic & working drivers only)Improve hardware codec support (NV12, YV12)Porting Android P/9.0 release to pie-x86android-x86.org

Developers/contributors:26-28 Sept. - A CoruñaMany thanks to contributors to android-x86 and devs ML:Chih-Wei Huang - codebaseJaap Jan Meijer - cyanogenmod branches, LineageOS integrationJon West - bliss-x86 developer, contributing to pie-x86Michael Goffioul - multimedia codec acceleration)Paulo Sergio Tartaglia - nouveau and radeonsi first build and testingMauro Rossi - android-x86 mesa lifecycle, kernel RC forward-porting and testingEmil Velikov - mesa release manager, supporting android-x86 developers Mailing ListRob Herring - gbm gralloc, virgl; Professor Chen - virglRobert Foss - drm hwcomposer maintainerTapani Pälli - providing insights about android-ia/Intel patchesTomasz Figa - prime fd fixes in mesa egl/androidQiang Yu - help with amdgpu Alex Deucher guidance and review of RGBA patchesJoin here: 6-develandroid-x86.org

Call for enthusiasts26-28 Sept. - A CoruñaIdeal platform for HW not supported by new Operating SystemsIn many cases Games & Controllers work Out-of-the-BoxAnybody with linux experience and passion can contribute,for example with improvements to alsa audio configuration,or to add support for touch screens, x86 tablet sensors, keybuttonsFor enthusiasts and supporters, come visit us -x86android-x86.org

End of Part Iandroid-x86.org26-28 Sept.Sept. -- AA CoruñaCoruña26-28For any question: ML and Forum

Agenda - Part II26-28 Sept. - A CoruñaGraphics stack evolution Overview of OSS graphic stack in android-x86 Legacy drm Gralloc: supported HW drm HWComposer gbm Gralloc HAL: test results AMDGPU support in android-x86 Vulkan HAL: anv, radv build integration and testing Overview of outstanding work required/Next StepsLive Demo with Vulkan in oreo-x86 with HWC1android-x86.orgMauro Rossi

Android-x86 Legacy Graphic stackandroid-x86.org26-28 Sept. - A Coruña

Legacy vs HWC referenceandroid-x86.org26-28 Sept. - A Coruña

OSS Android Graphic stacksandroid-x86.org26-28 Sept. - A Coruña

OSS Gralloc HALs capabilitiesGrallocHALGrallocAPI26-28 Sept. - A CoruñaGEM /flink namesprime fdbinderizationNdrm gralloc0Yuncompleteuntestedgbm gralloc0N/AYYminigbm0, 1N/AYYandroid-x86.org

Legacy drm Gralloc HW support26-28 Sept. - A CoruñaSupported GPU/vGPU drivers [Mesa changes] Intel (i915, i965) [null pointer guards to avoid Playstore crashes] AMD (r300, r600, radeonsi, amdgpu) [allow non dma texture images] Nvidia (nouveau) [mutex locking patches required] Vmware (vmwgfx) QEMU (virgl)Not supported Intel Atom with PowerVR IGP (no open source driver)SwitfShader used as fallback for unsupported HWandroid-x86.org

Legacy drm Gralloc: activities26-28 Sept. - A CoruñaContributions to drm Gralloc codebase: BGRA pixel format for chipsets lacking RGBA formatNouveau backend: support and testing for Kepler, Maxwell, PascalPipe backend: testing with amdgpu (SI, CIK, VI, AI)Pipe backend: fix gralloc sw usage flags handling (linear bo)Pipe backend: support changes in Mesa 18.2 gallium pipe/winsysMesa 18.2: fixes to egl/android to drm gralloc pathMesa egl/android periodic testing to verify no regression in drm Grallocandroid-x86.org

drm HWComposer HAL26-28 Sept. - A Coruñadrm HWComposer gbm Gralloc path enablers:atomic display framework (driver dependent)explicit fencing new sync API (Gustavo Padovan - kernel 4.10)drm hwcomposer (Sean Paul, Zach Reizner and Robert Foss)gbm gralloc - prime fd and “binderization” (Rob Herring)gralloc handle struct harmonized in libdrm (Rob Herring & Robert Foss) mesa support for dma-bufs prime fd in egl/android (Tomasz Figa) android-x86.org

drm HWComposer HAL26-28 Sept. - A Coruña[Placeholder for multiple slides on HWC1, HWC2]First build resultsnouveau, amdgpu (amd dc):black screen and top left white cursori965:bootanimation crash-loopandroid-x86.org

drm HWComposer HAL26-28 Sept. - A CoruñaE hwc-drm-device: Could not find a suitable encoder/crtc for display 2E hwc-drm-device: Failed CreateDisplayPipe 56 with -19E hwcomposer-drm: Can't initialize Drm object -19inspired by Jim Bish commit in android-ia branchandroid-x86.org

drm HWComposer HAL26-28 Sept. - A Coruña--------- beginning of crash. F libc: Fatal signal 11 (SIGSEGV), code 1, . in (surfaceflinger). F DEBUG: *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***. F DEBUG: Revision: '0'. F DEBUG: ABI: 'x86 64'. F DEBUG: pid: 2853, tid: 2853, name: /system/bin/surfaceflinger . F DEBUG: signal 11 (SIGSEGV), code 1 (SEGV MAPERR), fault addr 0x8. F DEBUG: Cause: null pointer dereference. F DEBUG:. F DEBUG: backtrace:. F DEBUG:#00 pc 000000000001ebf0 \/system/vendor/lib64/hw/hwcomposer.drm.so (android::DrmEncoder::crtc() const)--------- addr2line outputaddr2line -Cfe 0000000001ebf0android::DrmEncoder::crtc() constexternal/drm hwcomposer/drmencoder.cpp:39 line is [ return crtc ;]android-x86.org

drm HWComposer HAL26-28 Sept. - A CoruñaEnumerates displaysRegardless of their stateFirst connector becamealways the primaryRemovedandroid-x86.org

drm HWComposer HAL26-28 Sept. - A CoruñaPossible explanation from Android source documentation of HWC It is assumed that there is exactly one primary display; that is, that there is onephysical display that will be hotplugged immediately during the initialization In addition to the primary display, exactly one external display may be hotpluggedduring normal operation of the device.(Not yet implemented in drm hwc)android-x86.org

drm HWComposer: issuesnouveau: Google Play crash at Apps search with nouveau Cursor tiling artifacts (buffer stride issues) Gralloc Usage Read/Write often swap buffer issues (No text)amdgpu: Gralloc Usage Read/Write often swap buffer issues (No text) Synchronization issues GUI opacity issues/Shadowing between layersintel: EGL swap buffer with damage causes SIGSEGV MAPERR Lack of RGBA 8888 in Primary Planes for older HW Gen Cursor subject to ordering problem with HWC2 on Skylakeandroid-x86.org26-28 Sept. - A Coruña

drm HWComposer: current status26-28 Sept. - A CoruñaStatus for HW supported with drm Gralloc: Intel booting only specific gen (having RGBA support in Primary Planes) AMD booting on GCN 2nd gen and later (Atomic required) Nvidia booting but has stability issues (GUI restart, GPU lockup)Status for vGPU supported with drm Gralloc: vmwgfx booting with HWC1, but shows black GUI/no icons virgl working with HWC1android-x86.org

AMDGPU support in android-x8626-28 Sept. - A Coruña[Placeholder for graphical introduction for AMDGPU/LLVM] AMDGPU drm Gralloc path AMDGPU LLVM target support LLVM build with new Mesa versions SurfaceFlinger RGBA Pixel Format constraintandroid-x86.org

AMDGPU support in android-x8626-28 Sept. - A CoruñaAMDGPU drm Gralloc path: gralloc drm pipe backend is selected for drivers w/o ad hoc backendupdated kernel with drm/amd/amdgpu support for SI, CIK, VI, AIupdated mesa, libdrmupdated llvm with AMDGPU target supportandroid-x86.org

LLVM versions in android-x8626-28 Sept. - A lipop-x863.5AMDGPU target build fix by Paulo Sergio Travaglia (pstiglia)marshmallow-x863.7FORCE AMDGPU cflag to fix function prototypes (maurossi)nougat-x863.8AMDGPU target build ported to new llvm version (maurossi)oreo-x86 rc13.9AOSP moves to soong build AMDGPU ported (Rob Herring)oreo-x86 r1?Mesa 18.1 : LLVM 5.0 required but AOSP supports only 3.9radeonsi and amdgpu drivers support would have been lost in oreo-x86android-x86.org

LLVM new versions problem26-28 Sept. - A CoruñaPROBLEM : New LLVM version required, but AOSP supports only LLVM 3.9 Updated LLVM version does not allow to compile core AOSP projectsCollaboration started with Qiang Yu (AMD)Idea: side build libLLVM50 “for Mesa” separate shared library moduleAOSP does not allow duplicate module, variable: rename them all (!)Mesa changes: define libLLVM50 dependency and HAVE LLVM cflagModule renames can be reverted to get back “regular Android.mk” buildandroid-x86.org

LLVM new versions: soong build26-28 Sept. - A CoruñaProcedure to add soong building rules to new LLVM versions: Started from AOSP LLVM 3.9 (with soong building rules by Rob Herring)Rebase to new LLVM version 5.0Fix the build with new LLVM versionsHave ‘sed’ rename LLVM modules and build variablesOne commit to revert to “go back to normal” with documented changesSoong building rules tested on LLVM 5.0, 6.0, 7.0LLVM 7.0 added to android-x86 repoLLVM 5.0, 6.0 soong branches: https://github.com/maurossi/llvmandroid-x86.org

SurfaceFlinger RGBA pixel format26-28 Sept. - A CoruñaA recurrent problem AOSP SurfaceFlinger requires RGBA pixel format (mandatory) Workaround 10194508 (Fallback to BGRA in SurfaceFlinger) was removed GUI breakage for r300, r600, radeonsi, amdgpu, vmwgfxHow to cope with it Adding again equivalent workaround “EGL config fallback to simplerquery”(but that is not a real solution)How to solve it Adding support for RGBA/RGBX when possible in kernel drm driverandroid-x86.org

AMDGPU: HWC show stopper26-28 Sept. - A CoruñaHWC: What happens without RGBA pixel format? (AMDGPU)DIIEEE[drm:drm atomic check only [drm]] Invalid pixel format AB24 little-endianhwc-drm-display-compositor: Commit test pset failed ret -22hwc-drm-display-compositor: Commit test failed, squashing frame for display 0hwc-drm-display-compositor: Composite failed for display 0hwc-drm-two: Failed to apply the frame composition ret -22HWComposer: presentAndGetReleaseFences: failed for display 0: BadParameter (4)SurfaceFlinger HWcomposer throws error no mode set Black screenABGR Patches submitted to amd-gfx, now in drm-next(thanks to Alex Deucher for guidance and review)android-x86.org

26-28 Sept. - A Coruña Vulkan HAL build integration and initialization Vulkan anv CTS test results on Skylake GT2 Vulkan radv CTS test results on supported GCN Vulkan Apps and Games used for testing Vulkan HAL outstanding work and next stepsandroid-x86.org

Vulkan radv build for Android26-28 Sept. - A CoruñaAndroid makefiles implemented using anv as a referenceTested with dEQP-VK tests, Benchmarks, GamesSubmitted in Mesa 18.2AOSP build problem: build radv conditionally to radeonsiReleased as part of Mesa 18.2android-x86.org

Vulkan anv: BoardConfig.mk26-28 Sept. - A CoruñaAdd vulkan. (TARGET BOARD PLATFORM) packageSet ro.hardware.vulkan.* propertiesNOTE: Vulkan HAL anv package, properties and copy files in android-x86android-x86.org

Vulkan anv: init.sh26-28 Sept. - A CoruñaSet ro.hardware.vulkan propertyNOTE: init hal vulkan() is added to the sequence of init hal *() functionsandroid-x86.org

Vulkan radv: add support26-28 Sept. - A CoruñaAdd vulkan.radv new packageSet ro.hardware.vulkan propertyNOTE: init hal vulkan() is added to the sequence of init hal *() functionsandroid-x86.org

anv CTS dEQP-VK results26-28 Sept. - A CoruñaMesa 18.2.0-devel(30-Jun-2018)Very good resultsStrange issue withinterrupted tests runs?android-x86.org

anv CTS dEQP-VK failed tests26-28 Sept. - A CoruñaMesa ves many of theseandroid-x86.org

radv CTS dEQP-VK results26-28 Sept. - A CoruñaMesa 18.2.0-devel(22-Jul-2018)Very good resultsCTS Bug reported onmultiarch tests re-runsandroid-x86.org

radv CTS dEQP-VK failed tests26-28 Sept. - A CoruñaMesa *dEQP-VK.spirv.*Total83112intel/mesa anv patchescould be portedandroid-x86.org

Vulkan apps screen artifacts (1/2)26-28 Sept. - A CoruñaRoot cause identified in gbm gralloc Usage Flags for HWC bufferandroid-x86.org

Vulkan apps screen artifacts (2/2)26-28 Sept. - A CoruñaPatch is now available in gbm gralloc master (robherring github)android-x86.org

Vulkan: Android Apps and GamesAndroid AppsAndroid Games3DMark - API OverheadBreakneck3DMark - Slingshot ExtremeDirt Road TransportV1 Benchmark ProDream League SoccerGFXbench 5.0Heroes of Incredible TalesGoogle samples tutorialsOlympus RisingLunarG examplesRobloxSascha Willems examplesScore! HeroVulkanCapsViewerSky Force ReloadedDolphin emulatorToy Zombies LitePPSSPP emulatorVaingloryandroid-x86.org26-28 Sept. - A Coruña

Vulkan app issues (test cases)26-28 Sept. - A CoruñaGFXbench 5.0 Vulkan tests not executed “OUT OF MEMORY” (anv and radv)V1 Vulkan Pro display sync issues (radv on Mullins)3DMark “API Overhead” freeze (radv on GCN 2nd gen “GPU fault detected: 146”)3DMark “Slingshot Extreeme” orange/black renders (radv GCN 2nd and 4th gen)android-x86.org

HWC/Vulkan on android-x86: next steps26-28 Sept. - A CoruñaPublic release of xml manifest, to accelerate fix of pending issuesComplete testing with HWC2Official iso release when sufficiently stable/usableTesting of new drivers supporting Atomic Display FrameworkVulkan nouveau, Vulkan virgl, Vulkan SwiftShader (when available)android-x86.org

XDC 2018android-x86.orgQuestions?Thank you!26-28 Sept. - A Coruña

android-x86.org Android-x86 status update from lead developer Chih-Wei Huang . Virtualbox and VMware Player supported. 26-28 Sept. - A Coruña android-x86.org oreo-x86 features . marshmallow-x86 3.7 FORCE_AMDGPU cflag to fix function prototypes (maurossi)

Related Documents:

Android Studio IDE Android SDK tool Latest Android API Platform - Android 6.0 (Marshmallow) Latest Android API emulator system image - Android 6.0 Android Studio is multi-platform Windows, MAC, Linux Advanced GUI preview panel See what your app looks like in different devices Development environment Android Studio 9

Amazon EC2 64-bit: x86-64. SPARC 64 *15. x86-64. SPARC 64 *15. x86-64. IA64: . Sun Solaris SPARC. Sun Solaris x86-64: Sun Solaris SPARC. Sun Solaris x86-64: HP HP-UX Intel Itanium. . Technical Services may ask the customer to reproduce the issue on the Red Hat or SUSE distributions that are supported before

ADT (Android Development Tool) bundle or ! Eclipse ADT plug-in Android SDK or ! Android studio ! Download earlier SDK versions using SDK manager if needed . Android Virtual Device (AVD) ! Android emulator allows . Android App Essentials ! Layout ! View objects: UI widgets such as buttons, text box etc. .

Android Development Tools ADT A plug-in for Eclipse (see Eclipse) to develop Android applications. Android Operating system for smartphones. Android Market The Android distribution service of mobile applications. Android Lifecycle A model Android uses to handle the lifecycle of an activity in applications.

Dial91 Android Edition User Guide 1 About Dial91 Android Edition Dial91 Android Edition is a SIP- based phone for an Android phone. With Dial91 Android Edition (Dial91), you can use the Wi-Fi internet connection on your Android phone to make and receive calls without using your mobile

ANDROID QUICK START GUIDE WELCOME TO ANDROID 1 1 Welcome to Android About Android 5.0, Lollipop Android 5.0, Lollipop is the latest version of Android, the oper-ating system that powers not just phones and tablets, but also wearables, TVs, and even cars. Android 5.0 features a bold and bright new design, 3D graphics

Navigate to https://developer.android.com/studio/index.html and download Android Studio for your appropriate OS. The Android SDK should be included with Android Studio. Make sure you do not choose an Android Studio installation that excludes the Android SDK. Standard download option for Windows OS (above). Alternative

Astrology People believed that astrology (the alignment of the stars and planets) also had an influence on disease. During diagnosis, physicians would consider star charts, when a patient was born, and when they fell ill. The Church traditionally disliked the use of astrology, but began to accept it more after the