Any one up for OSX work.

It was in this moment, when all hope had faded, that Isild-- oh, wrong line :slight_smile:

But seriously, thanks a lot! Youā€™re the best :slight_smile: Also thanks for the clear explanation, next time something like this occurs, Iā€™ll know what actually happens.

Weā€™ll know for sure when compiling has finished, but Iā€™d bet my bottom dollar on it.

Marvellous ! :slight_smile: Thanks for the explanation.

I look forward too see the end of the next build :slight_smile:

DMG is updated. Let me know if it works.

WOHOO :slight_smile:

setShaderAuto() works :slight_smile:

Thanks a bundle ! :slight_smile:

Great! And thanks to you for your patience and for reporting this bug in time :slight_smile:

Iā€™m aware of the syntax errors in the cartoon shader and will get that fixed soon.
Are the problems with the ā€œnot powerful enoughā€ bug fixed, too?

Yes, for all the samples but the Cartoon-Shader/Tut-Cartoon-Shader-Basic

Strangely enough, the advanced one works while the basic doesnā€™tā€¦

Hmm, sounds like a parasite-buffer-vs-real-buffer problem.
If you want, could you try out the new DMG and see if it works?
Iā€™m pretty sure it will work now. Plus, it prints out some debug information (marked with ā€œDEBUGINFOā€)

Tested, and works :smiley:

Thanks!

Really? Sweet :slight_smile: What does it print out?

$ python ./Tut-Cartoon-Basic.py 
DirectStart: Starting the game.
Known pipe types:
  osxGraphicsPipe
(all display modules loaded.)
:util(warning): Adjusting global clock's real time by 0.614944 seconds.
DEBUGINFO: GLGraphicsBuffer: 1
:util(warning): Adjusting global clock's real time by -1.00788 seconds.
:gobj(error): created-shader: (33) : warning C7011: implicit cast from "float4" to "float3"
:gobj(error): created-shader: (33) : error C0000: syntax error, unexpected ')', expecting ';' or ',' at token ")"
:gobj(error): created-shader: (33) : error C0501: type name expected at token ")"
:gobj(error): created-shader: (33) : warning C7011: implicit cast from "float4" to "float3"
:gobj(error): created-shader: (33) : error C0000: syntax error, unexpected ')', expecting ';' or ',' at token ")"
:gobj(error): created-shader: (33) : error C0501: type name expected at token ")"
:gobj(error): created-shader: (33) : warning C7011: implicit cast from "float4" to "float3"
:gobj(error): created-shader: (33) : error C0000: syntax error, unexpected ')', expecting ';' or ',' at token ")"
:gobj(error): created-shader: (33) : error C0501: type name expected at token ")"
:gobj(error): created-shader: (33) : warning C7011: implicit cast from "float4" to "float3"
:gobj(error): created-shader: (33) : error C0000: syntax error, unexpected ')', expecting ';' or ',' at token ")"
:gobj(error): created-shader: (33) : error C0501: type name expected at token ")"
:gobj(error): created-shader: (33) : warning C7011: implicit cast from "float4" to "float3"
:gobj(error): created-shader: (33) : error C0000: syntax error, unexpected ')', expecting ';' or ',' at token ")"
:gobj(error): created-shader: (33) : error C0501: type name expected at token ")"
:gobj(error): created-shader: (33) : warning C7011: implicit cast from "float4" to "float3"
:gobj(error): created-shader: (33) : error C0000: syntax error, unexpected ')', expecting ';' or ',' at token ")"
:gobj(error): created-shader: (33) : error C0501: type name expected at token ")"
:gobj(error): created-shader: (36) : warning C7011: implicit cast from "float4" to "float3"
:gobj(error): created-shader: (36) : error C0000: syntax error, unexpected ')', expecting ';' or ',' at token ")"
:gobj(error): created-shader: (36) : error C0501: type name expected at token ")"
:gobj(error): created-shader: (36) : warning C7011: implicit cast from "float4" to "float3"
:gobj(error): created-shader: (36) : error C0000: syntax error, unexpected ')', expecting ';' or ',' at token ")"
:gobj(error): created-shader: (36) : error C0501: type name expected at token ")"

The important line here being: DEBUGINFO: GLGraphicsBuffer: 1
and everything after it noise from a incorrectly written shader ?

(additional edit) Sorry for the late answer, I was interrupted, and thought I had pushed ā€œsubmitā€ :slight_smile:

I have tried the other demos (those that arenā€™t specifically announced as shader demos) and one of them worries me.

