Archive for 2009

Can I get a JooJoo with a GPU?

Tuesday, December 8th, 2009

From watching videos of JooJoo, UI latency and scrolling performance look awful.

It seems that all rendering is done on the CPU, when it should’ve been on a GPU accelerated compositor or tiled surface manager.

That would save significant battery life (which we haven’t heard anything about) and really kick ass at performance.

Offloading rendering to the GPU also frees you up to, oh, say, reliably detect touch input events.

System on Chip GPU + CPU combos are fairly inexpensive parts these days. Even with a GPU as simple as the first gen iPhone PowerVR MBX lite would’ve had reasonable performance.

UI latency and scrolling performance make all the difference in multi-touch form factor devices. A true multi-touch contender needs to get this right.

Update:

I just realized that JooJoo plays video smoothly at 1080p. So they definitely have a GPU or DSP in there. They’re so close, they just need to get the software up to snuff, maybe with Clutter?

More Reading: On Mobile Phone OS Design and GPUs

Technorati Tags: , , , ,

On Mobile Phone OS Design and GPUs

Wednesday, December 2nd, 2009

Mobile phones have really big screens.

Tablets will have even bigger screens.

If you want your mobile phone OS to matter in 2010, you’d better optimize for rendering graphics on the GPU.

GPUs are far more power efficient and faster at drawing graphics. As mobile device screens get really large, drawing the graphics “old school” on the CPU is moving from “unacceptable” to “impossible” pretty quickly.

Today, Motorola Droid runs at about half the frame rate of iPhone 3GS. The GPU in both is a PowerVR SGX 530 series chip.*

A PowerVR SGX 530 has a fill rate of 200 million pixels per second. That means Motorola Droid’s GPU could theoretically drive 8 full screen refreshes at 60 fps on a Droid-sized (WVGA) screen. All without the CPU’s help.

Parts of Android’s graphics subsystem seem to be GPU accelerated, but more is needed.

Imagine if the Android UX ran at a rock solid 60 fps. Then, I think we’d have something pretty sexy.

I wonder if Apple’s PA Semiconductor unit is designing GPUs instead of CPUs?

* It’s unclear what the exact model of the iPhone 3GS GPU is, and so the exact fill rate is not known… (though if it were, say, a PowerVR SGX 535, its fill rate would be 400 million pixels per second)

Technorati Tags: , , , , , , ,

Chocolux for WebGL = GPU raytracing in browser

Sunday, October 18th, 2009

I’ve just finished my port of Chocolux for WebGL (click for demo page).

Chocolux is a real-time recursive GPU raytracer using four spheres by Auld. Today, Chocolux now can run in your web browser.

The implications of this are pretty mind blowing. WebGL now allows compiled code to run on the GPU. Imagine what games, image processing, and applications will be possible with compiled shaders and general GPU computing (OpenCL?) now in the browser. And with WebGL gaining widespread adoption, it’s going to be here fairly soon.*

For more information about cutting edge fragment shader GPU raytracing and rendering, check out Rendering Worlds with Two Triangles (PDF).

*pending completion of a stable WebGL spec, naturally.

Technorati Tags: , , , , ,

Wuh Working Group

Friday, October 16th, 2009
cying: how is WHATWG pronounced?
cying: “what working group” ?
tantek: or “what double you gee”
Hixie: i pronounce it “whatwuhjee”
cying: Hixie: interesting… wuhjee?
tantek: Hixie, makes sense, like “wuh wuh wuh dot …”
Hixie: yeah
Hixie: or wuhwuhstyle for www-style
gavin: weird!
AryehGregor: “www” is remarkable, as an abbreviation that takes like twice as long to say as the thing it ostensibly abbreviates.
Hixie: it’s an abbreviation for writing
Hixie: not talking
Philip: AryehGregor: How do you get “twice”?
Philip: given that “w” is three syllables
AryehGregor: “like”
AryehGregor: Closer to three times, it’s true.
Philip: Two is not much like three
TabAtkins: I pronounce WHATWG as “what”+”wig”.
TabAtkins: And when pronouncing “www” I say “dub dub dub”.
TabAtkins: (A shortening of “dubya”, the texan way to pronounce that letter.)
• Philip pronounces WHATWG as “what”+mumble, because he never actually says it out loud and in his own brain he doesn’t need to pronounce the entire word to know what he’s thinking of
TabAtkins: I pronounce all of my acronyms as words. HTML is “heh teh mul”, CSS is “sess es”, etc.
Philip: TabAtkins: You’re weird
Philip: I thought everyone said “HTML” as four letters
TabAtkins: Philip: I save a syllable, and the leftover syllables are easier to say quickly too.
Philip: TabAtkins: If the primary requirement is saving syllables, you could just grunt
TabAtkins: But then other people don’t have a chance of understanding me. Plus my language organ isn’t trained to recognize or produce meaningfully grunting beyond the existing near-primal sounds we all make.

Google Chrome Frame

Tuesday, September 22nd, 2009

Google Chrome Frame is huge.

Revisiting my post on Google Chrome Lite from February:

