Chih-Wei Huang
2014-07-28 07:50:22 UTC
Hi Emil:
Glad to hear devs from upstream.
I cc the email to android-x86 list so more people can follow.
by Chia-I Wu (olv) who is also a mesa developer.
Unfortunately he is too busy to improve it now.
I just tried my best to maintain it to work with
the latest android. But I'm not the expert of graphics stack.
I am hardly to improve or add more features.
Some features I hope to add include
* support more gpus (at least nouveau and vmwgfx)
* support multiple monitors
I really hope developers from upstream can help us.
Conversely we are the original.
Android-x86 started from 2009 which is
the earliest date the mesa android porting began.
(see the git log in the donut-x86 branch of mesa)
drm_gralloc was introduced since 2011 for
android 2.3 (gingerbread).
On the other hand, Intel launched android-ia since 2012,
3 years later after we began the drm/mesa porting.
At first Intel copied and forked our repos
and added changes for Intel chips.
Some of the changes are useful for us
so I cherry-picked them to our repos.
(but sometimes they broke non-Intel gpus that made us unhappy)
Unfortunately the latest android-ia (kitkat porting) doesn't use
drm_gralloc and mesa anymore. They switched to closed source
binaries now.
I don't know why Intel forked from us.
Probably because they are big Intel who
despise our little project.
If I remember correctly, I've traced Intel's libpciaccess porting
and found it was broken.
Anyway, if someone can show the api is useful to us,
I'm happy to add it back.
Android is a 32-bit OS (at least before and include kitkat).
The off_t is defined to be 32-bit in bionic.
That means mmap can only handle 32-bit offset.
But we really need 64-bit offset in x86.
So a 64-bit version (using off64_t) mmap64 was introduced to bionic.
This is an api added by Intel and now formally merged
into the aosp master branch.
(before that we used a more hacking way to workaround it)
I'm not sure what way is cleaner to be upstreamed.
The simplest way I can guess is to use ifdef like
#ifdef ANDROID
// use mmap64
#else
// use mmap
#endif
The commit message was also copied from Google's
(commit 6bac41f in system/core and c2414bb in frameworks/native)
I can't explain more because I don't know why
they were removed, either.
Glad to hear devs from upstream.
I cc the email to android-x86 list so more people can follow.
Hi Chih-Wei,
I've had a go at the Android-x86 recently in terms of being capable to
correctly build (and at a later stage run) the latest graphics stack (mesa and
libdrm).
I've already cleaned up some of Paulo's mesa patches for review + just got out
the initial libdrm android build support. Then I felt "inspired" at the way
drm_gralloc is designed and build + the lack of canonical site/repo :'(
drm_gralloc was mainly designed and implementedI've had a go at the Android-x86 recently in terms of being capable to
correctly build (and at a later stage run) the latest graphics stack (mesa and
libdrm).
I've already cleaned up some of Paulo's mesa patches for review + just got out
the initial libdrm android build support. Then I felt "inspired" at the way
drm_gralloc is designed and build + the lack of canonical site/repo :'(
by Chia-I Wu (olv) who is also a mesa developer.
Unfortunately he is too busy to improve it now.
I just tried my best to maintain it to work with
the latest android. But I'm not the expert of graphics stack.
I am hardly to improve or add more features.
Some features I hope to add include
* support more gpus (at least nouveau and vmwgfx)
* support multiple monitors
I really hope developers from upstream can help us.
Would you mind if I ask you a few questions on the topic ? I've already been
into drm + mesa quite a bit so hopefully these won't be too noobish :)
- Is there any particular reason behind the "forks" of the three projects wrt
Android-ia ? AFAICS the Intel guys occasionally pull some of your patches in,
yet I feel that a lot of the work gets duplicated :\
It's incorrect to said we forked from android-ia.into drm + mesa quite a bit so hopefully these won't be too noobish :)
- Is there any particular reason behind the "forks" of the three projects wrt
Android-ia ? AFAICS the Intel guys occasionally pull some of your patches in,
yet I feel that a lot of the work gets duplicated :\
Conversely we are the original.
Android-x86 started from 2009 which is
the earliest date the mesa android porting began.
(see the git log in the donut-x86 branch of mesa)
drm_gralloc was introduced since 2011 for
android 2.3 (gingerbread).
On the other hand, Intel launched android-ia since 2012,
3 years later after we began the drm/mesa porting.
At first Intel copied and forked our repos
and added changes for Intel chips.
Some of the changes are useful for us
so I cherry-picked them to our repos.
(but sometimes they broke non-Intel gpus that made us unhappy)
Unfortunately the latest android-ia (kitkat porting) doesn't use
drm_gralloc and mesa anymore. They switched to closed source
binaries now.
I don't know why Intel forked from us.
Probably because they are big Intel who
despise our little project.
- Android-ia has libpciaccess which allows drm_intel_get_aperture_sizes
(libdrm-intel) to work as expected. Are there any plans of following their
example in Android-x86 ?
I saw no one really uses that api in android so I just disabled for simplicity.(libdrm-intel) to work as expected. Are there any plans of following their
example in Android-x86 ?
If I remember correctly, I've traced Intel's libpciaccess porting
and found it was broken.
Anyway, if someone can show the api is useful to us,
I'm happy to add it back.
- Is there a link where I can find out more about the difference in bionic's
mman vs mman64 ? I'm looking for a cleaner fix that is to land in upstream libdrm.
I think you meant mmap and mmap64?mman vs mman64 ? I'm looking for a cleaner fix that is to land in upstream libdrm.
Android is a 32-bit OS (at least before and include kitkat).
The off_t is defined to be 32-bit in bionic.
That means mmap can only handle 32-bit offset.
But we really need 64-bit offset in x86.
So a 64-bit version (using off64_t) mmap64 was introduced to bionic.
This is an api added by Intel and now formally merged
into the aosp master branch.
(before that we used a more hacking way to workaround it)
I'm not sure what way is cleaner to be upstreamed.
The simplest way I can guess is to use ifdef like
#ifdef ANDROID
// use mmap64
#else
// use mmap
#endif
- Why did you nuke the HAL 5551 and 4444 pixelformats with drm_gralloc commit
a8eb27db697d3be48936ccb0ace9fb2a7a7e3109. The commit message is a bit shy.
Because their definitions were removed from kitkat tree (by Google).a8eb27db697d3be48936ccb0ace9fb2a7a7e3109. The commit message is a bit shy.
The commit message was also copied from Google's
(commit 6bac41f in system/core and c2414bb in frameworks/native)
I can't explain more because I don't know why
they were removed, either.
Thanks for helping out
--
Chih-Wei
Android-x86 project
http://www.android-x86.org
Chih-Wei
Android-x86 project
http://www.android-x86.org