Leopard 64 bit Runtime problem on G5 Mac

cybero's picture

The following is the output of my console when I try to get my machine to render a composition in 64 bit runtime [Leopard].

26/04/2009 20:56:26 [0x0-0x21021].com.apple.QuartzComposer.editor[223] objc[253]: GC: forcing GC OFF because OBJC_DISABLE_GC is set 
26/04/2009 20:56:26 [0x0-0x21021].com.apple.QuartzComposer.editor[223] objc[253]: GC: forcing GC OFF because OBJC_DISABLE_GC is set 
26/04/2009 20:56:26 [0x0-0x21021].com.apple.QuartzComposer.editor[223] objc[253]: GC: forcing GC OFF because OBJC_DISABLE_GC is set 
26/04/2009 20:56:26 [0x0-0x21021].com.apple.QuartzComposer.editor[223] objc[253]: GC: forcing GC OFF because OBJC_DISABLE_GC is set 
26/04/2009 20:56:49 [0x0-0x21021].com.apple.QuartzComposer.editor[223] objc[256]: GC: forcing GC OFF because OBJC_DISABLE_GC is set 
26/04/2009 20:56:49 [0x0-0x21021].com.apple.QuartzComposer.editor[223] objc[256]: GC: forcing GC OFF because OBJC_DISABLE_GC is set 
26/04/2009 20:56:50 com.apple.WindowServer[59] aped[59]: Attach failed: -1 (BSD: system 0x3F/0xFFF, err 16383), for QCPlayer[256] 
26/04/2009 20:56:57 ReportCrash[258] Symbolication warning: fde.addrRange.location 0x7fff701cc140 isn't in the the __TEXT segment [0x7fff81678000 - 0x00004000) 
26/04/2009 20:56:57 ReportCrash[258] Symbolication warning: fde.addrRange.location 0x7fff701cc148 isn't in the the __TEXT segment [0x7fff81678000 - 0x00004000) 
26/04/2009 20:56:57 ReportCrash[258] Symbolication warning: fde.addrRange.location 0x7fff701cc148 isn't in the the __TEXT segment [0x7fff81678000 - 0x00004000) 

I would include the Log Message but one was not even generated. I had been dry running another forum members composition trying to figure out why it wouldn't work on an Intel Mac running Leopard.

In the course of doing some runtime tests got several plugin error flags, both at 32 and 64 bit runtime, e.g: - wrong architecture for Kineme 3D for example.

I cleared out all the offending items and had no problems at 32 bit Leopard runtime.

64 bit runtime testing just doesn't seem to work across the board, regardless of file used, including Apple's own examples in the Developer Tools folder.

Should 64 bit runtime work on a PPC?

cwright's picture
Re: Leopard 64 bit Runtime problem on G5 Mac

Looks like you should disable GC, and provide a backtrace, and see if removing ape helps (I'm not anti-APE, mind you, but it is something to remove before pointing fingers elsewhere).

Kineme3D cannot work on 64bit ppc, as Autodesk refuses to build the FBXSDK for 64bit ppc (64bit intel is supported). I suppose I could remove all the FBX junk for 64bit ppc support, but then you're stuck with parametric surfaces and MD2 models only, which isn't particularly helpful.

Is there a reason why you're using 64bit?

cybero's picture
Re: Leopard 64 bit Runtime problem on G5 Mac

I only got to the point of intriguingly disappointing myself with 64 bit runtime testing because I was seeking to find out why Spirograph2.qtz posted for help and advice by jersmi wouldn't work on an Intel Leopard setup.

I had satisfied myself that it rendered AOK for me as a screensaver, then tried other runtimes in case this would give me some clues about Jersmi's problem and instead got a lot of architecturally inapposite plugins error messages in the runtime log [they've been removed for the time being, including the Kineme 3D plugin and Particles plugin].

By the time I'd cleared out all the possible offenders, 64 bit runtime still wouldn't render a thing, my physical quartz extreme support is described as 32 bit so perhaps getting a fully 64 bit GPU would be an improvement / solution in the interim and obtain an Intel Mac in the longer term :-).

Will be removing APE at your suggestion.

I was wondering how to disable GC and set backtrace - globally or by application?

Thanks for your feedback.

cwright's picture
Re: Leopard 64 bit Runtime problem on G5 Mac

