The road to Android ICS 4.0 on the Triumph

Last Updated:

  1. isaacj87

    isaacj87 Well-Known Member

    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: 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):


    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 (Text):
    1. E/Adreno200-EGL(  452): egliSwapWindowSurface: unable to dequeue native buffer
    2. E/Adreno200-EGL(  452): egliSwapWindowSurface: unable to dequeue native buffer
    3. E/Adreno200-EGL(  452): egliSwapWindowSurface: unable to dequeue native buffer
    4. E/Adreno200-EGL(  452): egliSwapWindowSurface: unable to dequeue native buffer
    5. E/Adreno200-EGL(  452): egliSwapWindowSurface: unable to dequeue native buffer
    6. E/Adreno200-EGL(  452): egliSwapWindowSurface: unable to dequeue native buffer
    7. E/Adreno200-EGL(  452): egliSwapWindowSurface: unable to dequeue native buffer
    8. E/Adreno200-EGL(  452): egliSwapWindowSurface: unable to dequeue native buffer
    9. E/Adreno200-EGL(  452): egliSwapWindowSurface: unable to dequeue native buffer
    10. E/Adreno200-EGL(  452): egliSwapWindowSurface: unable to dequeue native buffer
    11. E/Adreno200-EGL(  452): egliSwapWindowSurface: unable to dequeue native buffer
    12. E/Adreno200-EGL(  452): egliSwapWindowSurface: unable to dequeue native buffer
    13. E/Adreno200-EGL(  452): egliSwapWindowSurface: unable to dequeue native buffer
    14. E/Adreno200-EGL(  452): egliSwapWindowSurface: unable to dequeue native buffer
    15. E/Adreno200-EGL(  452): egliSwapWindowSurface: unable to dequeue native buffer
    16. E/Adreno200-EGL(  452): egliSwapWindowSurface: unable to dequeue native buffer
    17. E/Adreno200-EGL(  452): egliSwapWindowSurface: unable to dequeue native buffer
    18. 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:

    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):

    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.

  2. agentc13

    agentc13 Daleks Über Alles VIP Member

    I for one, would love if you did that when the time comes!
  3. Whyzor

    Whyzor Well-Known Member

    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.
  4. isaacj87

    isaacj87 Well-Known Member

    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.
  5. septembersrain

    septembersrain 句_句 Smurfing Awesome VIP Member

    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. =]
  6. Chairshot215

    Chairshot215 Well-Known Member Developer

    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.
  7. Whyzor

    Whyzor Well-Known Member

    Binary blob - Wikipedia, the free encyclopedia

    Chairshot215 likes this.
  8. lifeblows10

    lifeblows10 Well-Known Member

    I would think that the HTC Thunderbolt would get the update. But then again, I could be very very wrong.
  9. mantera

    mantera Well-Known Member

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

    marc12868 Well-Known Member Contributor

    Yea i'm pretty sure we have the adreno 205 as well as a msm8x55 SoC not msm7x30.
  11. use youre optimus v camera!!!!
  12. septembersrain

    septembersrain 句_句 Smurfing Awesome VIP Member

    Maybe he doesn't want to? At any rate I'm sure he had thought of that. ;-P
    iSnow likes this.
  13. lifeblows10

    lifeblows10 Well-Known Member

    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.
  14. ziggy46

    ziggy46 Well-Known Member Developer

    even the smartest people sometimes overlook the simplest of things.... :D
    iSnow likes this.
  15. Chairshot215

    Chairshot215 Well-Known Member Developer

    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.
    iSnow likes this.
  16. mixedguy

    mixedguy Active Member

    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?
  17. lifeblows10

    lifeblows10 Well-Known Member

    Only Issac knows. LOL, I'd say it is a start.
  18. tusing

    tusing Well-Known Member

    I also thought we had an MSM8x55, and but then again, I self proclaim the myself as a tech noob, until I take AP computer programming.
  19. Whyzor

    Whyzor Well-Known Member

    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.
  20. isaacj87

    isaacj87 Well-Known Member

    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:

    For example:

    Code (Text):
    1. TARGET_BOARD_PLATFORM := msm7x30
    Code (Text):
    1. 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, 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.
  21. mixedguy

    mixedguy Active Member

    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?
  22. mantera

    mantera Well-Known Member

    Ahh, thanks. That makes sense. I knew about the board, but it didn't occur to me that we also shared the same gpu driver. but it would make sense since it would be easier for Qualcomm to maintain the driver code.
  23. tusing

    tusing Well-Known Member

    Isaac will figure something out. He's a genius!
  24. isaacj87

    isaacj87 Well-Known Member

    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:


    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.
  25. eas014

    eas014 Well-Known Member

    I don't know how you do it but this is awesome !

Share This Page