64 Bit Redux

by David Burnett • Sunday September 26th, 2010
Posted in Developer's Corner, Oxidizer Blog, Oxidizer Community

So, anyone want to try a proper full 64 bit version of Oxidizer ?

Well if you do today is your lucky day, well maybe.
I’ve just uploaded Oxidizer 0.7.5 alpha (bit of a mouthful) and it should be fully 64 bit for those lucky Snow Leopard Users with 64 bit capable Macs.
Of course as always I haven’t got a 64 bit Mac so it might not work at all for all I know. It’s a universal app so we 32 bit users can join in the fun
too as there’s a fair chance that I’ve broken something for us too somewhere. All this is a subtle hint that you should not use this for anything you
do not want to lose.

There are one or two changes you should know about. This will turn into a rant BTW so take a deep breath before continuing. The short version, assuming Oxidizer starts up at all on anyone else’s Mac, is that the things that I may have broken are Saving Movies, Saving Images and Lua scripting.

In order to code a 64 bit version I’ve basically had to strip out all the old quicktime code and replace it with newer more up to date API’s. Now this is one of the major reasons its took so long so bring a new version out, the other being that rewriting working code is really not very inspiring especially when you are doing it to support a platform you can’t actually test against. Apple depreciated huge hunks Quicktime in Leopard and actually removed them for Snow Leopard. The trouble is they didn’t fully replace all those removed bits in the new API’s. One big thing that Apple broke was required for displaying the Quicktime setting dialogs before creating a movie. Apple’s official work around – use a 32 bit background process to display the dialog and pass the settings back. Absolute rubbish. Of course you either do that or write your own settings dialogs for very codec or show your dialog at the end of the render, so Oxidizer now launches a 32 bit background process just to show a dialog.

The next thing have Apple obsoleted was using Quicktime for saving images. That I was mostly happy about as the Quicktime API for images was really rubbish, way to low level and frankly a pain in the neck. The new API is vastly better, but the settings you guys get to set in the settings dialogs are vastly dumbed down and I’m sure some of you won’t like it. The good news is that the new API has some really fun features that I can use in later versions, when I officially depreciate Tiger (where as now I just try not to break it).

Finally, I’ve had to hack the Lua bridge to create a mix of the Apple version and the GNU-step version to support compilation against Snow Leopards libraries, again due to Apple obsoleting stuff. Luckily it was stuff that the GNU-step project didn’t have so the code was mostly there to deal with the missing functions all I had to do was enable the GNU code while keeping the Cocoa version limitations.

Dave



