Any one up for OSX work.

Return to Compiling or Editing the Panda Source

Postby WhiteFang » Mon Mar 02, 2009 1:46 pm

I concur. There are no references that I can find.

Furthermore, the code:
Code: Select all
ShaderGenerator *ShaderGenerator::
get_default() {
  if (_default_generator == (ShaderGenerator *)NULL) {
    _default_generator = new ShaderGenerator;
  }
  return _default_generator;
}


Can't get much simpler...

GCC on Mac OS X returns 0 for undefined variables - same as NULL, so the if() should work.

So if this is the problem, then I'm stumped as well :|
WhiteFang
 
Posts: 22
Joined: Mon Dec 01, 2008 1:35 pm

Postby drwr » Mon Mar 02, 2009 2:05 pm

Try putting a cerr statement within the get_default() method, to ensure that it is being called and that it is initializing the pointer correctly. Also put a cerr statement when the pointer is being queried, to ensure that this happens after get_default() has been called.

David
drwr
 
Posts: 11425
Joined: Fri Feb 13, 2004 12:42 pm
Location: Glendale, CA

Postby rdb » Mon Mar 02, 2009 3:55 pm

Okay. WhiteFang, try the new DMG. I totally recompiled it from scratch (this time, gdb "bt full" should work too.). I spawned some extra debug info in set_default, get_default, and the constructor and destructor.
rdb
 
Posts: 9693
Joined: Mon Dec 04, 2006 5:58 am
Location: Netherlands

Postby WhiteFang » Tue Mar 03, 2009 4:27 am

(gdb) run
Starting program: /Applications/Panda3D/1.6.0/bin/pview
Reading symbols for shared libraries ++++++++++warning: .o file "/Developer/SDKs/MacOSX10.4u.sdk/usr/lib/gcc/i686-apple-darwin9/4.0.1/libgcc_eh.a(unwind-dw2.o)" more recent than executable timestamp
warning: .o file "/Developer/SDKs/MacOSX10.4u.sdk/usr/lib/gcc/i686-apple-darwin9/4.0.1/libgcc_eh.a(unwind-dw2-fde-darwin.o)" more recent than executable timestamp
..................................................................................... done
Set here
SGB Constructed : 0x7212f74
current :0
set_default called, with SGB 0x7212f74
SGB::get_default called: 0x7212f74:1
default SG :0x7212f74
SGB::get_default called: 0x7212f74:1
default SGB:0x7212f74
Reading symbols for shared libraries warning: Could not find object file "/Users/pro-rsoft/panda3d/built/tmp/pandagl_pandagl.o" - no debug information available for "panda/metalibs/pandagl/pandagl.cxx".

warning: Could not find object file "/Users/pro-rsoft/panda3d/built/tmp/glgsg_config_glgsg.o" - no debug information available for "panda/src/glgsg/config_glgsg.cxx".

warning: Could not find object file "/Users/pro-rsoft/panda3d/built/tmp/glgsg_glgsg.o" - no debug information available for "panda/src/glgsg/glgsg.cxx".

warning: Could not find object file "/Users/pro-rsoft/panda3d/built/tmp/osxdisplay_composite.o" - no debug information available for "panda/src/osxdisplay/osxdisplay_composite.mm".

.warning: Could not find object file "/Users/pro-rsoft/panda3d/built/tmp/glstuff_glpure.o" - no debug information available for "panda/src/glstuff/glpure.cxx".

........... done
Known pipe types:
osxGraphicsPipe
(all display modules loaded.)
Reading symbols for shared libraries . done
Reading symbols for shared libraries . done
Reading symbols for shared libraries . done
Reading symbols for shared libraries . done
Reading symbols for shared libraries . done
Reading symbols for shared libraries . done
Reading symbols for shared libraries .. done
Reading symbols for shared libraries . done
Reading symbols for shared libraries .. done
Reading symbols for shared libraries . done
Reading symbols for shared libraries . done
Reading symbols for shared libraries .. done
Reading symbols for shared libraries . done
Reading symbols for shared libraries . done
a:0x1e429964:3
b:1
c:0x27d6cc:3
d:0x27d1a4:16
1:0x27d6cc
2:0
SGB::get_default called: 0
3:0

