in Pixel Bender

Pixel Bender is NOT hardware accelerated

After reading various tweets this morning coming out of the MIX09 conference I thought I needed to go on the record regarding Pixel Bender. The Pixel Bender toolkit runs filters using hardware acceleration. But Pixel Bender filters that are running inside of Flash Player 10 are not accelerated in any way and are instead rendered via software. This is a failure on our part for not communicating this clearly enough.

Lee

Write a Comment

Comment

  1. So what if i had set my wmode to “gpu” ? What kinda situation would that be ?

    So even when wmode is set to “gpu”, Pixel Bender filters run on software acceleration ?

  2. Ok so Pixel Bender is not GPU accelerated but it’s much more optimized and “close to the metal” than actionscript:
    – like alchemy, pixel bender as raw access to the memory. We’re talking of a possible ten-fold acceleration here (like Alchemy which brings also a couple more tricks like function inlining).
    – to the contraty of AVM2, pixel bender distributes its workload over all cores of the CPU (so it’s 2x or 4x speedier on most machines): cf. http://www.kaourantin.net/2008/05/adobe-pixel-bender-in-flash-player-10.html

  3. I have been under the impression that GPU acceleration was removed at the last minute because of performance concerns (without proper understanding of the way GPU acceleration works, you can make things slower, instead of faster). That said, I also thought that PBJ filters do in fact scale across CPU cores – meaning 4 cores, are better than the one you usually get access to with straight AS3 code (though can you call multi-core CPU utilization hardware acceleration?).

    Note: I’d love to see an proper API (and education push from Adobe) that would allow GPU acceleration in Flash, through an explicit opt-in model. This would create quite a rich arena for performance optimization, giving you straight AS3 (perhaps with multi-thread extension, like in JS 1.7), the naturally multicore PPJ on CPU that Flash currently supports, as well as a final post process (or maybe async parallel process for sounds and other coolness) on the GPU – so we can get a way to get the benefits of GPU acceleration (maybe we can start calling it OpenCL accel, instead of GPU accel?).

    There would be a whole new world to learn when and where GPU acceleration should be used or avoided – this would also open a new world of possibilities with the power of these chips, beyond simple acceleration (and these chips do seem to be turning up everywhere) – and doesn’t that sound fun? :-)

  4. Yeah.
    This misunderstanding has been there since the before the Pixel Bender launch. There was quite some confusion on this even inside Adobe, so no wonder that has spread. The main confusion is that Pixel Bender IS accelerated when used with After Effects and Photoshop, but not when running the same code in the Flash Player.

    What you probably should point out is that PixelBender runs in a thread separate from the Flash Player, so it’s effectively a way to make use of a second core if the CPU has that. Ralph Hauwert just did a killer experiment that shows what this combination can pull off:
    http://www.unitzeroone.com/blog/2009/03/18/flash-10-massive-amounts-of-3d-particles-with-alchemy-source-included/

    J

  5. Hi,
    do you know if there is any progress on those GPU acceleration with AIR2.0 and also with pixel bender?
    I have been trying to check this with the beta2, but did not manage to get any good news so far? maybe need to regenerate an application with AIR2.00 SDK?