• After 15+ years, we've made a big change: Android Forums is now Early Bird Club. Learn more here.

Root The road to Android ICS 4.0 on the Triumph

Well, I originally thought that HW acceleration (one of the most anticipated features of ICS) was working. It turns out, it was only partially working. I realized that Live Wallpapers was not working in the last build I tried (notice in the image above it's not the default LWP from ICS). However, after many hours of wrestling with getting HWA working, I think I've managed to finally stablize CM9. After this commit: https://github.com/ikarosdev/android_frameworks_base/commit/fc496c0607d0d2863ff9587019e890ab806ea49d and a flurry of changes on my part, I was greeted with this beautiful sight when I booted my latest build (the badass default 'Phasebeam' LWP):

device-2011-12-07-120721.png


There's only one problem. I have to completely disable all window and transition animations (both of which cause ghosting problems). While it's a subtle change, it takes away from the overall feeling of the ROM. This is something I'll be looking into. Furthermore, we're victim to this unavoidable problem:

Code:
E/Adreno200-EGL(  452): egliSwapWindowSurface: unable to dequeue native buffer
E/Adreno200-EGL(  452): egliSwapWindowSurface: unable to dequeue native buffer
E/Adreno200-EGL(  452): egliSwapWindowSurface: unable to dequeue native buffer
E/Adreno200-EGL(  452): egliSwapWindowSurface: unable to dequeue native buffer
E/Adreno200-EGL(  452): egliSwapWindowSurface: unable to dequeue native buffer
E/Adreno200-EGL(  452): egliSwapWindowSurface: unable to dequeue native buffer
E/Adreno200-EGL(  452): egliSwapWindowSurface: unable to dequeue native buffer
E/Adreno200-EGL(  452): egliSwapWindowSurface: unable to dequeue native buffer
E/Adreno200-EGL(  452): egliSwapWindowSurface: unable to dequeue native buffer
E/Adreno200-EGL(  452): egliSwapWindowSurface: unable to dequeue native buffer
E/Adreno200-EGL(  452): egliSwapWindowSurface: unable to dequeue native buffer
E/Adreno200-EGL(  452): egliSwapWindowSurface: unable to dequeue native buffer
E/Adreno200-EGL(  452): egliSwapWindowSurface: unable to dequeue native buffer
E/Adreno200-EGL(  452): egliSwapWindowSurface: unable to dequeue native buffer
E/Adreno200-EGL(  452): egliSwapWindowSurface: unable to dequeue native buffer
E/Adreno200-EGL(  452): egliSwapWindowSurface: unable to dequeue native buffer
E/Adreno200-EGL(  452): egliSwapWindowSurface: unable to dequeue native buffer
E/Adreno200-EGL(  452): egliSwapWindowSurface: unable to dequeue native buffer
This, ladies and gentlemen, is why closed-source software sucks big, hairy donkey balls. Essentially, the EGL blobs (drivers) for the Adreno 200 GPU we have are too old for ICS. Surprisingly, even the 2.3 EGL blobs kanged from the Cherry 2.3 build don't work. (Well, they work, but obviously the issue is there). After a quick Google, it would appear that I'm not alone in my frustration: https://developer.qualcomm.com/forum/qdevnet-forums/graphics-optimization-adreno%E2%84%A2/8081

Hopefully, at some point Qualcomm will be generous and release updated EGL drivers that are fully compatible with ICS. Personally, I'd like to see them release the source code. What if Android 4.2 brings another major change to HWA on the UI and then we're screwed again? ATM, what we have works. It's not perfect, but it gets the job done. My hope is that the CM team will pull through and produce their usual brand of miracles. One thing is for sure, there's a boatload of msm7x30 devices (most of which use the Adreno 200 GPU). I doubt this issue will go unresolved.

Over the last week or so, I've been pushing changes the CM9 source like crazy. It is my understanding that the CM9 source won't even build (for msm7x30) without the changes I and others have made. It's safe to say that we're all running around like chickens with our heads cut off. It seems everybody is trying to make sense of all the the major changes. Hell, even a prominent member of the CM team is wondering where I got a patch that has seemingly vanished from upstream (lol): https://github.com/ikarosdev/androi...99952179edade2cfea1256bddae08d9bee3b#comments

When things settle down, I'll update my "build cyanogenmod" thread so you guys can try building CM9. ATM, it's really just a jumbled mess.

P.S. I would make a video of ICS running on the Triumph, but I don't have a camera. Yeah, I know, it sucks.
 
Upvote 0
This, ladies and gentlemen, is why closed-source software sucks big, hairy donkey balls. Essentially, the EGL blobs (drivers) for the Adreno 200 GPU we have are too old for ICS. Surprisingly, even the 2.3 EGL blobs kanged from the Cherry 2.3 build don't work. (Well, they work, but obviously the issue is there). After a quick Google, it would appear that I'm not alone in my frustration: https://developer.qualcomm.com/forum/qdevnet-forums/graphics-optimization-adreno%E2%84%A2/8081

Hopefully, at some point Qualcomm will be generous and release updated EGL drivers that are fully compatible with ICS. Personally, I'd like to see them release the source code. What if Android 4.2 brings another major change to HWA on the UI and then we're screwed again? ATM, what we have works. It's not perfect, but it gets the job done. My hope is that the CM team will pull through and produce their usual brand of miracles. One thing is for sure, there's a boatload of msm7x30 devices (most of which use the Adreno 200 GPU). I doubt this issue will go unresolved.


If the desktop linux world is any indication, proprietary drivers source code will never be released to the public. If the companies are nice enough (or we make enough noise), they'll release new binary versions to the public, otherwise the most likely scenario is we'll have to snatch them from the latest released device.
 
Upvote 0

If the desktop linux world is any indication, proprietary drivers source code will never be released to the public. If the companies are nice enough (or we make enough noise), they'll release new binary versions to the public, otherwise the most likely scenario is we'll have to snatch them from the latest released device.

Hopefully. Engadget, in their typical piss-poor fashion, has compiled a list of devices that are confirmed for getting an ICS update: Which devices will get Ice Cream Sandwich? -- Engadget

Unfortunately, I don't see any msm7x30 type devices on there. There's some rumors floating around that some mid-level second-gen Snapdragon phones may see an update, but I haven't seen anything concrete.
 
Upvote 0
Hopefully. Engadget, in their typical piss-poor fashion, has compiled a list of devices that are confirmed for getting an ICS update: Which devices will get Ice Cream Sandwich? -- Engadget

Unfortunately, I don't see any msm7x30 type devices on there. There's some rumors floating around that some mid-level second-gen Snapdragon phones may see an update, but I haven't seen anything concrete.


Considering this phone is brought to us with 2.2, I don't see their being an actual ICS update for it.

On that note there is huge rumors that they are slowing production on the Triumph. That means they are considering discontinuing it. I cannot say for sure if they are yet but it's definitely a possibility.

They have also considered dropping the BB Style from Boost Mobile. I suppose maybe this production cost VS retail sales cost issue. Not sure though.

P.S I laughed on your term "Blobs" Isaac. The way you phrase things is so unique. Thanks for cheering my day up. =]
 