Program received signal EXC_BAD_ACCESS, Could not access memory.
Reason: KERN_PROTECTION_FAILURE at address: 0x00000000
0x039f4dfe in RenderState::get_generated_shader ()
(gdb) where
#0 0x039f4dfe in RenderState::get_generated_shader ()
#1 0x07325969 in GLGraphicsStateGuardian::set_state_and_transform ()
#2 0x03bf86e7 in CullHandler::draw ()
#3 0x03bf6d31 in CullBinStateSorted::draw ()
#4 0x0392eefc in CullResult::draw ()
#5 0x03e0d6c1 in GraphicsEngine::do_draw ()
#6 0x03e0e3c9 in GraphicsEngine::draw_bins ()
#7 0x03e0e6f4 in GraphicsEngine::draw_bins ()
#8 0x03e116b5 in GraphicsEngine::WindowRenderer::do_frame ()
#9 0x03e124ab in GraphicsEngine::render_frame ()
#10 0x000d870d in PandaFramework::task_igloop ()
#11 0x03ea0dd4 in GenericAsyncTask::do_task ()
#12 0x03ea9c8f in AsyncTask::unlock_and_do_task ()
#13 0x03eade4e in AsyncTaskChain::service_one_task ()
#14 0x03eae981 in AsyncTaskChain::do_poll ()
#15 0x03eaea6c in AsyncTaskManager::poll ()
#16 0x000d8505 in PandaFramework::do_frame ()
#17 0x000d8549 in PandaFramework::main_loop ()
#18 0x00003288 in main ()
(gdb) bt full
#0 0x039f4dfe in RenderState::get_generated_shader ()
No symbol table info available.
#1 0x07325969 in GLGraphicsStateGuardian::set_state_and_transform ()
No symbol table info available.
#2 0x03bf86e7 in CullHandler::draw ()
No symbol table info available.
#3 0x03bf6d31 in CullBinStateSorted::draw ()
No symbol table info available.
#4 0x0392eefc in CullResult::draw ()
No symbol table info available.
#5 0x03e0d6c1 in GraphicsEngine::do_draw ()
No symbol table info available.
#6 0x03e0e3c9 in GraphicsEngine::draw_bins ()
No symbol table info available.
#7 0x03e0e6f4 in GraphicsEngine::draw_bins ()
No symbol table info available.
#8 0x03e116b5 in GraphicsEngine::WindowRenderer::do_frame ()
No symbol table info available.
#9 0x03e124ab in GraphicsEngine::render_frame ()
No symbol table info available.
#10 0x000d870d in PandaFramework::task_igloop ()
No symbol table info available.
#11 0x03ea0dd4 in GenericAsyncTask::do_task ()
No symbol table info available.
#12 0x03ea9c8f in AsyncTask::unlock_and_do_task ()
No symbol table info available.
#13 0x03eade4e in AsyncTaskChain::service_one_task ()
No symbol table info available.
#14 0x03eae981 in AsyncTaskChain::do_poll ()
No symbol table info available.
#15 0x03eaea6c in AsyncTaskManager::poll ()
No symbol table info available.
#16 0x000d8505 in PandaFramework::do_frame ()
No symbol table info available.
#17 0x000d8549 in PandaFramework::main_loop ()
No symbol table info available.
#18 0x00003288 in main ()
No symbol table info available.
(gdb)
WhiteFang
 
Posts: 22
Joined: Mon Dec 01, 2008 1:35 pm

Postby rdb » Tue Mar 03, 2009 10:26 am

WhiteFang wrote:GCC on Mac OS X returns 0 for undefined variables