GC is a per-application compiler-time setting. Look in xcode, at the project settings (there are 3 possible states, Required, Supported, and unsupported -- make sure it's not Required).

backtraces are generated automatically when an app crashes -- check out the crash log.

There are some known issues with QC+GC, so perhaps simply removing the GC requirement will make it happy? I have no idea really -- I've never had a PPC mac (and have zero experience with 64bit stuff in ppc-land, as Rosetta doesn't run 64bit ppc binaries, sadly)

Lango's picture
Re: Leopard 64 bit Runtime problem on G5 Mac

Out of interest what is GC?

cwright's picture
Re: Leopard 64 bit Runtime problem on G5 Mac

GC = Garbage Collection (specifically, automatic garbage collection)

Looks like that won't change much, but it's difficult to tell -- the log above has GC stuff for the QC editor only (possibly a plugin is trying to use it?).... Not sure about QCPlayer.

cybero's picture
Re: Leopard 64 bit Runtime problem on G5 Mac

I slotted QC into an XCode Empty Project, ran it in debug mode, everything was plain sailing until, yet again, looking to run 64 runtime, 32 bit was OK, so was running Tiger compatible runtime compositions [still have a wealth of those left].

At 64 bit runtime the application spat its proverbial dummy out and gave me this output.

0x927a7114  <+0180>  cmplw   cr7,r0,r4
0x927a7118  <+0184>  bge+    cr7,0x927a7160 <-[QCCache(Internal) _filterResources:reset:]+256>
0x927a711c  <+0188>  stw     r4,60(r30)
0x927a7120  <+0192>  mr      r3,r9
0x927a7124  <+0196>  rlwinm  r4,r4,2,0,29
0x927a7128  <+0200>  li      r5,1
0x927a712c  <+0204>  bl      0x928d6ecc <dyld_stub_NSReallocateCollectable>
0x927a7130  <+0208>  mr      r4,r30
0x927a7134  <+0212>  li      r5,88
0x927a7138  <+0216>  bla     0xfffefec0
0x927a713c  <+0220>  lwz     r4,60(r30)
0x927a7140  <+0224>  li      r5,0
0x927a7144  <+0228>  lwz     r3,92(r30)
0x927a7148  <+0232>  rlwinm  r4,r4,2,0,29
0x927a714c  <+0236>  bl      0x928d6ecc <dyld_stub_NSReallocateCollectable>
0x927a7150  <+0240>  mr      r4,r30
0x927a7154  <+0244>  li      r5,92
0x927a7158  <+0248>  bla     0xfffefec0
0x927a715c  <+0252>  lwz     r3,112(r30)
0x927a7160  <+0256>  addis   r4,r31,3520
0x927a7164  <+0260>  lwz     r4,-18056(r4)
0x927a7168  <+0264>  bla     0xfffeff00
0x927a716c  <+0268>  cmpwi   cr7,r3,0
0x927a7170  <+0272>  bne-    cr7,0x927a71b0 <-[QCCache(Internal) _filterResources:reset:]+336>
0x927a7174  <+0276>  cmpwi   cr4,r27,0
0x927a7178  <+0280>  beq-    cr4,0x927a71d4 <-[QCCache(Internal) _filterResources:reset:]+372>
0x927a717c  <+0284>  addis   r4,r31,3520
0x927a7180  <+0288>  mr      r3,r30
0x927a7184  <+0292>  lwz     r4,-18060(r4)
0x927a7188  <+0296>  bla     0xfffeff00
0x927a718c  <+0300>  cmpwi   cr7,r3,0
0x927a7190  <+0304>  bne+    cr7,0x927a71d4 <-[QCCache(Internal) _filterResources:reset:]+372>
0x927a7194  <+0308>  addis   r29,r31,3520
0x927a7198  <+0312>  lwz     r3,112(r30)
0x927a719c  <+0316>  lwz     r4,-18024(r29)
0x927a71a0  <+0320>  bla     0xfffeff00
0x927a71a4  <+0324>  cmpwi   cr7,r3,0
0x927a71a8  <+0328>  bne-    cr7,0x927a71d8 <-[QCCache(Internal) _filterResources:reset:]+376>
0x927a71ac  <+0332>  b       0x927a71b8 <-[QCCache(Internal) _filterResources:reset:]+344>
0x927a71b0  <+0336>  cmpwi   cr4,r27,0
0x927a71b4  <+0340>  addis   r29,r31,3520
0x927a71b8  <+0344>  addis   r4,r31,3520
0x927a71bc  <+0348>  lwz     r3,112(r30)
0x927a71c0  <+0352>  mr      r5,r27
0x927a71c4  <+0356>  lwz     r4,-18052(r4)
0x927a71c8  <+0360>  li      r6,1
0x927a71cc  <+0364>  bla     0xfffeff00
0x927a71d0  <+0368>  b       0x927a71d8 <-[QCCache(Internal) _filterResources:reset:]+376>
0x927a71d4  <+0372>  addis   r29,r31,3520
0x927a71d8  <+0376>  lwz     r4,-18024(r29)
0x927a71dc  <+0380>  lwz     r3,112(r30)
0x927a71e0  <+0384>  bla     0xfffeff00
0x927a71e4  <+0388>  mr.     r28,r3
0x927a71e8  <+0392>  beq-    0x927a73d0 <-[QCCache(Internal) _filterResources:reset:]+880>
0x927a71ec  <+0396>  lwz     r0,68(r30)
0x927a71f0  <+0400>  cmplw   cr7,r28,r0
0x927a71f4  <+0404>  ble+    cr7,0x927a73d0 <-[QCCache(Internal) _filterResources:reset:]+880>
0x927a71f8  <+0408>  addis   r4,r31,3520
0x927a71fc  <+0412>  lwz     r3,112(r30)
0x927a7200  <+0416>  lwz     r4,-18020(r4)
0x927a7204  <+0420>  bla     0xfffeff00
0x927a7208  <+0424>  lwz     r5,68(r30)
0x927a720c  <+0428>  mr      r29,r3
0x927a7210  <+0432>  b       0x927a73b8 <-[QCCache(Internal) _filterResources:reset:]+856>
0x927a7214  <+0436>  lwz     r9,108(r30)
0x927a7218  <+0440>  cmpwi   cr7,r9,0
0x927a721c  <+0444>  beq-    cr7,0x927a7258 <-[QCCache(Internal) _filterResources:reset:]+504>
0x927a7220  <+0448>  rlwinm  r0,r5,2,0,29
0x927a7224  <+0452>  mr      r12,r9
0x927a7228  <+0456>  lwz     r5,120(r30)
0x927a722c  <+0460>  lwzx    r2,r29,r0
0x927a7230  <+0464>  mtctr   r9
0x927a7234  <+0468>  lwz     r4,12(r2)
0x927a7238  <+0472>  lwz     r3,0(r2)
0x927a723c  <+0476>  bctrl
0x927a7240  <+0480>  addis   r2,r31,23
0x927a7244  <+0484>  lfs     f0,-32228(r2)
0x927a7248  <+0488>  fmr     f31,f1
0x927a724c  <+0492>  fcmpu   cr7,f1,f0
0x927a7250  <+0496>  ble+    cr7,0x927a73ac <-[QCCache(Internal) _filterResources:reset:]+844>
0x927a7254  <+0500>  b       0x927a7328 <-[QCCache(Internal) _filterResources:reset:]+712>
0x927a7258  <+0504>  lwz     r9,72(r30)
0x927a725c  <+0508>  rlwinm  r0,r5,2,0,29
0x927a7260  <+0512>  li      r7,0
0x927a7264  <+0516>  lwzx    r2,r29,r0
0x927a7268  <+0520>  lwz     r0,80(r30)
0x927a726c  <+0524>  cmpwi   cr7,r9,0
0x927a7270  <+0528>  addi    r9,r9,1
0x927a7274  <+0532>  lwz     r10,84(r30)
0x927a7278  <+0536>  lwz     r4,4(r2)
0x927a727c  <+0540>  mtctr   r9
0x927a7280  <+0544>  lwz     r6,12(r2)
0x927a7284  <+0548>  mr      r8,r0
0x927a7288  <+0552>  cmpwi   cr6,r0,0
0x927a728c  <+0556>  bne+    cr7,0x927a7318 <-[QCCache(Internal) _filterResources:reset:]+696>
0x927a7290  <+0560>  li      r0,1
0x927a7294  <+0564>  mtctr   r0
0x927a7298  <+0568>  b       0x927a7318 <-[QCCache(Internal) _filterResources:reset:]+696>
0x927a729c  <+0572>  bne+    cr6,0x927a72a8 <-[QCCache(Internal) _filterResources:reset:]+584>
0x927a72a0  <+0576>  mr      r0,r7
0x927a72a4  <+0580>  b       0x927a72ac <-[QCCache(Internal) _filterResources:reset:]+588>
0x927a72a8  <+0584>  lwz     r0,0(r8)
0x927a72ac  <+0588>  cmplw   cr7,r0,r4
0x927a72b0  <+0592>  bge-    cr7,0x927a73b0 <-[QCCache(Internal) _filterResources:reset:]+848>
0x927a72b4  <+0596>  rlwinm  r0,r0,4,0,27
0x927a72b8  <+0600>  lwz     r2,0(r10)
0x927a72bc  <+0604>  lwzx    r9,r6,r0
0x927a72c0  <+0608>  add     r11,r6,r0
0x927a72c4  <+0612>  cmpw    cr7,r9,r2
0x927a72c8  <+0616>  bne+    cr7,0x927a7300 <-[QCCache(Internal) _filterResources:reset:]+672>
0x927a72cc  <+0620>  lwz     r0,4(r11)
0x927a72d0  <+0624>  lwz     r2,4(r10)
0x927a72d4  <+0628>  cmpw    cr7,r0,r2
0x927a72d8  <+0632>  bne+    cr7,0x927a7300 <-[QCCache(Internal) _filterResources:reset:]+672>
0x927a72dc  <+0636>  lwz     r0,8(r11)
0x927a72e0  <+0640>  lwz     r2,8(r10)
0x927a72e4  <+0644>  cmpw    cr7,r0,r2
0x927a72e8  <+0648>  bne+    cr7,0x927a7300 <-[QCCache(Internal) _filterResources:reset:]+672>
0x927a72ec  <+0652>  lwz     r2,12(r11)
0x927a72f0  <+0656>  li      r9,1
0x927a72f4  <+0660>  lwz     r0,12(r10)
0x927a72f8  <+0664>  cmpw    cr7,r2,r0
0x927a72fc  <+0668>  beq-    cr7,0x927a7304 <-[QCCache(Internal) _filterResources:reset:]+676>
0x927a7300  <+0672>  li      r9,0
0x927a7304  <+0676>  cmpwi   cr7,r9,0
0x927a7308  <+0680>  addi    r10,r10,16
0x927a730c  <+0684>  beq-    cr7,0x927a73b0 <-[QCCache(Internal) _filterResources:reset:]+848>
0x927a7310  <+0688>  addi    r7,r7,1