44 Comments

  1. Don Larson
         September 27, 2010

    Dave,

    I ran the new alpha version in 64-bit as an application. The program opened fine. I used the Breeder to generate some flames and that worked fine. I rendered and saved fine.

    I opened a previous version generated flame and that loaded and rendered fine.

    I quit the application without issue.

    Thanks for your great work!

    Don

  2. Scott Chitwood
         September 27, 2010

    Two words… Darn Speedy

    Intel Core 2 Duo MacBookPro4,1 running 10.6.4.

    Loaded old genome set from July 2008, ran some of Ralf’s Lua scripts against them, saved as a new set, in progress rendering one image at 800×500 pixels using Photoshop setting.

    Tremendous uptick in performance compared to earlier 64 bit releases.

  3. Scott Chitwood
         September 27, 2010

    Looks like drag and drop of genomes from the Editor to Clipboard to Breeder is broken.

  4. Scott Chitwood
         September 27, 2010

    Per Dave’s note below, these may be ignored for now…

    Error messages when using Gene Pool and Breeder.  Genomes do populate both when errors are dismissed.

    Gene Pool Error

    Breeder Error

  5. Don Larson
         September 27, 2010

    @Scott, I had an error msg about Genome giving up, but then it completed after a couple seconds delay.

  6. David Burnett
         September 28, 2010

    Scott’s two errors can be ignored.
    It’s some debug stuff I but in to diagnose some other issue that
    came out of the old 64 bit version where we’d get an error dialog but not- error message and no genome.
    Trouble is to get the error message if forced the dialog to show if there was any output what so ever
    totally forgetting you get some messages out that aren’t errors as such.

    I can’t see yours Don, its blocked from work but I’m going to guess its along the same lines.

  7. David Burnett
         September 28, 2010

    Oh, sorry its the avators that are blocked not an error message imagem, d’oh :-)

  8. Cubixel
         September 28, 2010

    Nice job Dave! Cheers

  9. Connor
         September 30, 2010

    I appear I have a problem. I should probably do a bit more testing, so that I can pin down what is causing the problem, but I though I would tell you first.

    Problem: For some reason (It might be rendering as png, or just a really large file size) certain fractals won’t render. This is on my macbook. I tried to render a fractal to 8bit png (3000 x 2400, 1.0 zoom, 100 size, 200 quality), and left it overnight. flam3 seemed to be dominating my system resources, yet the image never rendered and the progress bar never even gave me an estimate.

    Macbook Specs- MacBook5,1, 2GHz Intel Core 2 Duo, 2GB RAM, OSX 10.6.4

    I will test it on my iMac later. It could also be the fact that I made the fractals with a lua script.
    For now, I am just telling you the problem. I will probably figure out that I did something wrong later. :)

  10. Scott Chitwood
         September 30, 2010

    Try saving a .flam3 file of your creation, then quit out, relaunch, and reload it.  Try rendering again after that and let us know what you get.

  11. Connor
         September 30, 2010

    Saving it as a .flam3 seemed to work. I rebooted, but I doubt that did anything.

    Also, on a somewhat unrelated note, why, when I save a .flam3, do all of the fractals that are open in Oxidizer get saved? How can I save only one fractal without removing the other fractals from Oxidizer?

  12. Scott Chitwood
         September 30, 2010

    All of the genomes are saved.  Just delete out the ones you want to ignore for the moment and save the special kid to a new file.

  13. David Burnett
         October 1, 2010

    @Conner if you’ve got Auto_save Genome switched on I’d appreciate if you could hace a look and see if there’s a genome saved there from from time it took overnight without moving along. I’d like to see if there’s a difference between that and the version you’d saved and rendered in case there a bug with the code that converts the current genome to XML.

    @Scott: Drag and drop works fine here in 32 bit land, can you try running Oxidizer as a 32 bit app (it should be an option in Get Info context menu in Finder) and see if it still falls over. Are there any interesting Crash Reports ???

    @Everyone
    I’ve noticed that the ‘Recent Menu’ stopped being populated, with I’ve now fixed that for the next release.

  14. Scott Chitwood
         October 1, 2010

    Confirming drag and drop functions in 32 bit mode.  No crashes to report :^)

  15. eyedrinkvenom
         October 14, 2010

    Hi Dave

    I just grabbed the latest version of oxidizer for snow leopard and noticed a bug in the background color. There seems to be something going wrong with the gamma in the background color. Once the background is raised above black it becomes very bright very fast and I get pure yellow red or blue background. Please look into this.

    Thanks

  16. David Burnett
         October 18, 2010

    Hi,
    Fraid I’ve got no internet connection at home at the moment so I’m going to be largely incommunicardo.

    @eyedrinkvenom: Can you check if the alpha works properly in 32 bit mode, and see what background colour values you get in the flam3 files. I can’t see any obvious 64 bit issues with the background colour and it seems to work fine for me. As flam3 with still run in 64 bit mode even with Oxidizer in 32 bit mode it’ll help eliminate the flam3 code.

    Dave

  17. eyedrinkvenom
         October 23, 2010

    Hi Dave

    I’m running this with OS X in 32-bit mode. I haven’t tried in 64-bit mode as these days I’m staying in 32-bit to ensure all my other graphics apps run properly.

  18. David Burnett
         November 9, 2010

    I’m sure I posted this yesterday.

    New version of Oxidizer is now available, it fixes a drag and drop issue what may have affected the background colours (although that is a stretch :-))

    Scott and eyedrinkvenom, let me know it if fixes the issues you reported. It also fixes a memory leak in the new animation code. It still look like quicktime is not releasing memory properly until the movie is finished, so for really big, long animations I still recommend generating stills and using your movie generating software.

  19. Scott Chitwood
         November 14, 2010

    Drag and drop between various applications still broken in 64 bit mode Dave.

  20. David Burnett
         November 21, 2010

    I’ve just uploaded a new version of Oxidizer (0.7.5.2)

    The main fix in this in a new version of flam3 which resolves an issue where 16bit PNG’s were corrupted if the image was big enough to require strips to render.

    I’ve also tidied up more code, fixed some more memory leaks although these where small leaks unless you where using 1000’s of genomes, and fixed some 32 v’s 64 bit type issues. That last lot of fixes may have fixed the Drag and Drop and background colour issues, they where in the right code and in the drag and drop stuff if it caused an error it would have prevented D’n’D working and failing gracefully. However in the end I can’t tell as I can’t test it :-)

    Dave

  21. Chris
         December 7, 2010

    You probably know this but, it doesn’t work on 10.5.8. Get an error message about an outdated libxml2.2.dylib on the Mac side. Will try the alpha at home on my 10.6 machine, I think it is one of the GNU libraries that gets updated in the newer OS. Thanks for working on it. Makes lovely images.

  22. David Burnett
         December 7, 2010

    Hi Chris,
    no I didn’t know there was a problem with Leopard. When does it fall over, on start up or on loading a flam3 file ?

    Dave

  23. David Burnett
         December 7, 2010

    So, any one tried the drag and drop on 64 bit OSX yet ? I’m not kidding when I say I can’t test it :-)

    Dave

  24. Scott Chitwood
         December 7, 2010

    Drag and drop is alive and kicking arse in 64 bit mode :^)

  25. David Burnett
         December 8, 2010

    Yea….

    I just need to get to the bottom of this libxml thing and I can do a proper release.

  26. David Burnett
         December 11, 2010

    New Release time folks :-)

    This one fixes a bug found by Frank Jonen who noticed the Animation Stills’ 16 bit PNG option was producing 8 bit PNGs.
    I’ve also removed references for libxml from the main Oxidizer program so hopefully this will work with Leopard again (Chris ?)

    Download it here.

    Dave

  27. frankjonen
         December 19, 2010

    Hey awesome! :) Just one thing. Does this work on Snow Leopard? I’m upgrading later this month and it doesn’t behave on plain Leopard, gives me this when I load something or just hit the + for a new one:

  28. frankjonen
         December 19, 2010

    So much for inline images. Screen is here: http://www.frankjonen.com/oxidizer-leo.png

  29. David Burnett
         December 19, 2010

    Hi Frank well no ones complained about it not working on Snow Leopard yet.
    I think I figured out why its not working on Leopard, look’s like the Snow Leopard flam3 exes snook in.

    Can you try this version and see if I’ve managed to fix the Leopard version, it uses a modified build to make sure that all the extra bits and pieces get clean builds for a release.

    http://oxidizer.sf.net/Oxidizer_0_7_5_3_x.zip

  30. frankjonen
         December 20, 2010

    That worked and it’s also quite a bit faster now. Thanks so much. (and yay for 16-Bit PNGs! :)
    BTW, the Oxidizer_QT_Dialog_Server stays open after closing Oxidizer and occupying cycles / RAM as it seems to be playing with itself (messages being sent).

    For now Terminal: ps axco pid,command | grep Oxidizer* | awk ‘{ print $1; }’ | xargs kill -9
    after quitting Oxidizer does the trick, but probably worth looking into.

  31. Scott Chitwood
         December 28, 2010

    Here’s another 0.7.5.3 error for you Dave.  Got this when creating a new random genome using the ‘+’ button from the primary window.

    error 2010-12-28

  32. Ray Mikota
         January 12, 2011

    Hi, I played around with 0.7.5 and could not animate in this version. I set it up and nothing. You thoughts.

    Thank I love Oxidizer…

  33. David Burnett
         January 14, 2011

    Hi Ray,
    what exactly do you mean by ‘nothing’, does the export dialogue appear where you choose the file and format, do you get the progress window after choosing or no movie is saved ?

    Also what is your version of OSX and are you using PPC or Intel, 32 bit or 64 bit ?

    Dave

  34. Ray
         January 28, 2011

    Thanks for getting back to me. I really appreciate it.

    I mean nothing…. However, I just tried it again and it is working? the short anim just completed and it’s awesome, short and small but awesome. which leads me to my big question…..

    I haven’t tried lua scripting yet and am sill making animations by morphing between flames and saving as a QT but I am experiencing a limit on how much i can animate. I rending to HD quality 12 and Quality 50 in flame render window, no sound….

    On two different sytems one old pre intel sys with only 2gig ram
    and one new Mac Pro
    Quad-Core Intel Xeon
    2.66 GHz Cores: 4 L2 Cache (per core): 256 KB
    L3 Cache: 8 MB
    Memory: 8 GB
    AND in HD I can get about 150 frame, if I try to do more anims always crash near the end. I am dying to get some Longer animations. thanks for you time and this gorgeous software.

    Ray

  35. David Burnett
         January 31, 2011

    Darn,
    I’m sure I fixed that more than once before. It’s an issue where Cococa’s memory doesn’t get a look in in a tight loop. I’ll throw an Auto-release pool in the loop for the next release. Until then I recommend the use of ‘Render Movie as Still’ and a proper Movie Creating Application :-)

    Releases are a bit tricky at the moment with Sourceforge having been be hacked. I’ll have to knock out a binary release some without commiting the code.

    Dave

  36. Ray
         January 31, 2011

    Sorry to hear about the hack…. but on the release pool awesome thanks.

    I tried the stills rout and noticed that the frames do not get saved in the file until it’s finished rendering the whole lot…. and it seemed to crash when over a certain size too. Does that have something to do with temporal samples? or?

    could you point me to a tutorial. many thanks.

    Ray

  37. Scott Chitwood
         February 1, 2011

    Hello Ray, animation tutorials are on the Wiki, Part 1 and Part 2.

  38. David Burnett
         February 2, 2011

    Hi Ray,
    did you use the ‘Render Movie as Stills’ menu option in Oxidizer or the ‘Image Sequence’ option from the animate ‘Save’ dialog ?

    I suspect you used the later as that uses the same code as creating the movies and hits the same problem plus the files appear at the end as it basically creates a movie then saves each frame. I guess Apple aimed it at people making stills from movies rather than a directly saving the images added to ‘a movie’.

    The other option should be rock steady and generates files as it goes along It should use enough memory to create one image and then stay fairly steady depending on the size of the memory png or jpeg file it produces. I’ve just rendered a 100 frame 1000×1000 and it stayed at a steady 25 Mb for Oxidizer and 65 Mb for flam3-animate which produces the images.

    Dave

  39. Ray
         February 3, 2011

    Oh, yes I see the difference. Thanks….

  40. Ray
         February 3, 2011

    Thanks Scott! I’ll check this out.

  41. David Burnett
         February 8, 2011

    Hi folks we know have an Oxidizer 0.7.5.4.

    The changes are fixes for the issues Ray and Scott reported.

    Substantially reduce the memory usage when creating movies by releasing it in a timely fashion.

    Hopefully fix the lack of a dialog when using the animate button, which only appears for me the first time I use Oxidizer after a fresh build. I think it was due to a weird timing issue, were the dialog server hadn’t registered its service before Oxidizer itself tried to find it. Although OSX considers the Server to have been launched, something like the pre-binding OSX does to speed up the application loading on the first startup must get in the way somehow.
    I’ve changed Oxidizer so that it does not try to connect to the server until you use the animate button by which time the Server should be up an running properly. Yes as you’ve guessed I’m stretching for an explanation, however the fix has worked for me so far.

    The last change it to fix the superfluous ‘error’ message Scott reported

    Finally this is the first build using XCode 3.2.5 the latest version of Apple Dev Tools.
    So any issues like “it does not run at all on Leopard” should be reported.

    If this release is stable then It’ll become a proper release rather than the sneak preview assuming Sourceforge will allow me to get that far :-) so report any issues you find.

    The next release may be from a new reworked build that dak180 has been working on at github this removes all the nasty scripting I do to build the flam3 tools. That one will be very experimental while we work out what works, what doesn’t and if the llvm compiler creates a fast or slower flam3 than gcc :-)

  42. Scott Chitwood
         February 18, 2011

    So far so good Dave.  Only thing I’ve been able to crash is the breeder when cross-pollinating some complicated genomes bred with Ralf’s simil4.lua.

  43. Jordan Meeter
         April 14, 2011

    Any new updates for us?

  44. Scott Chitwood
         April 15, 2011

    Per Dave’s post above, most recent version is Oxidizer 0.7.5.4, dated February 8th.

Sorry, comments for this entry are closed at this time.


Size

Colors