Jump to content

[DEV][ROM] SlimKat with display-caf


Guest chil360

Recommended Posts

Guest chil360
For some time, I have been experimenting with ways to try and build SlimKat with display-caf instead of display-legacy.
As I, and the other devs, have said this requires major updates to parts of the kernel including ion, video/framebuffer and kgsl.
 
Why build with display-caf?
With display-caf, we would be able to use Adreno libs built for kitkat. This would allow us to use chromium webview instead of classic webview so no more white boxes! It would also, hopefully, give us better application compatibility.
If we can bring our device up to kitkat level using display-caf & kitkat adreno libs, it may also make it easier to transition to lollipop if our devices can handle it.
 
 
So, now it's time to share what have I been working on... 
 
 
1. Adreno Libs
 
Based on this discussion on the Qualcomm forum - especially the comments from Oguzhan Yigit - I am targeting the adreno libs from the Galaxy S3 (d2lte).
 
2. Kernel Updates
 
There are a number of similar(ish) devices that have undergone updates from jellybean to kitkat including updating the kernel to the latest ion, framebuffer & kgsl to build with display-caf. For my experiments, I have been working with the msm7x27a TeamHackLG kernel.
I looked back through the commit history of this kernel and tried to identify a point which most closely resembles the current state of our kernel. Then I started merging each commit one-by-one onto my chil360-kernel to end up with an experimental kernel with all of the required updates.
 
A better approach would be to start with a clean CAF base kernel e.g. kk-2.7-stable and add the Huawei code into it. I tried to do this but didn't get very far mainly because of the camera changes.
 
3. Device Tree updates
 
In order to build against display-caf with the experimental kernel a number of changes had to be made to the device tree. I have updated android_device_huawei_msm7x27a-common changing the BoardCommonConfig.mk & msm7x27a.mk to use display-caf and remove webview classic. The updated kernel also removes the need for device specific kernel headers so the include folder has been removed.
I have also modified the device tree to build against media-caf instead of media-legacy.
The audio hal in u8833 has also been modified to include linux/msm_ion.h instead of linux/ion.h. This will also be required for u8825 audio but I haven't updated this yet.
 
All of these changes have been published to 'experimental' branches of my github repos https://github.com/chil360
 
The result...
 
After a lot of work and experimenting I finally have a build that is basically working. There are still problems to sort out so this is NOT for everyday use - you have been warned!
 
What works:
  * In general the ROM works.
  * It boots successfully to the launcher.
  * The display works quite smoothly.
  * The camera works (although haven't tried recording video).
  * Chromium works and is usable with no white boxes  :D
 
What doesn't work:
  * Video playback (memory allocation errors I think)
  * ???
 
What's next...
 
At the moment I am stuck working on the video decoding problems. Hopefully after I release all of the code on github later, other devs will contribute to help fix these problems and any others that come up. Eventually I hope to merge these changes into my main SlimKat builds if we can get everything fully working.
 
Download
 
Y300   -   Copy.com
 
Changelog
 
Build 28/10/2014
  • Use CAF camera HAL instead of prebuilt - fixes video recording

Build 25/10/2014

  • Initial display-caf build
Edited by chil360
Link to comment
Share on other sites

 

What doesn't work:
  * Video playback (memory allocation errors I think)

 

Did you try to build the kernel with stock RAM (393 MB) to see if it fixes this problem?

Link to comment
Share on other sites

Guest luca020400

The ram is 385 so yes

He added more ram to video

 

From the logcat the camera recording is a kenel problem ( Memory ?? )

 

Bugs : Video playback , Black Screen and Video recording

Edited by luca020400
Link to comment
Share on other sites

Guest chil360

Ok, all of my 'experimental' branches should now be on github including one for my local manifest which should work to build the rom.

As most of this is based on TeamHackLG, I am currently using TeamHackLG/display-caf.

Link to comment
Share on other sites

The ram is 385 so yes

He added more ram to video

 

From the logcat the camera recording is a kenel problem ( Memory ?? )

 

Bugs : Video playback , Black Screen and Video recording

 

Black screen?? what do you mean?

 

Video playback and video recording maybe are caused by media-caf

Edited by fonz93
Link to comment
Share on other sites

Guest luca020400

The screen became black while using phone

 

You can try the cyanogenmod11 media-caf maybe it works

Edited by luca020400
Link to comment
Share on other sites

Guest chil360

Yes, there are still kernel problems especially for video encoding/decoding. It's difficult to diagnose - some of the problems may be on the ROM side in  media-caf or frameworks/av.

Link to comment
Share on other sites

Guest Y300-0100

Yes, there are still kernel problems especially for video encoding/decoding. It's difficult to diagnose - some of the problems may be on the ROM side in  media-caf or frameworks/av.

how about adding new codec in configs/media_codecs.xml ?

Link to comment
Share on other sites

I am 80% sure that the video recording problem it's due to media-caf, because once i tried to compile CM11 with media-caf and i got almost the same problem (it happened 4-5 months ago, so i don't remember very well)

Edited by fonz93
Link to comment
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now
×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.