Upvote 0
Hay Isaac,


I know this would be a long shot but figured it would not hurt to ask. The company I work for manufactures portable diagnostic tools for HVAC and energy management systems. We are currently using a Windows mobile based Blue-bird Pidion PDA and needed to make a few modifications and was given access to a decent amount of source from what I have been told (Long story but we originally used Palm to collect data and essentially ran Palm software on windows Mobil through an emulator and had issues with the Palm emulator and some drivers, think the emulator was called styletap). The Pidion PDA we are using will now be using Android and not windows mobile so our software team is in the process of porting our software over. The question I have before asking for favors around the office is would it be possible to get companies to give up the source for the drivers you need if they think that my company could end up making a large purchase of these parts to be integrated into our hardware. I don’t directly work in this department and am not sure how these things work but if this is something that is conceivably possible I could probably have someone in the correct department make a few calls.
 
Upvote 0
P.S I laughed on your term "Blobs" Isaac. The way you phrase things is so unique. Thanks for cheering my day up. =]

Binary blob - Wikipedia, the free encyclopedia

Hay Isaac,

I know this would be a long shot but figured it would not hurt to ask. The company I work for manufactures portable diagnostic tools for HVAC and energy management systems. We are currently using a Windows mobile based Blue-bird Pidion PDA and needed to make a few modifications and was given access to a decent amount of source from what I have been told (Long story but we originally used Palm to collect data and essentially ran Palm software on windows Mobil through an emulator and had issues with the Palm emulator and some drivers, think the emulator was called styletap). The Pidion PDA we are using will now be using Android and not windows mobile so our software team is in the process of porting our software over. The question I have before asking for favors around the office is would it be possible to get companies to give up the source for the drivers you need if they think that my company could end up making a large purchase of these parts to be integrated into our hardware. I don
 
  • Like
