DirectDraw capability on diamond - Touch Diamond, MDA Compact IV Themes and Apps

I'm writing a set of generic UI controls for the TD and at the moment I'm using C# with lots p/invoke Win32 API calls for gradient fills, alpha blending etc.
It works OK, and I'm spending a fair amount of time optimising for smooth appearance, although the primary goal of these controls is usability.
I haven't played with DirectShow/DirectDraw at all and just wondered what 2D capabilities are available? Is hardware alpha-blending possible? Can you draw and gradient-fill rounded rectangles quickly?
Anyone who's had any experience with this - I'd be very interested in hearing your opinions.
Thanks
Rich

Hmm
I was planning on doing this myself. I believe that D3DM has accelerated blending and gradient fills (I don't know how much of the D3D is supprted in D3DM).
Would you be planning on releasing any code/SDK? It would be nice to have something like to write apps with.

Yep - that was my plan. I used to be very tight with these things, but since spending the last couple of years playing with Linux I've decided that progress is much faster overall if people share stuff.
Can't guarantee that I'll get everything finished, but it's getting there. I've attached a few screenshots, but it's very much in the development stage.
Rich

nice
Looks good!

Related

Hope Someone Can Answer This : Why?

an iPod Touch/iPhone can play 3d games, utilise the g-sensor and run smoothly - for example racing games. Tilt the iPhone, the car turns.
Why can't our phones run these sort of games? Or is it just the case they haven't yet been produced?
From what I'm aware a Diamond is more powerful than an iPhone therefore these games "shouldn't" be a problem?
Shoot me down in flames if I'm wrong, just kinda thought there should be iPhone-esque software for these phones now.
I am right with you, i keep thinking the same thing.
Because Apple has crazy fanboys and they provided a simple infrastructure to facilitate payment and downloading (appstore). They also gimped the iphone out of the box so as to pretty much require people to sign up for the appstore if they actually want to use it, ensuring that they have the user base they need for it.
Now the iphone has several million users - how many Diamonds do you think are sold? Windows mobile itself is bigger, but the capabilities of the phones running it vary too much that profiting from making advanced games is as feasible.
I have wondered about this as well. I think the problem is 3 fold
Firstly, the Diamond has 3d and graphics performance issues for sure. Sometimes my Diamond will slow down terribly when running some simple animations. I have read that HTC are notorious for providing poor graphics drivers and this could be part of the reason.
Secondly, I actually dont think Windows Mobile is capable of doing what the iPhone UI is capable of in terms of interactive gaming.
Thirdly, Apple provide your at home developers a great business model to go out and develop great games and apps for the phone. Plus with the Appstore they know that if they develop something good, people will see it - there is only one place to get apps from - and the developer will make money.
For me, the iPhone is not the right phone, but I would love Windows Mobile and HTC to be able to do what the iPhone and Apple can do.
The iPhone has v-sync, so the 3d graphics are drawn smoothly with no tearing and sadly win mo just does not. At least that is what my mate said who is a games developer. The power is there but you just can't get it to the wheels! This just makes it fundamentally unappealing to a lot of developers.
yeah totally agree, i love the diamond, but i've been using windows mobile for years now, and each new model HAS generally got better and better. however the iPhone is just something else.. for people who aren't nerds and into mucking around iwth their phone etc, i could never recommend a windows mobile over an iPhone. its just so much more polished compared to the diamond.
i'm an AMD fan too, godamnit why do i always have to back the underdog
Yes, even though i have a diamond and have had great fun tweaking it, i still can't help but envy the iPhone users for their graphically superior games and video playback prowess .
Another explanation would be that iPhone games are developed solely for... u guessed it, iPhones! ...whereas WinMo games have to be developed to run across many different devices, with (or lack of) accelerometers, touch screens etc. Therefore, to achieve this interoperability / compatibility across the many different devices, compromises have to be made.
That said, there are still gd games for our beloved devices, my favourite being PDAMill, whom develop aesthetically pleasing games with intuitive controls, and they're cheap too.
Nudge.
So all in all, will it become possible? And what's vsync? Portable to diamonds?
I think V sync is something to do with the way images are drawn to the screen, and it is just not implemented in win mo, I don't know if it could be written into the drivers or of it is a hardware thing, but then I don't actually have a clue what I'm talking about! Can anyone confirm this?
vsync actually makes bad performance even worse since it forces the back buffer to wait until right after a screen refresh before it copies its data to the frame buffer.
it's great if the device is capable of rendering an FPS that is higher than the refresh rate, but in the diamond case it's just another fps thief
if you want games like iphone get an ipod touch. The diamond never advertised gaming as a capability. Think of it this way: The iphone is like a mac with mediocre hardware but also comes with a mid range video card. The diamond/touch pro are like PC's with raging motherboard/cpu/ram combo, but bottom entry level video card. You can get a lot done with the PC, but the fun factor lies in the mac.
Go buy virtual pool mobile, it runs great and it's very fun. Its the best pool video game ive ever seen actually.
Simple reason
The reason to me is simple: Apple cares about user experience. Just look at win mobile contacts, or explorer. Do you think this software is made for 2008-2009 hardware? Now look at iphone's ones... Seriously, Microsoft has the power to make good things for mobile users, but they released win mo 6.1 one year ago, which is mainly the same OS that existed in 2003.
Silly we when we buy pocketpc running on windows mobile.
Just to revive a dead thread for quite a good reason..
I've seen a few videos on Youtube and also a few write ups on the wonderful Tinterweb in relation to Windows Mobile devices running and successfully playing iPhone games through emulation.
Is this just simple hear-say or fake ? I've been thinking for a long time about focusing simply on making the graphical capabilities of the diamond better through customising the graphics drivers. That's the main flaw for me.
According to a few posts the graphics card has 64MB dedicated memory.. is this right?
If so, these things SHOULD be capable of running bloody good games but the drivers are just nowhere near good enough. I did hear about changing to ATI drivers - is this right? If so, where can I find the info on this cause I would like to maybe bash at hybrid-combining the drivers and modifying them a bit as to allow maybe a bit more fluid graphics. If you check one of my other posts on the Diamond, I've been complaining about split-graphics. It's really getting on my nerves as I'd rather just see a full picture move around my screen fluidly. None of this "split it up" rubbish.
Cheers
Driver dev
This seems to be a good thread with most/all of the available drivers posted.
well I have been enjoying copy + paste and fully working GPS on my Diamond ever since
now why hasn't Apple offered this so far?
I guess each company chooses their own battles
glumetu said:
well I have been enjoying copy + paste and fully working GPS on my Diamond ever since
now why hasn't Apple offered this so far?
I guess each company chooses their own battles
Click to expand...
Click to collapse
Hrrm.. In the new 3.0 SDK update for iPhone 3G and iPod Touch which will be released soon there is copy and paste + redo.. in a very stylish and functional way.
And there will be mms + almost every single function that the iPhone was lacking before + some more.. many, many new stuff for improved gaming, new OS improvements etc.
I watched the presentation on the apple website..
Shoddy_me said:
Hrrm.. In the new 3.0 SDK update for iPhone 3G and iPod Touch which will be released soon there is copy and paste + redo.. in a very stylish and functional way.
And there will be mms + almost every single function that the iPhone was lacking before + some more.. many, many new stuff for improved gaming, new OS improvements etc.
I watched the presentation on the apple website..
Click to expand...
Click to collapse
Stuff that should have been released last year. The only reason Apple is releasing it when they are is because people's 2 year contracts are starting to expire, and Apple wants to try and persuade them from leaving by finally giving them features they've been demanding from day 1.
Honestly, it doesn't surprise me in the slightest. I knew Apple would do that.
Heres my question:
Smart phones and windows mobile operating system have been around for something like, oh, 15 years now. Why is it some EMO company like Apple releases a phone (badly I might add) and it becomes THE Benchmark for mobile devices? Its just purely unbelievable to me that so many people obsess over "well the iphone can do this, and it can do that.. I want my ______ to do what the iphone does..." If you like the turd and all its glory so much, why don't you just buy one and get it over with??
the iphone is so easy to use, thats why so many people bought one. when everyone has something, it becomes the norm to judge other things by. think of the model t from ford
Model T?
Confused.com. Is that the foreign (for me) Focus? lol
Anyways, I've looked about and the ATI drivers have given me the power boost I'm happy with. However - My images are still split on the screen.
Still trying to get this fixed...

[APP] Home app "Strike Menu"

I Think its a great Applikation, so look here:
http://www.inside-handy.de/news/14601.html
look at the Video
What u Think?
what do i think..
useless, exactly as 7/8 of htc stuff, imo.
We can make better things with homescreen plus plus and mortscript, imo.
Strange use of colours. Too little data for a 4.1 inch WVGA screen. Most importantly, it lacks class, due to it's colours.
What I think?
Good idea -launcher wise. Lacks userfriendlyness when it cant display a calendar and clock simultaniously. But I dont think that colors equals less class as posted above.
I don't like it and my WAD setup is way beound that..
Go WAD! ;-)
The colors makes it the wierdest setup I have ever seen (who ever thought that looks slick?). The design is simple. It can and most likely, will be emulated by the superior wisbar advance desktop.
I did like the dialer. Hopefully a little more effort can be used in this GUI. Until then its WAD for me.
oi. this looks horrible.
not my type of display colors
They are tying to be all touchy feely a-la-Iphone. Not bad specs though. UI is alright, nothing special though when you have that much horsepower running the hardware.
UI is ok and at least customizable compared to TF3D.
But I fear they could miss improving things like start menu, system status menu...etc like HTC did. Those things are extremly useful and Toshiba should provide something similar or release an update to 6.5 short after it is available (in fact: summer for OEMs).