The first significant breakpoint came at

 0x927a7214 <+0436> lwz r9,108(r30)

I am still making sense of this. It isn't exactly severe. It may be something that will only improve once I update my nVidia GeForce 5200 [well overdue].

There re certainly some Open Source and Commercial plugins that are only fully operational, or operationally efficient if run with either the newer graphics cards and / or newer processors [Intel to an experienced PPC user such as myself]

I honestly think that it is really a matter of updating to an Intel form factor Mac.

I hope I'm entirely wrong about that.

cybero's picture
Re: Leopard 64 bit Runtime problem on G5 Mac

I can now help to put this one to bed.

Completely.

With warm milk and cookies :-)

I did completely strip out all the 3rd party plugins that had not provoked an error message in the QC runtime console log.

I ran QC as it was first installed [checked directory listings with original installation logs]

Ran the file that had provoked an error log response and null 64 bit rendering.

It ran, with a gaussian blur to replace the v002 blur patch, though this had not provoked an error response if it could be put into play. I was just experimenting with a purely default installation workbench.

I ran QC in Debug with Activity Monitor / Instruments and retained the record; Instruments worked unlike any non command line monitor I've ever worked with before - fantastic.

It transpired - rather unsurprisingly - that the file ran in Tiger, Leopard 32 and Leopard 64 bit runtime.