Reactions: Chairshot215
Upvote 0
Hopefully. Engadget, in their typical piss-poor fashion, has compiled a list of devices that are confirmed for getting an ICS update: Which devices will get Ice Cream Sandwich? -- Engadget

Unfortunately, I don't see any msm7x30 type devices on there. There's some rumors floating around that some mid-level second-gen Snapdragon phones may see an update, but I haven't seen anything concrete.

I would think that the HTC Thunderbolt would get the update. But then again, I could be very very wrong.
 
Upvote 0
This, ladies and gentlemen, is why closed-source software sucks big, hairy donkey balls. Essentially, the EGL blobs (drivers) for the Adreno 200 GPU we have are too old for ICS. Surprisingly, even the 2.3 EGL blobs kanged from the Cherry 2.3 build don't work. (Well, they work, but obviously the issue is there). After a quick Google, it would appear that I'm not alone in my frustration: https://developer.qualcomm.com/forum/qdevnet-forums/graphics-optimization-adreno™/8081

Hopefully, at some point Qualcomm will be generous and release updated EGL drivers that are fully compatible with ICS. Personally, I'd like to see them release the source code. What if Android 4.2 brings another major change to HWA on the UI and then we're screwed again? ATM, what we have works. It's not perfect, but it gets the job done. My hope is that the CM team will pull through and produce their usual brand of miracles. One thing is for sure, there's a boatload of msm7x30 devices (most of which use the Adreno 200 GPU). I doubt this issue will go unresolved.​

I thought we had the adreno 205? That isn't the case?
 
Upvote 0
[/LEFT]

I thought we had the adreno 205? That isn't the case?

Yea i'm pretty sure we have the adreno 205 as well as a msm8x55 SoC not msm7x30.

Yes. We do have the Adreno 205, and we have the MSM8655 chipset.

(As per Wikipedia, Motorola fact sheet, ect.)

Here are the difference(s) between the two (200 and 205)

  • Adreno 200 (AMD Z430) inside the QSD8x50 (1 GHz) and MSM7x27 (600 MHz A11+L2 cache). It offers a programmable function pipeline and streaming textures with support for OpenGL ES 2.0, OpenGL ES 1.1, OpenVG 1.1, EGL 1.3, Direct3D Mobile, SVGT 1.2 and DirectDraw.
  • Adreno 205 inside the QSD8x50A (1.3 GHz), MSM7x30 (800 MHz+L2 cache), MSM8x55 (1 GHz+L2 cache). Its improvements include Hardware-accelerated SVG and Adobe Flash and better shader-performance than the Adreno 200. It supports OpenGL ES 2.0, OpenGL ES 1.1, OpenVG 1.1, EGL 1.3, Direct3D Mobile, SVGT 1.2, Direct Draw and GDI.

I could be wrong, but I believe the two drivers are similar.
 
Upvote 0
Binary blob - Wikipedia, the free encyclopedia



Speaking from working in a software company, I can tell you that it is possible, but the legal department will want to look over the request, and you may have to sign NDA (Non-Disclosure Agreements).

Have had to sign a few Non-Disclosure Agreements in the past even as a tester. A few years ago we integrated our diagnostic [FONT=&quot]algorithm[/FONT] into Bank of Americas EMS system and had to agree in the Disclosure that if I leave my current place of employment I can’t take another job in the same field for 3 years. Was well compensated for agreeing to sign that particular agreement. Same thing with Target, was given access to their EMS to do economizer tests. Target thing was nuts as the password to remote into the system changes every 5 minutes. I was given a key-chain that displays the current password and updates with the new password every five minutes. I guess to keep disgruntled employees from logging in and doing things like turning out the lights or cranking up the heat in the stores. Did not think drivers would be under the same type of lock and key, still going to try and give it a go, can’t hurt.
 
  • Like
Reactions: iSnow
Upvote 0
Yes. We do have the Adreno 205, and we have the MSM8655 chipset.

(As per Wikipedia, Motorola fact sheet, ect.)