The firefly demo (which used to crash badly) doesnā€™t crash anymore.
But thereā€™s an error which I havnā€™t traced the source for yet:
$ python ./Tut-Fireflies.py
DirectStart: Starting the game.
Known pipe types:
osxGraphicsPipe
(all display modules loaded.)
:util(warning): Adjusting global clockā€™s real time by 0.776161 seconds.
DEBUGINFO: GLGraphicsBuffer: 1
DEBUGINFO: GLGraphicsBuffer: 1
:util(warning): Adjusting global clockā€™s real time by -58.1736 seconds.
:display:gsg:glgsg(error): Could not load Cg fragment program:/Volumes/Diburnium/Users/thor/Downloads/panda3d-1.5.4/samples/Fireflies/model.sha (arbfp1 Error on line 2: unrecognised option (hint: ā€˜ATI_draw_buffersā€™))

Now, since I have an nVidia graphics card, I donā€™t know why it would want to call the ATI_draw_buffers function (if any such exists).

The demo runs, so to speak, but since itā€™s using dual buffers, and the shader isnā€™t running, itā€™s output is nil.

Then, adding to the conveyor belt :slight_smile: Have you done any audio work on Panda ? The ffmpeg port seems to think that Iā€™m calling the PlayStation audio functions or something, and as such, itā€™s rather random if and when the audio works - or not (which is more common).

Another strange one:

In the Motion-Trails demo, the background should be something, but is actually a partially overlapping 2-d image of bits and pieces that have at some time been in my display bufferā€¦

Running the demo today displays parts of a presentation I was working on yesterday, partials from a panda project I was working on yesterday, a black frame white boxesā€¦

Very strangeā€¦ (not that it affects me directly, not yet at least, but I thought youā€™d want to know)

Iā€™ve already fixed the bug with the syntax error, and have recently checked it into CVS (but have not updated the DMG yet, I think.)

I donā€™t really know about the ATI_draw_buffers thing. Can you try and execute this command:

glxinfo | grep -i ati_draw_buffers

I donā€™t have a clue about why ffmpeg behaves oddly. Note that you can also switch to OpenAL by editing the Config.prc file and replacing ā€œp3fmod_audioā€ with ā€œp3openal_audioā€. I have no clue how stable the OpenAL implementation on OSX is, though.

The outpu from glxinfo yields nothing, so I grepped for ā€œatiā€ with the following result:

$ glxinfo | grep -i ati
    GLX_ARB_multisample, GLX_EXT_visual_info, GLX_EXT_visual_rating, 
    GLX_EXT_visual_info, GLX_EXT_visual_rating, GLX_MESA_allocate_memory, 
    GLX_EXT_visual_rating
OpenGL vendor string: NVIDIA Corporation
    GL_EXT_blend_equation_separate, GL_EXT_texture_mirror_clamp, 
    GL_APPLE_float_pixels, GL_ATI_texture_float, GL_ARB_texture_float, 
    GL_NV_vertex_program3, GL_ATI_texture_mirror_once, 
    GL_ATI_texture_env_combine3, GL_ATI_separate_stencil, 

I ran a simple project I have on ffmpeg. Figure that it decides to (mostly) work now :slight_smile: (it doesnā€™t all that well on my laptop)

The error it spits out is:
:audio(error): _channel->stop(): An invalid object handle was used.

If I get that error, the subsequent sound wonā€™t be played (usually, although finding a pattern isnā€™t that easyā€¦)

But if I switch to OpenAL, life gets moreā€¦ ummā€¦ interesting :slight_smile:

$ python ./factory.py 
DirectStart: Starting the game.
Known pipe types:
  osxGraphicsPipe
(all display modules loaded.)
:util(warning): Adjusting global clock's real time by 0.379033 seconds.
:util(warning): Adjusting global clock's real time by -2.01429 seconds.
:interval(error): Event 2 not on active list.
Assertion failed: false at line 898 of direct/src/interval/cMetaInterval.cxx
Traceback (most recent call last):
  File "Panda3D-tpl-rw/Panda3D/1.6.0/lib/direct/src/showbase/ShowBase.py", line 1521, in __ivalLoop
  File "Panda3D-tpl-rw/Panda3D/1.6.0/lib/direct/src/interval/IntervalManager.py", line 95, in step