In search of a graphics designer

Hi everybody out there with a good hand for nice looking graphics ;-)
I started a little (now, its a bit more complex) tower defense game at least 6 months ago. Now, as it's getting colder out, i have a little bit more time (after my family) to start working further on it.
A lot of ground programming is done, as pathfinding, building, upgrading towers, with zooming in and out. Framerate is configurable. Enemies are also configurable to attack towers. Towers range, health, firepower and behaviour [shoot nearest, weakest etc. pp] is configurable (programmatically at the moment).
So, i used some tiles from other programmers (asking them before) but im not lucky with the graphics at all (and as you know, a game is getting better with it's graphics ^^). The graphics itself is 2D and i'm in need for all graphic related things, as splash screen, menu layout, playfields and of course, towers and enemies (mostly of course animated) - where tilesize should be 64 or 32.
AND of course, it's not ready made yet. It needs a lot of overhaul at the end (as game balancing, level design, difficulty level ...).
So, if anyone is interested in such a game (yeah, i know, there are a lot out there ... but maybe there are some nice ideas - improvements?) - send me a pm or reply in this thread
Id be interested in lending a hand, though it depends on exactly how much work you need. But I'd certainly be interested in hearing some more info about the style / theme you were going for, and I might be able to help out ~
splinter82 said:
Id be interested in lending a hand, though it depends on exactly how much work you need. But I'd certainly be interested in hearing some more info about the style / theme you were going for, and I might be able to help out ~
Click to expand...
Click to collapse
i need all graphics to be done. i've "borrowed" some graphics from other sites, asking the developers first, but the tilesets are not enough and i'm not really familar with graphics design (also simplest graphics )
what i need (and your imagination may have no limits) are:
- tilesets for towers
- tilesets for enemies
- playfields or "rooms"
- explosions
- projectiles
- maybe a well designed icon
format of tilesets (or single tiles) may be discussed, i prefer 32x32 or 64x64 tiles.
the style is not choosen yet. currently, style is medieval. but i really don't like it much and graphics looking not that good. style itself should not depend on implementation. as i wrote already, most of the implementation is done, graphics are changeable. so, if you're really interested, i may give you some short shots to get a picture of what's done so far.
and yes, graphics work is mostly 50% of the work ... the more eye candy an app is, the more successful.

[Review]My Adam Review

Finally my day off!
This has been a busy week at work and a lot of changes happening so quickly I haven’t had a proper chance to use my Adam as I wanted, but now I can give you a proper review of my experience so far.
First of all I want to share some information about me just so you don’t think im a biased person or working for Notion Ink.
My name is Bruno Alexandre, im 27 years old and im from Portugal, I work in a ISP and in a daily base I deal with equipments of every kind and all kind of applications.
I’m a gadget lover, I simply adore every details that a manufacturer places on a equipment and im very picky about build quality and software design, I prefer a practical design to something with a “bling” effect.
I started following the Adam back on CES 2010, Rohan ideas and vision attracted me, his way of thinking was just what I was looking for, a project that isn’t thought to the “elites” and accessible to everyone, the concept he had back then of the Adam was simple but practical and the way he just showed Slashgear a working concept, instead of just a video or something has we've seen recently on others, shown me he wasn’t there to fool anyone and he believed in it and so did I and that’s how I started to follow Notion Ink. Every update afterwards and the open communication he had with the community was something I have never seen before and I always hoped for from other companies, the project started to get even better with the first sketches of the Adam and continuous information he kept revealing about the hardware and the design behind, to a point I could not stand any more not having it and offered to pay ahead for my Adam, even before the Pre-order was known to public. I think when a project has a future, even coming from a company we never heard before is worth investing it is worth to support, and help in anyway possible.
Hardware & Design
As you have all seen the Adam hardware is no big news, every person that likes gadgets have heard of Tegra 2, Pixel Qi and all the other features, the Adam doesn’t bring nothing new in terms of technological innovation but it does bring a innovation in design.
The way it was built is just great, it was thought to be used on a daily base in any situation imaginable, the golden ratio does make a difference! The past 2 days I have used the Adam as a console, media player, work support and as a organizer, it fulfilled every expectation I had, it felt great in any handling position, feels strong being handled in any situation I came to face during my work, there's no crackling sound or protection caps coming off easily, the fingerprints are as bad as in a smartphone, you even cant feel the real weight it has and balances perfectly even by holding with just one hand while typing with the other! Have you ever tried to use the IPAD like that ? It just wobbles on your hand unless you have a case.
My colleagues at work also tried it and they were astonished how a small company from India was able to produce such equipment, they never even heard of Notion Ink or Adam, and they just loved to work with it. One of the biggest praises was the responsiveness of the touch screen and how smooth it was on Canvas to draw a line compared with a smartphone, the processing power and the speed of opening apps, video playback and specially the sniffer, many of them were Android users and they loved it.
Everything looks too perfect doesn’t it, well now its time for the bad parts, the screen protector first of all was awful, as bad as HTC screen protectors for smart-phones all the glare and reflections plus washed out colours made me rage, so I took it off and it felt much better.
The viewing angles of Adam are not very good either, not when compared with my Asus 1005HA LED Backlit screen or the Ipad, but it wasn’t meant to be looked from the side but head-on to be able to read so I take this as a small drawback.
The screen calibration in terms of brightness to contrast ratio is very bad, you notice it more when using at dark environment like the video shows below, but this is something that I think it could be easily fixed if we had the proper tools to mess with it like a normal desktop monitor OSD. (if there’s such tool please tell me since im a android newbie)
Pixel Qi, well this really does feel great, even tho sun is lacking here in Portugal this past days, ive used the Adam on the outside a lot and I love how the pixel qi works, it feels amazing being able to read everything without any problems, unique experience. Indoors even with low light conditions for example in bed with the night stand lamp it was readable or ( you will lol ) in the toilet !
​
Sound quality was just .. man it was awesome, its louder than the Asus 1005HA and the bass is much better, connected to a sound system is just gives enough juice to make it worth, lacks some equalizer but I think there’s apps out there to do the job.
Camera is one of those things there’s not much to talk about, it's a 3.2 camera like many phones have, the swivel does make it good because you can just point it to what you want, using Google Goggles with it is very cool, the design here helps again, with one hand you can easily stabilize the Adam while the responsiveness of the screen helps out the shooting.
The battery when tested at work was empty after 8 hours of people messing with it, playing watching videos, testing VPN connections, downloading and navigating using the canvas, it was madness the number of fingerprints on the Adam, but it was still very readable. You could only notice the fingerprints on the borders.
​
Software
Well the software is another issue, the idea behind Eden is good and I love the leaves, but not every application seem to have gone under proper testing or QA, they don’t fit well with each other and don’t respond properly sometimes to the commands you give to it, one of the examples is facebook tool, the cramped look of it and the minimized information makes it really annoying to work with.
The lack of Android Market to be able to get some of the Google Apps made the experience even worst, if Genesis isn’t ready yet then the Android Market should still exist in the meanwhile.
Mail app is very good, I enjoy the UI and how simple it looks while having every feature you need, its also very useful in a job like mine where im constantly receiving emails.
QuickOffice is also great, I work a lot with excel, acrobat, word and having the Adam around is a excellent working tool, I can give support to my colleagues in real time without having to go from one side to the other getting the information they need and taking time which is essential in my job.
The browser, I was kinda of disappointed with the UI from the browser, it felt.. wrong.. hard to explain, but once I got to work with the tabs I just loved how it felt, the idea of placing them like that helps a lot when you are consulting online or trying to get updated with the latest news in the gadget world, it was a fast experience with flash always loading in the websites quickly and with no issues.
The Video Player, had some issues, as you may have noticed on the video above, the sound and video were de-sync, I was using .wmv tried also .mkv and other formats, thought it was a issue with the internal SD Card, used my external one Class 6 and had the same issue, must be codec wise.
In the end I just preferred on having the LauncherPRO as my main screen since I could customize with every widget I wanted, with no limitations whatsoever as you can see on the video below, at least until NI can deliver a better interface or Honeycomb is out.
​
Conclusion
I'm not an expert reviewer, nor I have experience in reviewing equipments, some of you may not agree with me on some aspects but in the end this was my experience, and I just wanted to share with you all. I enjoy every day with the Adam I have, and it will be my main support at home and works to organize my life.
Do I regret buying the Adam ? No I do not, the Adam is a great tablet.
Would I prefer the Xoom over the Adam ? I wont pay $700 for a barometer, but … I wouldn’t mind having the quality of its screen. Also I had Motorola equipments before and my experience was bad.. not with 1 but more than 4..
Hope you enjoyed.
Thanks for your review bro. I have been looking for a down to earth review for a while. I am probably waiting for the Asus transformer but I would love to try out an Adam and see if it would change my mind. I guess in the end the question is, will it get Honeycomb?
Sent from my ADR6300 using XDA App
jorny32 said:
Thanks for your review bro. I have been looking for a down to earth review for a while. I am probably waiting for the Asus transformer but I would love to try out an Adam and see if it would change my mind. I guess in the end the question is, will it get Honeycomb?
Sent from my ADR6300 using XDA App
Click to expand...
Click to collapse
Rohan mentioned that they are working on honeycomb. If NI doesn;t bring it, the adam is pretty close to ASOP android, so I'm sure that the developers here will port it to the adam.
Thats what i hope also.
hmm..intresting review. Friend can you post some more of your experiences with Adam in detail. I would like to see how different application like
1) Rockplayer (for MKV,avi)
2) Laputa ebook reader
3) Google earth
and some good HD Games with motion sensors.
Video Playback
Do you think the video playback de-sync is because of the player?
Meaning that with another player this would not happen?
Good Review
zabaknilesh said:
hmm..intresting review. Friend can you post some more of your experiences with Adam in detail. I would like to see how different application like
1) Rockplayer (for MKV,avi)
2) Laputa ebook reader
3) Google earth
and some good HD Games with motion sensors.
Click to expand...
Click to collapse
Sure ill post tomorrow probably.
Thanks for this review man. Appreciated. Looking forward to updates on your ongoing use.
Very nice and honest review. Thank you for sharing your experience.
Have you already rooted and installed market with NIH/XDA root packs? Or just using the update released by NI?
Thanks for the review.
I have been using Eden UI on G-Tab for a few days now, and I agree that it takes a little getting used to...and some of the Apps like Mail'd are good. Browser is so-so...and the keyboard could have used "Autoprompts" for words.
Thanks LeviathanPT for the review. I'll wait to pre-order my NI 3G+Pixel QI for the "general public".
Its good to read e-books and Comics?
Thanks
@ zabaknilesh
1) Rockplayer (for MKV,avi) - Still has the same desync issue even with rockplayer
2) Laputa ebook reader - Very cool app, i like the flipping pages transition and its very smooth and accurate, the books can be read very well. Also the thick part of the adam is excelent to grab and makes the reading experience much higher.
3) Google earth - Doesnt launch just crashes
4) Some good HD Games with motion sensors. - Is there any free games i could try ?
@tokyobreeze
Yes i have rooted using NIH since genesis isnt out and i dont want a limited (by software) equipment .
@SimonCt
Yeah reading e-books is awsome, comics is something i havent tried as a appbut ive been at some comic websites and its very cool.
Try jjComics Viewer if you can, The main use for me is read e-books and comics....
For ebooks im using Aldiko, that can be conected with Calibre
Thanks for your review. Very informative!
thanks
Thanks for this usefull review!
Very good review!
Did you try to re-load google earth and still crash?
Edit:
I see they got it working on the Viewsonic over here.
http://forum.xda-developers.com/showthread.php?p=10100271&highlight=google+earth#post10100271
Thanks for the comments guys, the google earth seems not to be compatible using the web android market and that guy doesnt supply the files needed :|
Flash
Have you been able to use a browser as the Skyfire with flash on it??
Hey guys I have made a review from my new adam with pixel qi! I also added a lot of pictures and two videos (showing eden, hardware, pixel qi outside, also made a comparison from screens of galaxy s and macbook pro, ... pictures and videos are on the second page) The review is in german, but pictures and videos can say more than 1000 words
Adam Tablet PC review with pictures and videos
please click on "gefällt mir" or I like button in the facebook fan box
Thanks!