Really? That's weird. Can you try the new DMG? (not through gdb this time)
It just prints out the pointer to the default SG pointer.

I still don't know why gdb prints no extra debug information.
rdb
 
Posts: 9693
Joined: Mon Dec 04, 2006 5:58 am
Location: Netherlands

Postby WhiteFang » Tue Mar 03, 2009 11:28 am

I'll try when I get home (in a few hours).

I did some testing, and yes, if a variable isn't assigned a value, it returns 0.

That is - unless there hasn't been declared/assigned a value to some other variable. Then it returns 4096.

Code: Select all
$ cat und.c
#include <stdio.h>

void main(void)
{
   int i=4;
   int j;
   int *k=&i;
   int *l;
   printf("%d\n%d\n",i,j);
   printf("%d\n%d\n",k,l);
}


gives

Code: Select all
$ ./und
4
0
-1073743696
4096
WhiteFang
 
Posts: 22
Joined: Mon Dec 01, 2008 1:35 pm

Postby drwr » Tue Mar 03, 2009 3:07 pm

I did some testing, and yes, if a variable isn't assigned a value, it returns 0.

No, I doubt it. It's just returning a random value, whatever happens to be in memory at that particular address at the time the program started. It might be 0 more often than not, but that's just the way the ball bounces.

David
drwr
 
Posts: 11425
Joined: Fri Feb 13, 2004 12:42 pm
Location: Glendale, CA

Postby WhiteFang » Tue Mar 03, 2009 3:12 pm

And the latest run :)

Code: Select all
$ pview
Set here
SGB Constructed : 0x7213014
  current :0x5cbc698
set_default called
  new 0x5cbc698
SGB::get_default called: 0x5cbc698
default SG :0x7213014
SGB::get_default called: 0x5cbc698
default SGB:0x7213014
Known pipe types:
  osxGraphicsPipe
(all display modules loaded.)
a:0x1e29daf4:3
b:1
c:0x27d6cc:3
d:0x27d1a4:16
1:0x27d6cc
2:0
SGB::get_default called: 0x5cbc698
3:0
Bus error
WhiteFang
 
Posts: 22
Joined: Mon Dec 01, 2008 1:35 pm

Postby rdb » Tue Mar 03, 2009 3:19 pm

The address of the pointer is the *same*. Nothing else sets the variable. Still, suddenly it becomes NULL.
So unless Panda calls *((int*)0x5cbc698) = 0; somewhere this is impossible in my eyes. I'm lost here.
rdb
 
Posts: 9693
Joined: Mon Dec 04, 2006 5:58 am
Location: Netherlands

Postby drwr » Tue Mar 03, 2009 3:56 pm

Ah, I think I understand what's going on. This is a static-init ordering problem.

This is one of those real nasty C++ problems; and one that I'm quite familiar with (we've been fighting it in various forms for years). It's also one of the reasons I'm not at all a fan of doing a lot of stuff automatically in static init, but one of our early Panda developers thought this was a swell idea and started us down this path, and it's too late to go back now.

Static init is a concept that was introduced with the development of C++ and its constructors. Originally, when all compiled programs were written in C or some similar non-object-oriented language, there wasn't much code that ran before main() was called; just some startup stuff hardcoded into the system runtime libraries. C allows you to define global or "static" variables outside of any function scope, and even give them initial values, like this:
Code: Select all
int x = 10;
int main() {
  ...
}
which means that at the time main() is called, x already exists and has the value 10. This was implemented by preloading a memory image that already had the right bits in the right place when it was loaded from disk; no code was necessary to run before main in order to assign 10 to x.

But, now introduce C++ and its constructors. Now you can declare an object outside of main that has a constructor. According to C++ semantics, that constructor has to be called to initialize that object, and thus you now have user code that is running before main:
Code: Select all
class Thing {
  Thing() { cerr << "initializing\n"; }
};
Thing x;
int main() {
  cerr << "running main\n";
  return 0;
};