AssertionError: false at line 898 of direct/src/interval/cMetaInterval.cxx
:task(error): Exception occurred in PythonTask ivalLoop
Traceback (most recent call last):
  File "./factory.py", line 12, in <module>
    run()
  File "Panda3D-tpl-rw/Panda3D/1.6.0/lib/direct/src/showbase/ShowBase.py", line 2418, in run
  File "Panda3D-tpl-rw/Panda3D/1.6.0/lib/direct/src/task/TaskNew.py", line 471, in run
  File "Panda3D-tpl-rw/Panda3D/1.6.0/lib/direct/src/task/TaskNew.py", line 429, in step
  File "Panda3D-tpl-rw/Panda3D/1.6.0/lib/direct/src/showbase/ShowBase.py", line 1521, in __ivalLoop
  File "Panda3D-tpl-rw/Panda3D/1.6.0/lib/direct/src/interval/IntervalManager.py", line 95, in step
AssertionError: false at line 898 of direct/src/interval/cMetaInterval.cxx

So, apparently, OpenAL isnā€™t the way to go - hereā€¦ :slight_smile:

Every time you say that I have this recurring fantasy where I tell my good friend Steve Jobs to send you a computer.

Ok, back to the audio issue - if anyone has an idea :slight_smile:

These are the errors that generally occur (this is from a short run of a modified version of ā€œAdvancedRalphā€)

