Fun with code (since 2006)

Introducing Flash Player 11.4/AIR 3.4 beta!


06.19.12 Posted in 3D, AIR, Flash Player, Stage3D by

Flash Player 11.4/AIR 3.4I am super happy to announce that we just posted today Flash Player 11.4/AIR 3.4 beta builds, and you guys need to check what we have for you!

ActionScript Workers

We are bringing concurrency to ActionScript developers through ActionScript Workers (Flash Player and AIR desktop only for now).I posted some details about it 2 weeks ago. You can now test this yourself and enjoy the power of multithreading in Flash Player. We believe this will be a big thing for ActionScript developers. Stage3D was huge, but ActionScript Workers do talk to everyone, not only game developers but all ActionScript developers.

We bundled some very simple demos here (mirror) so that you can check the samples and get started. I will try to post more demos in the next days to provide some cool use cases where ActionScript Workers can be super useful. Find here the full source code for the runtime WAV to MP3 encoding demo I sneaked a month ago. It relies on an embedded worker (separate SWF) which is a different approach to leverage workers, more optimized memory wise cause it does not duplicate the primordial worker.

Looking forward to what you guys will be doing with them!
One last thing, to get full support for workers from Flash Builder (for debugging) you will need a preview of the next version of Flash Builder coming publicly in August.

Increased GPU reach (Stage3D constrained mode)

But we are not stopping there. We know that you guys care about reach, and when you are using Stage3D, you want to make sure the largest number of people can see your content HW accelerated. With this release, we first relaxed the drivers gating to 2006, but also focused specifically on getting Stage3D to work on very popular chipsets that we previously blacklisted (specifically the Intel GMA) which should give you a huge boost in terms of GPU reach. To benefit from that, just use the new Stage3D mode, called "constrained mode".

So what we have done is adding a new parameter to Context3D has been introduced called "profile". This parameter is supplied to the Stage3D.requestContext3D() function and you can give it one of two value Context3DProfile.BASELINE ("baseline") which will return the typical Context3D that has existed in previous releases, or Context3DProfile.BASELINE_CONSTRAINED ("baselineConstrained") which will return a new kind of Context3D capable of running with hardware acceleration on previously unsupported GPU's.

Constrained profile enables content authors to create Stage3D content targeting older systems using graphics cards such as Intel GMA 900/950 on Windows. The trade-off for targeting lower end hardware with Constrained profile is that the Stage3D capabilities will be limited in order to guarantee that content runs well with that hardware. Cards such as the GMA 900/950 only support pixel/vertex shader version 2.0 which forces the following limits on Stage3D when in Constrained profile:

  • Limited to 64 ALU and 32 texture instructions per shader.
  • Only 4 texture read indirections per shader.
  • Limited to a smaller amount of constants/varying/temps per shader.
  • No support for predicate register.
  • This affects sln/sge/seq/sne and needs to be replaced with compound mov/cmp instructions which are available with ps_2_0 (this will be done under the hood at the cost of using more instruction slots compared to ps_2_x).
  • The Context3D back buffer must always be within the bounds of the stage.
  • Only one instance of a Context3D running in Constrained profile is allowed within a Flash Player instance.
  • As with mobile the classic Flash Display List elements will not be updated while constrained Stage3D content is visible unless Context3D.present() is called.

'Profile' is the second optional parameter of the requestContext3D method. Developers can request profile "baselineConstained" to get a Context3D in constrained mode, as the api below shows:

function requestContext3D ( context3DRenderMode : String = "auto", profile : String = "baseline" ) : void;

Example:

stage.stage3Ds[0].addEventListener(Event.CONTEXT3D_CREATE, createdHandler);
stage.stage3Ds[0].requestContext3D(Context3DRenderMode.AUTO, Context3DProfile.BASELINE_CONSTRAINED);

So what about the frameworks that you may be using already?

Stage3D frameworks and constrained mode

Starling is already today constrained mode ready. Check the latest version on github, without any code changes, you will now run HW accelerated on more hardware. We have been working with Away3D, Flare3D, Minko and Alternativa3D which should be constrained mode ready very soon.

Compressed texture with alpha support

You can now leverage transparency for compressed textures when using ATF textures with Stage3D. You may say, great but how do I create ATF textures? The ATF tools will be posted in the next days on Adobe Labs, stay tuned!

StageVideo.attachCamera

You guys remember the post I did a little while ago entitled Flash Player 11.2/AIR 3.2 beta hidden gems? I mentioned at that time camera support for StageVideo, here it comes!