This caused a sea change in system library support, because suddenly the system runtime loader has to support calling user code automatically when a program is started, or even when a .so is loaded in at runtime.

But anyway. Part of Panda's low-level design takes advantage of these static initializers to call all sorts of setup function when the libraries are loaded. init_libpgraphnodes() is one of those functions, and one of the things it calls is ShaderGenerator::set_default(new ShaderGenerator()). This gets called at static init time, by virtue of a class object with a constructor, and so it is supposed to be called automatically when libpgraphnodes.so gets loaded into the running program. So, we're supposed to be guaranteed that the ShaderGenerator already has a default value set by the time we start running.

But wait! We also have a static constuctor in libpgraph.so. It looks like this:
Code: Select all
PT(ShaderGeneratorBase) ShaderGeneratorBase::_default_generator;

Don't see the static constructor? It's hard to see, isn't it? Welcome to the joys of C++, where code can be hidden from the programmer. In fact, there's a default constructor for the class PT(ShaderGeneratorBase), and the default constructor's job is to initialize its pointer to NULL.

So, as long as libpgraph.so's static constructors are called before the ones in libpgraphnodes.so, then everything is good: the default constructor for _default_generator will be called, ensuring that pointer is NULL. Then the static constructors in libpgraphnodes.so will be called, which will call set_default(), reassigning the pointer to a valid value. But, if the static constructors happen to get called in the opposite order, we have a terrible situation: the set_default() will be called first, assigning the pointer to a valid value, and then the default constructor will be called later, reassigning the pointer to NULL! That's certainly what's happening here.

Unfortunately, the system does not guarantee any ordering of static init constructors between different .so's. It's absolutely unpredictable. So on one system, it might call these in the correct order, and on another system, it might call them in the incorrect order. The ordering might even change from one day to the next.

So, basically, I introduced this bug when I split up libpgraph.so and libpgraphnodes.so, because in doing so I introduced a nondeterministic behavior between these static initializers. But because C++ tries so hard to make things automatic, the bug is extremely hard to see until it bites you, and you spend days isolating it down to discover that a pointer is getting reset to NULL after you had thought it was properly set.

I'll fix the bug now. It's easy to fix, by replacing the PT(ShaderGeneratorBase) with an ordinary ShaderGeneratorBase * pointer. The reason this will fix the problem is that an ordinary pointer doesn't have a constructor, so its default value will be set to NULL by preloading the memory image, and so there's no longer an ordering issue between static initializers. (I'll also have to explicitly manage the reference counts in set_default() to compensate for this change, but that's not so bad.)

My apologies for the long trip down a dark corridor I caused you guys.

David
drwr
 
Posts: 11425
Joined: Fri Feb 13, 2004 12:42 pm
Location: Glendale, CA

Postby rdb » Tue Mar 03, 2009 4:47 pm

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

But seriously, thanks a lot! You're the best :) 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.
rdb
 
Posts: 9693
Joined: Mon Dec 04, 2006 5:58 am
Location: Netherlands

Postby WhiteFang » Tue Mar 03, 2009 5:16 pm

Marvellous ! :) Thanks for the explanation.

I look forward too see the end of the next build :)
WhiteFang
 
Posts: 22
Joined: Mon Dec 01, 2008 1:35 pm

Postby rdb » Wed Mar 04, 2009 11:38 am

DMG is updated. Let me know if it works.
rdb
 
Posts: 9693
Joined: Mon Dec 04, 2006 5:58 am
Location: Netherlands

Postby WhiteFang » Wed Mar 04, 2009 12:45 pm

WOHOO :)

setShaderAuto() works :)

Thanks a bundle ! :)
WhiteFang
 
Posts: 22
Joined: Mon Dec 01, 2008 1:35 pm

Postby rdb » Wed Mar 04, 2009 1:13 pm

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

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?
rdb
 
