GithubHelp home page GithubHelp logo

waydroid / android_external_mesa3d Goto Github PK

View Code? Open in Web Editor NEW
7.0 7.0 16.0 572.73 MB

Emacs Lisp 0.01% Shell 0.16% Python 2.21% Jinja 0.01% PowerShell 0.02% Makefile 0.02% Meson 0.58% C 76.55% C++ 17.35% Objective-C 0.01% GLSL 0.16% Lex 0.06% Yacc 0.27% LLVM 0.03% Assembly 1.58% Lua 0.03% XSLT 0.01% Rust 0.95%

android_external_mesa3d's Introduction

Waydroid

Waydroid uses a container-based approach to boot a full Android system on a regular GNU/Linux system like Ubuntu.

Overview

Waydroid uses Linux namespaces (user, pid, uts, net, mount, ipc) to run a full Android system in a container and provide Android applications on any GNU/Linux-based platform.

The Android system inside the container has direct access to any needed hardware.

The Android runtime environment ships with a minimal customized Android system image based on LineageOS. The image is currently based on Android 11.

Documentation

Our documentation site can be found at docs.waydro.id

Reporting bugs

If you have found an issue with Waydroid, please file a bug.

Get in Touch

If you want to get in contact with the developers please feel free to join the Waydroid groups in Matrix or Telegram.

android_external_mesa3d's People

Contributors

1ace avatar airlied avatar alyssarosenzweig avatar anholt avatar bnieuwenhuizen avatar brianpaul avatar curro avatar cwabbott0 avatar evelikov avatar freedreno-zz avatar gfxstrand avatar hakzsam avatar ianromanick avatar imirkin avatar itoral avatar jenatali avatar jrfonseca avatar kaydenl avatar krh avatar kusma avatar llandwerlin-intel avatar marekolsak avatar mattst88 avatar nhaehnle avatar olvaffe avatar pendingchaos avatar tarceri avatar versalinyaa avatar vinsonlee avatar zmike avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

android_external_mesa3d's Issues

On 23.1.x enable intel xe drivers

enable -Dintel-xe-kmd=enabled when mesa is bumped to 23.1.x will allow running on the new xe driver instead of i915, this allegedly has better vulkan preformance, but mainly people are starting to use it and swapping from I915 to XE is probably not something a user wants to do

NV12 support in libgbm

Hello, opening an issue here to continue the discussion from
waydroid/android_hardware_waydroid#44

Let me recap the context:

I'm working on enabling camera support for Waydroid on a PinephonePro which use an RK3399 SoC.
The RK3399 camera subsystem produces images in NV12 format (only partially supports other formats, NV12 is strongly preferred).

As per Android design, the Camera HAL and the gralloc HAL implementation should agree on what format HAL_PIXEL_FORMAT_IMPLEMENTATION_DEFINED has to be mapped to (see the above mentioned merge request).

The gralloc_gbm backend does the allocation using libgbm, which is provided by mesa on Waydroid and which as of today doesn't support NV12.

I investigated with upstream #dri-devel last week about this, and what I've been told is that NV12 support is not in upstream mesa because nobody actually used that, and I've been reminded that the 'g' in 'gbm' stands for 'graphic' and not 'generic' so it is probably possible to add NV12 support to mesa, but it's not that anyone really cares as RGB formats are way more common.

So here's my question(s)

  1. Is NV12/YCbCr use case supported by Waydroid ? I see this line in the gralloc implementation
    https://github.com/waydroid/android_hardware_waydroid/blob/lineage-18.1/gralloc/gralloc_gbm.cpp#L100
    which makes me think support for some kind of YUV format was needed and it has been implemented by mapping it on what's available on mesa today, with a few hacks here and there to have it working
    https://github.com/waydroid/android_hardware_waydroid/blob/lineage-18.1/gralloc/gralloc_gbm.cpp#L194

This commit actually puzzles me as well waydroid/android_hardware_waydroid@0876013
as I don't see any "mapping" there, as a value of "0" doesn't seem a valid GBM_FORMAT value.

  1. ChromiumOS, which has several supported devices on RK3399, has adopted minigbm (which waydroid ships) as their gralloc_gbm backend implementation, which (afaiu) supports allocating NV12 buffers on the Rockchip using a driver-custom ioctl()
    https://github.com/waydroid/android_external_minigbm/blob/lineage-18.1/rockchip.c#L173
    Yes, it requires out-of-tree kernel support at the moment. The reasons why that ioctl is not in the rockchip upstream DRM driver are not fully clear to me yet.

In a case like this, where using minigbm seems more appropriate for the device at hand, would it be possible to instrument the Waydroid build to pick minigbm instead of mesa as libgbm provider ?

All in all, with the current gralloc+mesa implementation, camera support using NV12 format doesn't seem possible to me...

Consider merging 0001-radeonsi-On-Aarch64-force-persistent-buffers-to-GTT.patch

Consider merging this patch to prevent possible graphical glitches on the SolidRun HoneyComb LX2K with an AMDGPU card.

0001-radeonsi-On-Aarch64-force-persistent-buffers-to-GTT-patch.txt

then mv 0001-radeonsi-On-Aarch64-force-persistent-buffers-to-GTT-patch.txt 0001-radeonsi-On-Aarch64-force-persistent-buffers-to-GTT.patch

This patch didn't make it into upstream mesa: https://gitlab.freedesktop.org/mesa/mesa/-/issues/3274

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.