Camera.copyToByteArray/Camera.copyToVector/Camera.drawToBitmapData

Same as above, those two APIs are going to make all the image processing fellas very happy. Directly grab the pixels from the camera stream, without having to draw it with BitmapData, way more optimized.

LZMA runtime compression/decompression on ByteArray

Leverage the power of runtime LZMA compression and decompression when using the ByteArray class. Claus, enjoy.

AIR iOS Push Notifications

No need to rely on native extensions to leverage push notifications. Adobe AIR now supports it natively.

AIR direct deployment (without iTunes)

Tired of using iTunes or the iPhone configuration utility? The adt tool now directly deploys the application to your iOS device without requiring any other dependency. Simpler, faster, better.

I hope you guys like those improvements. Expect some tooling updates to support those features like ActionScript workers debugging or AIR direct deployment. Some other features like iOS profiler or USB debugging introduced in AIR 3.3 will also be supported through the same tooling updates.

Have fun!



68 Responses to “Introducing Flash Player 11.4/AIR 3.4 beta!”

  1. X-rus says:

    Hello!

    When do you plan to release 11.4?

  2. hayesmaker says:

    Hi Thibault, hi all,
    Is anyone using Context3D in Air for android succesfully? I compile with AIR SDK 3.4 with rendermode=direct in the app xml but it still says Context3D is unavailable… :(

    All forum posts on the subject say this support is coming first half of 2012 (it IS 2nd half of 2012!)

  3. Gaffkins says:

    Wy Workers.current.getSharedPropery retun me undefined?
    And addeventlistener(event.channel_message) Causes Europę #1009? Help

  4. Gaffkins says:

    Why Worker.current.getSharedProperty retun me undefined and addeventlistener to my message channel causes error #1009?

  5. xblaster says:

    adt -installApp CRASHES iIPA.exe.
    I reinstalled itunes, etc. but this didnt help!! Any solution????

  6. breign says:

    This is great awesome and superb!

  7. Jakub Slaby says:

    Hey, are you planing to implement the Local Notifications for mobile devices as well, not only the PUSHed option?

  8. [...] новшествах (полную версию на англ. вы можете почитать здесь) Параллелизм Как вы знаете несколько месяцев тому [...]

     
  9. Jake says:

    Re: Camera.copyToByteArray/Camera.copyToVector/Camera.drawToBitmapData

    Is there a way to quickly resize the bitmap data that’s written with these methods without doing a BitmapData.draw into another BitmapData object or something similar? I’m trying to pass a data from the camera straight into a Stage3D texture with as little overhead as possible, while making sure that its sized to a power of 2. It would be great to be able to pass a matrix into the Camera.drawToBitmapData call… Maybe there’s a more efficient way to do what I’m trying to do?

  10. maliboo says:

    Thibault, what about workers and Chrome. I’ve got latest Chrome with 11.4 and workers seems to be dead… http://flexmonkey.co.uk/particle-workers-bin-release/PartcleWorkers.html (it’s fine on FireFox)

    Is it start of Flash Player HEAVY fragmentation? 11.4 is 11.4 – API should be consistent!

  11. Mike says:

    Can actionscript workers contain alchemy libraries within them?

  12. Hiroalex says:

    Hi,

    I am working on an AIR app with Stage3D (through Away3D4), but it seems that it’s impossible to make custom chrome because my Stage3D doesn’t show up anymore when I set systemChrome to ‘none’… even after setting transparent=false in the app descriptor…
    Any thought about a workaround? Thanks in advance and congrats for the good job you do :)

    Alex

  13. Oussama Gammoudi says:

    Mouse Lock is vital for fps games in “non” fullscreen mode, it is available on unity & shiva players, so I think it should be available on flash too

  14. [...] a viable platform, at least on mobile. Recent developments like the new Falcon compiler and AS workers are nice but Adobe is going to have to make more radical changes to the language and VM to be a [...]

     
  15. [...] a viable platform, at least on mobile. Recent developments like the new Falcon compiler and AS workers are nice but Adobe is going to have to make more radical changes to the language and VM to be a [...]

     
  16. [...] reporter à l’article de Thibaud Imbert, à la description de la version sur Adobe Labs ou encore à cette synthèse sur [...]

     

Leave a Reply

Open Sort Options

Sort comments by:
  • * Applied after refresh

ByteArray.org
Fun with code since 2006.