Posts: 9693
Joined: Mon Dec 04, 2006 5:58 am
Location: Netherlands

Postby WhiteFang » Wed Mar 04, 2009 3:16 pm

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

Strangely enough, the advanced one works while the basic doesn't...
WhiteFang
 
Posts: 22
Joined: Mon Dec 01, 2008 1:35 pm

Postby rdb » Wed Mar 04, 2009 3:51 pm

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")
rdb
 
Posts: 9693
Joined: Mon Dec 04, 2006 5:58 am
Location: Netherlands

Postby WhiteFang » Wed Mar 04, 2009 4:32 pm

Tested, and works :D

Thanks!
WhiteFang
 
Posts: 22
Joined: Mon Dec 01, 2008 1:35 pm

Postby rdb » Thu Mar 05, 2009 1:15 am

Really? Sweet :) What does it print out?
rdb
 
Posts: 9693
Joined: Mon Dec 04, 2006 5:58 am
Location: Netherlands

Postby WhiteFang » Thu Mar 05, 2009 2:34 pm

Code: Select all
$ 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" :)

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 :) 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).
WhiteFang
 
Posts: 22
Joined: Mon Dec 01, 2008 1:35 pm

Postby WhiteFang » Thu Mar 05, 2009 2:42 pm

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)
WhiteFang
 
Posts: 22
Joined: Mon Dec 01, 2008 1:35 pm

Postby rdb » Thu Mar 05, 2009 2:47 pm

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:
Code: Select all
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.
rdb
 
Posts: 9693
Joined: Mon Dec 04, 2006 5:58 am
Location: Netherlands

Postby WhiteFang » Thu Mar 05, 2009 4:37 pm

The outpu from glxinfo yields nothing, so I grepped for "ati" with the following result:

Code: Select all
$ 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 :) (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 :)

Code: Select all
$ 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... :)
WhiteFang
 
Posts: 22
Joined: Mon Dec 01, 2008 1:35 pm

Postby jhocking » Fri Mar 06, 2009 9:36 am

pro-rsoft wrote:If I only had a Mac with a graphical display I would have been able to debug and fix this. :(


Every time you say that I have this recurring fantasy where I tell my good friend Steve Jobs to send you a computer.
-Joe Hocking
www.newarteest.com
User avatar
jhocking
 
Posts: 206
Joined: Sun Dec 21, 2008 10:22 am
Location: Second City

Postby WhiteFang » Wed Mar 11, 2009 6:31 am

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

These are the errors that generally occur (this is from a short run of a modified version of "AdvancedRalph")

Code: Select all
: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)
WhiteFang
 
Posts: 22
Joined: Mon Dec 01, 2008 1:35 pm

Re: Any one up for OSX work.

Postby neighborlee » Wed Feb 03, 2010 11:13 pm

Roger wrote:!!! pview Works On OSX !!!!



So I am making good progress. What IS my environment?

1 All code from CVSs root.
2 Darwin 10.4 . 10.3 and earlier have a bug in dylib loader and c++ constructors.
3 External modules are loaded from Darwin ports collection .
4. Build enviorment is pprenake ( ./configure osx as target)
5. Python version is 2.4 from http://www.python.org/download/mac/ (used installers)


Roger


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
One Game at a time-
http://heartseed.sf.net
[ We are currently looking for help ]
Email us or goto: irc.freenode.net
to channel #heartseed {You can also find us in #neighbors & #panda3d }
Thank You.
User avatar
neighborlee
 
Posts: 150
Joined: Sat Jun 18, 2005 11:01 am
Location: Seattle, Washington

Postby rdb » Thu Feb 04, 2010 3:38 am

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.
rdb
 
Posts: 9693
Joined: Mon Dec 04, 2006 5:58 am
Location: Netherlands

Previous

Return to Compiling or Editing the Panda Source

Who is online

Users browsing this forum: No registered users and 0 guests