Hi Mauro,
Thank you for the explanations.
The most difficult problem is currently
I don't have devices to test nouveau or radeonsi.
So I can only rely on you to test that.
2015-01-24 16:57 GMT+08:00 Mauro Rossi <
issor...@gmail.com>:
> Hi Chih-wei,
>
> here is the status of our investigation efforts in nouveau and radeonsi,
> reported for you and the developers.
>
> Enabling nouveau at this stage, even if not perfect, is relatively safe and
> will help in debugging and refine drm_gralloc_nouveau
>
>
> nouveau:
>
> After being stuck for a lot of time with the introduction of
> tr1/unordered_set in mesa,
> Paulo (thanks!) found a way to use gnustl prebuilt shared library module in
> a way that does not conflict with Android c++ ABIs
> In order to install prebuilt libgnustl_shared.so a minimal external/gnustl
> project and Android.mk was used.
Instead of using Paulo's trick, I have worked out a patch
to use the unordered_set implementation in stlport (as attached).
Basically speaking, the stlport already has the unordered_set header,
but not in the tr1/ subdir (C++11 standard?).
However, trying to instantiate it with a user-defined type (e.g., ValueRef *)
causes a lot of strange errors. I can't understand why.
Probably a bug of stlport or g++ itself.
However, instantiating a built-in type is fine.
So the patch changes to use unordered_set<void *> and adds a wrapper
template class to convert the iterators to the expected user-defined type.
It builds fine now. However, as I said, I have no device to test now.
Please test it.
> I was puzzled when I saw that this way of using GNUSTL did not require to
> adjust c++ headers order like done
libstlport.mk
> NOTE: the include of
libstlport.mk in gallium nouveau Android.mk had to be
> disabled
>
> I suppose that the module could be installed without the dedicated project
> and putting the same mk script in some existing Android*.mk, but I think is
> just some refinement.
>
> I've seen that in new kernel config nvidiafb is disabled, so ready to go.
>
> init.sh can be modified permanently to check nouveaufb and people having
> problems with that could still use Vesa mode.
Please send me a patch or at least
give me the exact name of nouveau fb.
I'll check the other items below later.
> drm_gralloc_nouveau requires some finalization because on 3D extensions we
> have some nasty freeze (GPU lock?)
> One way to trigger the freeze almost systematically is running OpenGL ES 2.0
> Demos and cycle through the demos
>
https://play.google.com/store/apps/details?id=fi.harism.effects&hl=it
>
> This should help to speed up debugging by the community because we know how
> to trigger the locks
>
> Side-effects of enabling nouveau gallium in mesa: none observed
> Current issues or gralloc: locks, occasional MMAPERR errors, some background
> artifacts, invisible mouse cursor on NV40 chipset family
>
> git: for mesa gallium nouveau the most updated is pstglia's, for drm_gralloc
> we have pstglia and of course emil's (thanks!!) that need just a comment in
> one line with sw_indicator flag,
>
> but here you can find also the latest tested commits to support multiarch
> build of drm_gralloc (to be evaluated).
>
>
https://github.com/maurossi/hardware_drm_gralloc/commits/android_x86_64
>
> the only relevant commit in my mesa-mesa git is this one, but still draft,
> for your inspiration,
> asm disabling is just a workaround, but some changes are ready like makefile
> conditions and relative modules paths.
>
>
https://github.com/maurossi/mesa-mesa/commit/8e2a25c60517e219fd8c65d99870195bd0895cca
>
>
> radeonsi:
>
> Radeonsi requires LLVM; on kitkat-x86 all attempts to build ended in some
> error due to LLVM function argument mismatch
> I guess LLVM version incompatibility o wrong declaration of version in our
> Android.mk (and maybe we miss something that may be obvious...)
>
> With lollipop-x86 the LLVM functions arguments mismatch seems disappeared,
> but we see some LLVM vs libstlport c++ conflict.
> Here my guessed guess was that Clang and LLVM are both version 3.5 with LL,
> but I may be guessing wrong.
>
> git: My last attempt with lollipop-x86 is here, but most of the credit goes
> to pstglia, I've done some porting/optimization from Makefile.am to
> Android.mk and I'm more the bug-hunter type.
> I can anyway confirm that, with conditional makefile variables, these
> changes do not break nouveau.
>
>
https://github.com/maurossi/mesa-mesa/commit/3f6cf110915af235498e8463a6f053be796e39b9
>
> NOTE: libelf sources have different paths in lollipop-x86 and kitkat-x86,
> and LLVM versions are also different