In 2009, Google should embed Google Chrome into Google Toolbar, which has a HUGE install base. This would be a huge driver to accelerate Google’s web platform, convert more folks over to a modern browser experience. Imagine a Chrome “Lite” running inside Toolbar inside IE, billed as a “web accelerator”.

(Insert humorous smug remark here. Okay, it’s out of my system.)

This is the right strategy for Google to use against Microsoft in the browser wars. Google’s 2009 playbook probably looks similar to this:

  1. Let Google Chrome Frame mature in open source into a completely awesome (and hopefully secure) web plugin. Web developers get excited and really start using HTML5 instead of talking about it. Security issues are vetted and addressed.
  2. Bundle Chrome Frame 1.0 into Google Toolbar (hell, Google everything), with huge established (and unpublicized to date) distribution.
  3. Launch both as part of a multi-prong “death by a thousand cuts” attack (Chrome standalone, OEM, Chrome OS, Chrome Mobile, YouTube HTML5 video, etc.) on Internet Explorer.
  4. ???
  5. Profit!

What should Microsoft do? Get busy. Find a differentiator (graphics, JavaScript, sync, hardware port, XBOX, etc.), stop looking at WebKit and start shipping it already.

Technorati Tags: , , , ,

Does iTunes 9 use WebKit?

Wednesday, September 9th, 2009

So, was John Gruber right? This is what I found while browsing the new iTunes Store (cool stuff, btw!):

User-Agent: iTunes/9.0 (Macintosh; Intel Mac OS X 10.5.8) AppleWebKit/531.9

Survey says: Yes.

It’s important to understand that iTunes is only using WebKit to render the iTunes Store and iTunes LP. The rest of the iTunes UI still remains native in Carbon.

Previous versions of iTunes had a custom native UI for viewing the iTunes Store and were definitely not WebKit based prior to iTunes 9.

Technorati Tags: , ,

The Real Truth about Apple, Google and CrunchPad

Saturday, August 22nd, 2009

Just remember that CrunchPad, a Michael Arrington company, competes with Apple in the portable computing market. TechCrunch, a Michael Arrington company, is likely biased when reporting Apple and Google portable computing news, especially when reported by Michael Arrington.

Technorati Tags: , , ,

SmugBox

Thursday, August 20th, 2009

A good friend of mine, Fai Leong has built a cool, really simple blogging service called SmugBox.

SmugBox is in Alpha at the moment, but it’s already got some nice features. Just write something you want to post in an e-mail and send it to post AT smugbox DOT com. You can even attach pics or video. SmugBox posts it for you online and can also auto post stuff to Facebook, Twitter and FriendFeed.

Please give Fai your feedback as well, he’s working hard on polishing SmugBox.

Snow Stack is Here

Saturday, July 11th, 2009

What is Snow Stack?

A new 3D CSS Visual Effects demo using pure HTML, WebKit’s 3D CSS Effects extensions and JavaScript.

You can now see Snow Stack’s live demo if you have Snow Leopard and Safari. On Leopard, you can use WebKit nightly build 45754 or later for a slightly slower experience.

Instructions

Click here to open the Snow Stack live demo. Arrow keys to move, “Space” to toggle magnify mode. Mouse click on an image to view on Flickr. You need to “right arrow” on the right wall to get more photos loaded in.

Many thanks to Simon Fraser for his help with performance profiling Snow Stack.

And yes, OS X Leopard with WebKit nightly will also do accelerated 3D transforms now, just like iPhone Safari.

Implementation Notes

  • Larger images load in after 2 seconds for high quality zoomed images.
  • State changes are handled via CSS.
  • Reflections use CSS masks instead of a Canvas draw (standard box reflections don’t quite work yet).
  • Reflections sit on a scaleY(-1.0) coordinate system and are tracked independently, which is surprisingly easy.
  • This demo pushed a few performance limits and currently avoids drawing and animating a drop shadow and border.
  • Animating transforms with a transform list must have only 1 function to animate in hardware.
  • Snow Stack’s 3D transforms, transform and opacity animations all run on the GPU. Layout and networked image loading happens on the CPU.
  • Key states are tracked manually (timers handle keyboard delay and repeats) so a smooth motion can be achieved when the keys are held down.
  • Cell sizes are chosen at initial window load time and don’t change on window resize, although the origin does. It’s rather slow, however, so I may end up changing that.
  • The computedStyle transform matrix is used to calculate how far away the dolly is from the target image, which is then used to assign a scaled rotation to the “camera”. Ideally, this might be done a different way, but the results are pretty good, and fast.
  • To give you a sense of the effort involved, this demo was written over 3 days, a few hours each evening.
  • Snow Stack’s source code is now available from the CSS-VFX project.

Other CSS Visual Effects Demos

Updates and iPhone Apps

Technorati Tags: , , , , , , , ,

Google Chrome OS and V8 ARMs

Tuesday, July 7th, 2009

Google Chrome OS is real and now we know that V8 has a ARM JIT compiler coming soon. Nicely done, team Google. Next up, ARM Cortex A9 based Apple and Google tablets… er, netbooks…