So Leopard 64 bit rendering is feasible and sustainable, although , more likely than not down to my graphics card, the default nVidia, I find that the 64 bit Leopard is really rather glacial.

Good news, little or no perceptible detioration to 64 bit rendering was resultant upon reinstalling Kineme Core.

Now I shall be testing each and every one of the 3rd party plugins and Developer plugins that I had previously installed via Official or 3rd Party API.

I shan't be boring you with any more of the details, suffice to say that I've learnt a considerable amount about how my PPC Mac can and also can't work with the QC framework and its indigenous and 3rd Party extensions. Thanks to all of you who gave such good advice about this. Much appreciated.

One thing is for sure, test bedding of materials for later edition Mac consumers is only going to be thoroughly feasible to some extent with a fairly up to date machine, although I shan't be giving this reliable workhorse up.

Anyway here's the picture, the proof. Don't wait for the movie :-)





I think I might well be using the slightly revised [Gaussian Blur for v002blur] Spirograph in my future testing of each separate plugin.

There was talk of a clean up app, snap-in for QC sometime ago, I wonder if it could be made to detect if there were any conflicts between the plugins called upon at runtime. I still am to find the miscreant but the good news is that Kineme Core is not one of the items causing any difficulty.

However, Kineme 3D is perceived in the QC runtime console as an unexpected architecture , although the 64 bit runtime still operates, as does 3D rendering, if called upon.  no matching architecture in universal wrapper