:util(warning): Adjusting global clock's real time by 0.478241 seconds.
:audio(error): createSound(/Applications/Panda3D/1.6.0/models/audio/sfx/GUI_rollover.wav): End of file unexpectedly reached while trying to read essential data (truncated data?). 
:audio(error): createSound (blank): Not enough memory or resources. 
:audio(error): _sound->getDefaults(): PS2 only.  fmodex.irx failed to initialize.  This is most likely because you forgot to load it. 
:audio(error): createSound(/Applications/Panda3D/1.6.0/models/audio/sfx/GUI_click.wav): End of file unexpectedly reached while trying to read essential data (truncated data?). 
:audio(error): createSound (blank): Not enough memory or resources. 
:audio(error): _sound->getDefaults(): PS2 only.  fmodex.irx failed to initialize.  This is most likely because you forgot to load it. 
:util(warning): Adjusting global clock's real time by -8.74525 seconds.
:audio(error): _system->playSound(): Not enough memory or resources. 
:audio(error): _channel->setCallback(): PS2 only.  fmodex.irx failed to initialize.  This is most likely because you forgot to load it. 
:audio(error): _channel->setPosition(): PS2 only.  fmodex.irx failed to initialize.  This is most likely because you forgot to load it. 
:audio(error): _sound->getMode(): PS2 only.  fmodex.irx failed to initialize.  This is most likely because you forgot to load it. 
:audio(error): _sound->getMode(): PS2 only.  fmodex.irx failed to initialize.  This is most likely because you forgot to load it. 
:audio(error): _channel->setPaused(): PS2 only.  fmodex.irx failed to initialize.  This is most likely because you forgot to load it. 
:audio(error): _system->playSound(): Not enough memory or resources. 
:audio(error): _channel->setCallback(): PS2 only.  fmodex.irx failed to initialize.  This is most likely because you forgot to load it. 
:audio(error): _channel->setPosition(): PS2 only.  fmodex.irx failed to initialize.  This is most likely because you forgot to load it. 
:audio(error): _sound->getMode(): PS2 only.  fmodex.irx failed to initialize.  This is most likely because you forgot to load it. 
:audio(error): _sound->getMode(): PS2 only.  fmodex.irx failed to initialize.  This is most likely because you forgot to load it. 
:audio(error): _channel->setPaused(): PS2 only.  fmodex.irx failed to initialize.  This is most likely because you forgot to load it. 
:audio(error): _system->playSound(): Not enough memory or resources. 
:audio(error): _channel->setCallback(): PS2 only.  fmodex.irx failed to initialize.  This is most likely because you forgot to load it. 
:audio(error): _channel->setPosition(): PS2 only.  fmodex.irx failed to initialize.  This is most likely because you forgot to load it. 
:audio(error): _sound->getMode(): PS2 only.  fmodex.irx failed to initialize.  This is most likely because you forgot to load it. 
:audio(error): _sound->getMode(): PS2 only.  fmodex.irx failed to initialize.  This is most likely because you forgot to load it. 
:audio(error): _channel->setPaused(): PS2 only.  fmodex.irx failed to initialize.  This is most likely because you forgot to load it. 
:audio(error): _system->playSound(): Not enough memory or resources. 
:audio(error): _channel->setCallback(): PS2 only.  fmodex.irx failed to initialize.  This is most likely because you forgot to load it. 
:audio(error): _channel->setPosition(): PS2 only.  fmodex.irx failed to initialize.  This is most likely because you forgot to load it. 
:audio(error): _sound->getMode(): PS2 only.  fmodex.irx failed to initialize.  This is most likely because you forgot to load it. 
:audio(error): _sound->getMode(): PS2 only.  fmodex.irx failed to initialize.  This is most likely because you forgot to load it. 
:audio(error): _channel->setPaused(): PS2 only.  fmodex.irx failed to initialize.  This is most likely because you forgot to load it. 
:audio(error): _system->playSound(): Not enough memory or resources. 
:audio(error): _channel->setCallback(): PS2 only.  fmodex.irx failed to initialize.  This is most likely because you forgot to load it. 
:audio(error): _channel->setPosition(): PS2 only.  fmodex.irx failed to initialize.  This is most likely because you forgot to load it. 
:audio(error): _sound->getMode(): PS2 only.  fmodex.irx failed to initialize.  This is most likely because you forgot to load it. 
:audio(error): _sound->getMode(): PS2 only.  fmodex.irx failed to initialize.  This is most likely because you forgot to load it. 
:audio(error): _channel->setPaused(): PS2 only.  fmodex.irx failed to initialize.  This is most likely because you forgot to load it. 
:audio(error): _system->playSound(): Not enough memory or resources. 
:audio(error): _channel->setCallback(): PS2 only.  fmodex.irx failed to initialize.  This is most likely because you forgot to load it. 
:audio(error): _channel->setPosition(): PS2 only.  fmodex.irx failed to initialize.  This is most likely because you forgot to load it. 
:audio(error): _sound->getMode(): PS2 only.  fmodex.irx failed to initialize.  This is most likely because you forgot to load it. 
:audio(error): _sound->getMode(): PS2 only.  fmodex.irx failed to initialize.  This is most likely because you forgot to load it. 
:audio(error): _channel->setPaused(): PS2 only.  fmodex.irx failed to initialize.  This is most likely because you forgot to load it. 
:audio(error): _system->playSound(): Not enough memory or resources. 
:audio(error): _channel->setCallback(): PS2 only.  fmodex.irx failed to initialize.  This is most likely because you forgot to load it. 
:audio(error): _channel->setPosition(): PS2 only.  fmodex.irx failed to initialize.  This is most likely because you forgot to load it. 
:audio(error): _sound->getMode(): PS2 only.  fmodex.irx failed to initialize.  This is most likely because you forgot to load it. 
:audio(error): _sound->getMode(): PS2 only.  fmodex.irx failed to initialize.  This is most likely because you forgot to load it. 
:audio(error): _channel->setPaused(): PS2 only.  fmodex.irx failed to initialize.  This is most likely because you forgot to load it. 
:audio(error): _system->playSound(): Not enough memory or resources. 
:audio(error): _channel->setCallback(): PS2 only.  fmodex.irx failed to initialize.  This is most likely because you forgot to load it. 
:audio(error): _channel->setPosition(): PS2 only.  fmodex.irx failed to initialize.  This is most likely because you forgot to load it. 
:audio(error): _sound->getMode(): PS2 only.  fmodex.irx failed to initialize.  This is most likely because you forgot to load it. 
:audio(error): _sound->getMode(): PS2 only.  fmodex.irx failed to initialize.  This is most likely because you forgot to load it. 
:audio(error): _channel->setPaused(): PS2 only.  fmodex.irx failed to initialize.  This is most likely because you forgot to load it. 
:audio(error): _system->playSound(): Not enough memory or resources. 
:audio(error): _channel->setCallback(): PS2 only.  fmodex.irx failed to initialize.  This is most likely because you forgot to load it. 
:audio(error): _channel->setPosition(): PS2 only.  fmodex.irx failed to initialize.  This is most likely because you forgot to load it. 
:audio(error): _sound->getMode(): PS2 only.  fmodex.irx failed to initialize.  This is most likely because you forgot to load it. 
:audio(error): _sound->getMode(): PS2 only.  fmodex.irx failed to initialize.  This is most likely because you forgot to load it. 
:audio(error): _channel->setPaused(): PS2 only.  fmodex.irx failed to initialize.  This is most likely because you forgot to load it. 

The system uses ffmpeg (since OpenAL doesnā€™t work at all on OS X)

I kinda hate to resurrect such a old thread, but it does apply.

I am trying out panda on mac tiger and trying ./configure osx, but it stops very soon complaining that it canā€™t find install-sh,and ā€˜.ā€™ is a path it claims to not find it in, and im sure it IS there.

Is this a weird mac path issue or some ENV path issue or something I"ve yet to setup ?

thx anyone
lee

I suggest you use the makepanda script to compile Panda3D rather than ppremake. Itā€™s a lot easier to use. This thread dates back to when makepanda didnā€™t support OSX yet.