Finally REAL info about hardware acceleration, ICS, and the Nexus S.

This is a must-read.
https://plus.google.com/105051985738280261832/posts/2FXDCz8x93s
I gather a couple of interesting things from this: 1) the ICS OTA will be a drastic improvement over the ICS ROMs we have now, and 2) I thought it interesting how Google will actually improve UI smoothness in the Nexus S by turning OFF hardware acceleration in some areas.
This really clears up a lot of misconceptions and wrong information people around here seem to pass around regarding UI speed and hardware acceleration
Sent from my Galaxy Nexus using XDA App
Good find man, lot of useful info.
From Degobah
Utterly fantastic find, and a must-read for anyone concerned with Android UI performance. It's quite ironic that due to that 8-MB per-process memory hit, it's actually faster for the Nexus S to render parts of the UI in software. I wonder if the same driver limitations are present in iOS, since they use PowerVR GPUs as well.
For reference, I am including Dianne's complete post below.
Dianne Hackborn said:
How about some Android graphics true facts?
I get tired of seeing so much misinformation posted and repeated all over the place about how graphics rendering works on Android. Here is some truth:
• Android has always used some hardware accelerated drawing. Since before 1.0 all window compositing to the display has been done with hardware.
• This means that many of the animations you see have always been hardware accelerated: menus being shown, sliding the notification shade, transitions between activities, pop-ups and dialogs showing and hiding, etc.
• Android did historically use software to render the contents of each window. For example in a UI like http://www.simplemobilereview.com/wp-content/uploads/2010/12/2-home-menu.png there are four windows: the status bar, the wallpaper, the launcher on top of the wallpaper, and the menu. If one of the windows updates its contents, such as highlighting a menu item, then (prior to 3.0) software is used to draw the new contents of that window; however none of the other windows are redrawn at all, and the re-composition of the windows is done in hardware. Likewise, any movement of the windows such as the menu going up and down is all hardware rendering.
• Looking at drawing inside of a window, you don’t necessarily need to do this in hardware to achieve full 60fps rendering. This depends very much on the number of pixels in your display and the speed of your CPU. For example, Nexus S has no trouble doing 60fps rendering of all the normal stuff you see in the Android UI like scrolling lists on its 800x480 screen. The original Droid however struggled with a similar screen resolution.
• "Full" hardware accelerated drawing within a window was added in Android 3.0. The implementation in Android 4.0 is not any more full than in 3.0. Starting with 3.0, if you set the flag in your app saying that hardware accelerated drawing is allowed, then all drawing to the application’s windows will be done with the GPU. The main change in this regard in Android 4.0 is that now apps that are explicitly targeting 4.0 or higher will have acceleration enabled by default rather than having to put android:handwareAccelerated="true" in their manifest. (And the reason this isn’t just turned on for all existing applications is that some types of drawing operations can’t be supported well in hardware and it also impacts the behavior when an application asks to have a part of its UI updated. Forcing hardware accelerated drawing upon existing apps will break a significant number of them, from subtly to significantly.)
• Hardware accelerated drawing is not all full of win. For example on the PVR drivers of devices like the Nexus S and Galaxy Nexus, simply starting to use OpenGL in a process eats about 8MB of RAM. Given that our process overhead is about 2MB, this is pretty huge. That RAM takes away from other things, such as the number of background processes that can be kept running, potentially slowing down things like app switching.
• Because of the overhead of OpenGL, one may very well not want to use it for drawing. For example some of the work we are doing to make Android 4.0 run well on the Nexus S has involved turning off hardware accelerated drawing in parts of the UI so we don’t lose 8MB of RAM in the system process, another 8MB in the phone process, another 8MB in the system UI process, etc. Trust me, you won’t notice -- there is just no benefit on that device in using OpenGL to draw something like the status bar, even with fancy animations going on in there.
• Hardware accelerated drawing is not a magical silver bullet to butter-smooth UI. There are many different efforts that have been going on towards this, such as improved scheduling of foreground vs. background threads in 1.6, rewriting the input system in 2.3, strict mode, concurrent garbage collection, loaders, etc. If you want to achieve 60fps, you have 20 milliseconds to handle each frame. This is not a lot of time. Just touching the flash storage system in the thread that is running the UI can in some cases introduce a delay that puts you out of that timing window, especially if you are writing to storage.
• A recent example of the kinds of interesting things that impact UI smoothness: we noticed that ICS on Nexus S was actually less smooth when scrolling through lists than it was on Gingerbread. It turned out that the reason for this was due to subtle changes in timing, so that sometimes in ICS as the app was retrieving touch events and drawing the screen, it would go to get the next event slightly before it was ready, causing it to visibly miss a frame while tracking the finger even though it was drawing the screen at a solid 60fps.
• When people have historically compared web browser scrolling between Android and iOS, most of the differences they are seeing are not due to hardware accelerated drawing. Originally Android went a different route for its web page rendering and made different compromises: the web page is turned in to a display list, which is continually rendered to the screen, instead of using tiles. This has the benefit that scrolling and zooming never have artifacts of tiles that haven’t yet been drawn. Its downside is that as the graphics on the web page get more complicated to draw the frame rate goes down. As of Android 3.0, the browser now uses tiles, so it can maintain a consistent frame rate as you scroll or zoom, with the negative of having artifacts when newly needed tiles can’t be rendered quickly enough. The tiles themselves are rendered in software, which I believe is the case for iOS as well. (And this tile-based approach could be used prior to 3.0 without hardware accelerated drawing; as mentioned previously, the Nexus S CPU can easily draw the tiles to the window at 60fps.)
• Hardware accleration does not magically make drawing performance problems disappear. There is still a limit to how much the GPU can do. A recent interesting example of this is tablets built with Tegra 2 -- that GPU can touch every pixel of a 1024x800 screen about 2.5 times at 60fps. Now consider the Android 3.0 tablet home screen where you are switching to the all apps list: you need to draw the background (1x all pixels), then the layer of shortcuts and widgets (let’s be nice and say this is .5x all pixels), then the black background of all apps (1x all pixels), and the icons and labels of all apps (.5x all pixels). We’ve already blown our per-pixel budget, and we haven’t even composited the separate windows to the final display yet. To get 60fps animation, Android 3.0 and later use a number of tricks. A big one is that it tries to put all windows into overlays instead of having to copy them to the framebuffer with the GPU. In the case here even with that we are still over-budget, but we have another trick: because the wallpaper on Android is in a separate window, we can make this window larger than the screen to hold the entire bitmap. Now, as you scroll, the movement of the background doesn’t require any drawing, just moving its window... and because this window is in an overlay, it doesn’t even need to be composited to the screen with the GPU.
• As device screen resolution goes up, achieving a 60fps UI is closely related to GPU speed and especially the GPU’s memory bus bandwidth. In fact, if you want to get an idea of the performance of a piece of hardware, always pay close attention to the memory bus bandwidth. There are plenty of times where the CPU (especially with those wonderful NEON instructions) can go a lot faster than the memory bus.
Click to expand...
Click to collapse
Skimmed through it but it seems that its a compromise to free RAM but not really to speed up performance. Maybe faster app switching but not scrolling, animations, etc. Hopefully the Galaxy Nexus comes to Sprint.
Sent from my Nexus S using XDA App
Award Tour said:
Skimmed through it but it seems that its a compromise to free RAM but not really to speed up performance. Maybe faster app switching but not scrolling, animations, etc. Hopefully the Galaxy Nexus comes to Sprint.
Sent from my Nexus S using XDA App
Click to expand...
Click to collapse
1) Faster app-switching IS improved performance.
2) Maybe you skimmed past this part?
"A recent example of the kinds of interesting things that impact UI smoothness: we noticed that ICS on Nexus S was actually less smooth when scrolling through lists than it was on Gingerbread. It turned out that the reason for this was due to subtle changes in timing, so that sometimes in ICS as the app was retrieving touch events and drawing the screen, it would go to get the next event slightly before it was ready, causing it to visibly miss a frame while tracking the finger even though it was drawing the screen at a solid 60fps."
Click to expand...
Click to collapse
matt2053 said:
1) Faster app-switching IS improved performance.
2) Maybe you skimmed past this part?
Click to expand...
Click to collapse
Freeing RAM to allow more background processes and faster app switching would mean (app launching) performance that is no better than what we already have. With ICS and the anticipation of HW acceleration, we all wanted BETTER INTERACTIVE performance. From playing around with it on the AOSP build, I can clearly see its faster than 2.3 on that regard. I experience constant app relaunching, much more than 2.3 so maybe that's what Google is talking about. But Google scaling GPU acceleration back because of RAM limitations is kind of disappointing to me but understandable.
Sent from my Nexus S using XDA App
thnx for posting this again. I have read his post a while ago. And it was very informative. I am beginning to understand Android more. And I'm beginning to get more excited with the upcoming ICS update for our phone.
Award Tour said:
Freeing RAM to allow more background processes and faster app switching would mean performance that is no better than what we already have. With ICS and the anticipation of HW acceleration, we all wanted BETTER INTERACTIVE performance. From playing around with it on the AOSP build, I can clearly see its faster than 2.3 on that regard. I experience constant app relaunching, much more than 2.3 so maybe that's what Google is talking about. But Google scaling that back because of RAM limitations is kind of disappointing to me but understandable.
Sent from my Nexus S using XDA App
Click to expand...
Click to collapse
Yeah, I think the constant app re-launching is exactly what they are trying to fix by limiting the HW acceleration.
There are also several comments from other members of the Android team about how they are regularly blown away by how well the Nexus S Hummingbird processor handles SW rendering, and that it does so with such ease that you won't notice the difference, because it will be a steady 60 fps, and 60 fps is 60 fps to the user.
But the main thing that I think is important to take away from reading the post is that Google seems to know exactly wtf they're doing in this area, and they're doing a lot of work perfecting ICS performance on the Nexus S before they release it. So anyone who has felt disappointment regarding performance of ICS on the Nexus S so far can be assured that their apprehensions are indeed premature, and the Google team is keenly aware of the exact same performance issues that have been noted in this forum.
Plus they want it perfect on Nexus S because that seems to be the phone most Googlers personally own and use
Because of the overhead of OpenGL, one may very well not want to use it for drawing. For example some of the work we are doing to make Android 4.0 run well on the Nexus S has involved turning off hardware accelerated drawing in parts of the UI so we don’t lose 8MB of RAM in the system process, another 8MB in the phone process, another 8MB in the system UI process, etc. Trust me, you won’t notice -- there is just no benefit on that device in using OpenGL to draw something like the status bar, even with fancy animations going on in there.
Click to expand...
Click to collapse
good enough explanation for me. So we can expect a better performing ICS for our nexus S. I am always pissed on how my nexus running on an alpha ICS rom can have a very very slow and painful app switching.
matt2053 said:
Yeah, I think the constant app re-launching is exactly what they are trying to fix by limiting the HW acceleration.
There are also several comments from other members of the Android team about how they are regularly blown away by how well the Nexus S Hummingbird processor handles SW rendering, and that it does so with such ease that you won't notice the difference, because it will be a steady 60 fps, and 60 fps is 60 fps to the user.
But the main thing that I think is important to take away from reading the post is that Google seems to know exactly wtf they're doing in this area, and they're doing a lot of work perfecting ICS performance on the Nexus S before they release it. So anyone who has felt disappointment regarding performance of ICS on the Nexus S so far can be assured that their apprehensions are indeed premature, and the Google team is keenly aware of the exact same performance issues that have been noted in this forum.
Plus they want it perfect on Nexus S because that seems to be the phone most Googlers personally own and use
Click to expand...
Click to collapse
I don't know about you but third party apps with hardware acceleration on is visibly more smooth than the same app on 2.3. Night and day difference. I wonder how much of it they're scaling back. Its too bad that you can't easily upgrade RAM on a phone.
Sent from my Nexus S using XDA App
Award Tour said:
I don't know about you but third party apps with hardware acceleration on is visibly more smooth than the same app on 2.3. Night and day difference. I wonder how much of it they're scaling back. Its too bad that you can't easily upgrade RAM on a phone.
Sent from my Nexus S using XDA App
Click to expand...
Click to collapse
I didn't get from her post that hardware rendering within app windows would be disabled. Just that certain parts of the UI will be drawn with software executed by the CPU.
Sent from my Galaxy Nexus using XDA App
Good read! Thanks for posting
Not bad
Thx
matt2053 said:
This is a must-read.
https://plus.google.com/105051985738280261832/posts/2FXDCz8x93s
I gather a couple of interesting things from this: 1) the ICS OTA will be a drastic improvement over the ICS ROMs we have now, and 2) I thought it interesting how Google will actually improve UI smoothness in the Nexus S by turning OFF hardware acceleration in some areas.
This really clears up a lot of misconceptions and wrong information people around here seem to pass around regarding UI speed and hardware acceleration
Sent from my Galaxy Nexus using XDA App
Click to expand...
Click to collapse
Thanks for the info
Sent from my Nexus S 4G using xda premium
My comments, since I do some graphics work professionally:
Either I'm reading this wrong or Android has an extremely stupid rendering design. I do professional embedded GL graphics (and some Qt) so I'm not up to date with the Android framework yet:
* Why isn't drawing a client-server model where all draw commands are funneled to a unified multi-threaded draw server? That way, each app doesn't need a 8MB chunk of driver memory (which is stupid in itself already especially on embedded, Windows Mobile, Qt on Windows Mobile, etc). Only full-screen apps should have direct rendering to the framebuffer. Android is already suffering from draw consistency, resource contention by allowing each app to direct render. C-S would separate touch event contention from drawing contention that each Android app suffers from and why iOS has smoother UI.
* Why isn't Android using a multi-process scene-graph (each app is a item, and then each item has multiple sub-graphs per app) so Android can not only retain what needs to be drawn per global animation updates, but can instantly and easily cull unnecessary updates per app. Putting each app into an overlay isn't the best way to go without this culling.
* Why isn't Android using "dirty-regions" as another way to cull necessary updates (I assume this is what tiles are)? It should be since its a standard technique that dates back to QuickDraw and QuickDraw II, besides MS's windows API.
* With the pixel-overdraw bandwidth issue, Android can easily first cull through the scene-graph, then the per-app dirty-regions (or stencil buffer*), and then use the hardware-accelerated *depthbuffer to eliminate more overdraw, and draw front-to-back. This is just simplified because there's more modern GL tricks for culling. So, Android shouldn't have to touch each displayed pixel more than once.
* Is Android using pixelshaders at all to accelerate standard widgets such as buttons, etc? There's no reason to have large simplified buttons that can't be replicated by instanced models with pixel-shaders in a scene-graph.
Maybe Android should switch to the Unreal Engine for drawing instead, or some other modern game engine. These are all solved issues. Android has hardware that's generations more performant than the old game systems, but a software engine that's generations behind.
.
lol in other words no iOS smoothness for us fail I hope ICS hooks up my nexus s tho
NuShrike said:
Maybe Android should switch to the Unreal Engine for drawing instead, or some other modern game engine. These are all solved issues. Android has hardware that's generations more performant than the old game systems, but a software engine that's generations behind.
Click to expand...
Click to collapse
Aye, I agree with you there!!!!!
NuShrike said:
My comments, since I do some graphics work professionally:
Either I'm reading this wrong or Android has an extremely stupid rendering design. I do professional embedded GL graphics (and some Qt) so I'm not up to date with the Android framework yet:
* Why isn't drawing a client-server model where all draw commands are funneled to a unified multi-threaded draw server? That way, each app doesn't need a 8MB chunk of driver memory (which is stupid in itself already especially on embedded, Windows Mobile, Qt on Windows Mobile, etc). Only full-screen apps should have direct rendering to the framebuffer. Android is already suffering from draw consistency, resource contention by allowing each app to direct render. C-S would separate touch event contention from drawing contention that each Android app suffers from and why iOS has smoother UI.
* Why isn't Android using a multi-process scene-graph (each app is a item, and then each item has multiple sub-graphs per app) so Android can not only retain what needs to be drawn per global animation updates, but can instantly and easily cull unnecessary updates per app. Putting each app into an overlay isn't the best way to go without this culling.
* Why isn't Android using "dirty-regions" as another way to cull necessary updates (I assume this is what tiles are)? It should be since its a standard technique that dates back to QuickDraw and QuickDraw II, besides MS's windows API.
* With the pixel-overdraw bandwidth issue, Android can easily first cull through the scene-graph, then the per-app dirty-regions (or stencil buffer*), and then use the hardware-accelerated *depthbuffer to eliminate more overdraw, and draw front-to-back. This is just simplified because there's more modern GL tricks for culling. So, Android shouldn't have to touch each displayed pixel more than once.
* Is Android using pixelshaders at all to accelerate standard widgets such as buttons, etc? There's no reason to have large simplified buttons that can't be replicated by instanced models with pixel-shaders in a scene-graph.
Maybe Android should switch to the Unreal Engine for drawing instead, or some other modern game engine. These are all solved issues. Android has hardware that's generations more performant than the old game systems, but a software engine that's generations behind.
Click to expand...
Click to collapse
In case anyone wonders, this was Romain Guy's reply to the questions above:
"We use dirty regions and overdraw would not be eliminated through the use of a depth buffer since pretty much everything drawn by apps requires blending. We user fragment shaders and instanced models already. Apps don't have access to the framebuffer, they draw inside what we call a "surface" which is basically an OpenGL texture used by a separate process (the window compositor.) Android 3.0 already moves towards a full scene graph approach by keeping a tree of display lists (one per View) inside each window."
Click to expand...
Click to collapse
barmanham said:
lol in other words no iOS smoothness for us fail I hope ICS hooks up my nexus s tho
Click to expand...
Click to collapse
I don't even consider iOS that smooth. Multitasking and app switching in that OS is a big pain. My IP4 and iPod touch 4th slows down a lot when multitasking. To a point that it freezes for seconds.
Sent from my Nexus S using XDA App
I posted with my girls pre 2 and the multitasking in that is perfect
Sent from Oxygen 2.3.2 powered Nexus S 4G

Categories

Resources