Here are the difference(s) between the two (200 and 205)

  • Adreno 200 (AMD Z430) inside the QSD8x50 (1 GHz) and MSM7x27 (600 MHz A11+L2 cache). It offers a programmable function pipeline and streaming textures with support for OpenGL ES 2.0, OpenGL ES 1.1, OpenVG 1.1, EGL 1.3, Direct3D Mobile, SVGT 1.2 and DirectDraw.
  • Adreno 205 inside the QSD8x50A (1.3 GHz), MSM7x30 (800 MHz+L2 cache), MSM8x55 (1 GHz+L2 cache). Its improvements include Hardware-accelerated SVG and Adobe Flash and better shader-performance than the Adreno 200. It supports OpenGL ES 2.0, OpenGL ES 1.1, OpenVG 1.1, EGL 1.3, Direct3D Mobile, SVGT 1.2, Direct Draw and GDI.

I could be wrong, but I believe the two drivers are similar.

The HTC EVO Design 4G is officially getting ICS according to Engadget. It uses the same GPU and MSM8655 chipset as the Triumph. That's good news right?
 
Upvote 0
The HTC EVO Design 4G is officially getting ICS according to Engadget. It uses the same GPU and MSM8655 chipset as the Triumph. That's good news right?

Nice find, but because that's a midlevel phone on post-paid, it likely doesn't get a lot of attention (Why wouldn't someone pay $100 more on a post-paid 2-yr $2000+ contract & get a higher-end phone). Can't find any active developers for it, and even on AC forums, nobody's even able to provide a system dump.
 
Upvote 0
I'm using the generic terminology used for the conditional directives in the CM source code.

A quick perusal of our BoardConfig will show you what I mean: https://github.com/ikarosdev/android_device_motorola_triumph/blob/ics/BoardConfig.mk

For example:

Code:
TARGET_BOARD_PLATFORM := msm7x30
and
Code:
TARGET_BOARD_PLATFORM_GPU := qcom-adreno200
Those build defines dictate what specific pieces need to be built for that particular platform. Yes, the Triumph is a MSM8x55 SoC (S2 Snapdragon), but the design is similar to the MSM7x30. It's just capable of faster clock rates and has a larger cache. However, from a code perspective, it doesn't make much sense to try and name everything with such specificity. It's easier to use one name for all types with a similar design.

As for the GPU, yes, since the Triumph comes with second-gen Snapdragon, it uses the Adreno 205. The EGL blobs, for both the Adreno 200 and 205, use the same naming scheme (for example, libEGL_adreno200.so). If there was a separate set of drivers for each GPU type, it would be difficult to determine how they differed. My guess is the driver blobs work for all Adreno 2XX types.
 
Upvote 0
Do all the phones that have the MSM8x55 SoC use the same GPU drivers? If so the MyTouch 4G uses a MSM8x55 SoC and it currently has a ICS rom in beta that was built from CM's source. The rom currently has 3D games and 3d acceleration working too. Would checking out whatever GPU driver they're using help with development for ICS on the Triumph?
 
Upvote 0
I finally got all the capacitive keys working. The 'Home' key is finally operational and allows me to check out this new feature of ICS:

device-2011-12-08-221546.png


The new multi-tasking screen is really nice. It's dynamic, so the image preview updates when you move in and out of applications. It's a subtle, but a very nice touch. If you want to remove an application from the list, simply swipe the app from left to right and it'll slide off. If you long-press on the app, an options menu will appear allowing you to enter the app info. From there you can force stop a misbehaving app, uninstall it, move it to the SD card, etc. I believe Septembersrain was curious about this feature and I wasn't able to show it to her without getting the Home key working first. It wasn't difficult to fix, but it was slightly tricky to track down the actual problem.

I'm currently working on getting RIL and WIFI operational. WIFI will require a good amount of work to get it operational. However, RIL, which was a pain in the ass on CM7, should be easier to fix thanks to TG's RIL patch.

EDIT: It would seem the SEMC phones will be getting an official ICS update (Xperia Play, Arc, etc.). Should the SEMC series receive an official ICS update, I'll just kang the newer EGL blobs from that. I believe the Xperia Play is a MSM8x55 device.
 
Upvote 0

BEST TECH IN 2023

We've been tracking upcoming products and ranking the best tech since 2007. Thanks for trusting our opinion: we get rewarded through affiliate links that earn us a commission and we invite you to learn more about us.

Smartphones