Kineme GL Tools does not provoke an error message.

Just as a matter of interest, how well do Intel machines cope with 64 bit runtime rendering? How often, if at all, do they drop to 32 bit operation?

When I find the actual miscreant, I'll let you all know.

PreviewAttachmentSize
LeopardPPC64bitruntime.jpg
LeopardPPC64bitruntime.jpg20.37 KB

cwright's picture
Re: Leopard 64 bit Runtime problem on G5 Mac

Glad you got it somewhat worked out -- keep us posted on the malfunctioning 64bit stuff so we can address what we can (Kineme3D will likely never be 64bit ppc, but otherwise we should be able to support everything else).

Intel Macs generally don't run QC in 64bit. Almost all our development takes place in 32-bit mode (though with Snow Leopard that may change, depending on how pervasive 64bit apps are in 10.6). 32/64 bit operation is a per-application setting. Either an app is 64bit, or it's not. It can't change on the fly. All the QC-using apps I've seen thus far are 32-bit only, so 64bit is simply a novelty. we've toyed with a 64bit version of QuartzCrystal, but then QuickTime/QTKit become the weak points (API holes, etc).

KinemeCore should be 64-bit clean as of the latest round of betas -- we're working on updating/future proofing it a bit more for future beta releases (the majority of the code was written in my first 6 months of OS X programming, so lots of silly mistakes stuck around -- just finished a heroic cleanup this morning to redress most of that). If you find anything otherwise, please let us know.

From the profiling I've seen, 64bit Leopard is Intel optimized, not so much for PPC... the writing's on the wall, it seems...

cybero's picture
Re: Leopard 64 bit Runtime problem on G5 Mac - PostScript

Opened up Quartz Composer and the Kineme Core saw fit to call back home and so I thought lets send that useful information to Kineme, clicked submit and this ensued

0x953003d8: -[NSView _drawRect:clip:]
0x952ff2f8: -[NSView _recursiveDisplayAllDirtyWithLockFocus:visRect:]
0x952ff5dc: -[NSView _recursiveDisplayAllDirtyWithLockFocus:visRect:]
0x952ff5dc: -[NSView _recursiveDisplayAllDirtyWithLockFocus:visRect:]
0x952ff5dc: -[NSView _recursiveDisplayAllDirtyWithLockFocus:visRect:]
0x952ff5dc: -[NSView _recursiveDisplayAllDirtyWithLockFocus:visRect:]
0x952fe1a8: -[NSView _recursiveDisplayRectIfNeededIgnoringOpacity:isVisibleRect:rectIsVisibleRectForView:topView:]
0x952fdbe0: -[NSThemeFrame _recursiveDisplayRectIfNeededIgnoringOpacity:isVisibleRect:rectIsVisibleRectForView:topView:]
0x952fa9ac: -[NSView _displayRectIgnoringOpacity:isVisibleRect:rectIsVisibleRectForView:]
0x9524e870: -[NSWindow displayIfNeeded]
0x9524e6d0: _handleWindowNeedsDisplay
0x95a12f64: __CFRunLoopDoObservers
0x95a1410c: CFRunLoopRunSpecific
0x915c2bc8: RunCurrentEventLoopInMode
0x915c29ec: ReceiveNextEventCommon
0x915c282c: BlockUntilNextEventMatchingListInMode
0x9524c728: _DPSNextEvent
0x9524c0e0: -[NSApplication nextEventMatchingMask:untilDate:inMode:dequeue:]
0x95245d9c: -[NSApplication run]
0x00003f4c

Shut down QC, withdrew Kineme 3D & GL Tools restarted QC, all OK.

Definitely getting some odd results with QC at present.

cybero's picture
Re: Leopard 64 bit Runtime problem on G5 Mac

How true indeed.

I'm fairly sure most of my reported problems will be reduced by getting an Intel workbench. A faster graphics card will speed up rendering too.

Thanks again for your informed input, I shall have to run and exploit all and any 3rd party plugins with real care.

32 bit rendering for the time being then [ I am given to understand that one potential incarnation of Snow Leopard will only have extensive deployment of 64 bit system & default applications for a fairly limited hardware set].

Thanks for confirming a whole load of things, oh and peeking my interest in Instruments - sweet bit of kit.