PDA

View Full Version : Help me CGTalk, you're my only hope!


sacslacker
10-28-2005, 03:09 AM
Hi Guys,
I've searched the forum, google, Alias's site and just about everywhere else on the planet to try to resolve this issue.

I'm getting this error in the output window when I try to do a satellite render with Mental Ray for Maya 7.0 Unlimited on WinXP:

Error: (mental ray) : failed to link library on host chupicabra //
// Error: (mental ray) : cannot load C:/Program Files/Alias/mentalraysatellite3.4/lib/mayahair.dll, The specified module could not be found. //

Now I thought I understood what this problem was. I figured I just needed to move the mayahair.dll and mayahair.mi files to the satellite machine and things would be groovy. That didn't work. So I added the entry to link these files in the rayrc file. No dice! =( After that I've gone on to trying anything and everything that I could find on the forums and nothing works at all. I'm at a loss.

Please, please tell me that someone has had this happen and might know how to fix it. It's a real pain.

For more information, I had this machine using Satellite with Maya Complete previously. I've unistalled and reinstalled everything (several times). I have a fully licensed version of Unlimited (but can't help think this might have something to do with licensing because that's about the only avenue I haven't persued). I wasn't drunk when I set this up nor am I now. It isn't a full moon. etc...

Thanks in advance for any help you might provide. I'll owe ya a six pack if you can fix this one guys! =)

slipknot66
10-28-2005, 03:46 AM
Ok.. did you tried to copy the maya.rayrc files to all the slave machines?

sacslacker
10-28-2005, 03:57 AM
Thanks for taking the time to help!

Yes, I tried that a couple of times. I wasn't sure if it needed to be there or not. I just tried it again, this time not modifying it at all and it didn't work. Below are my maya.rayrc and rayrc that I have.

maya.rayrc - on both machines

registry "{MAYABASE}" value "C:/Program Files/Alias/Maya7.0/mentalray" end registry

registry "{SYSTEM}" value "windows" end registry
registry "{DSO}" value "dll" end registry

$lookup "{MAYABASE}"
$lookup "{SYSTEM}"
$lookup "{DSO}"

registry "{MRMAYA_START}"
link "{MAYABASE}/lib/base.{DSO}"
link "{MAYABASE}/lib/physics.{DSO}"
link "{MAYABASE}/lib/mayabase.{DSO}"
link "{MAYABASE}/lib/contour.{DSO}"
link "{MAYABASE}/lib/subsurface.{DSO}"
link "{MAYABASE}/lib/paint.{DSO}"
link "{MAYABASE}/lib/mi_openexr.{DSO}"
link "{MAYABASE}/lib/l_glass.{DSO}"
link "{MAYABASE}/lib/mayahair.{DSO}"
mi "{MAYABASE}/include/mayabase.mi"
mi "{MAYABASE}/include/base.mi"
mi "{MAYABASE}/include/physics.mi"
mi "{MAYABASE}/include/contour.mi"
mi "{MAYABASE}/include/subsurface.mi"
mi "{MAYABASE}/include/paint.mi"
mi "{MAYABASE}/include/mayahair.mi"
mi "{MAYABASE}/include/l_glass.mi"
echo "mental ray for Maya - startup done"
end registry

$lookup "{MRMAYA_START}"


rayrc - on slave

registry "{MAYABASE}" value "C:/Program Files/Alias/mentalraysatellite3.4" end registry

registry "{SYSTEM}" value "windows" end registry
registry "{DSO}" value "dll" end registry

$lookup "{MAYABASE}"
registry "{_MI_REG_INCLUDE}" value "{MAYABASE}\include" end registry
registry "{_MI_REG_LIBRARY}" value "{MAYABASE}\lib" end registry

Note that these are the latest iterations of the files that I have after fresh installs. I hope it's ok to post these here.

sacslacker
10-28-2005, 04:09 AM
I think something happened when I copied that file over this time because I'm getting this error now:

// Error: (mental ray) : cannot load C:/Program Files/Alias/mentalraysatellite3.4/lib/mayahair.dll, The specified procedure could not be found. /

This is a different error now. It appears to be finding the module but now the procedure can't be found? Does that seem right or am I a bit confused? =)

Jozvex
10-28-2005, 04:40 AM
You shouldn't need to do any rayrc modifying on the slave computers at all. Even for added custom shaders. The slave rayrc and satellite are set up differently to Maya, they'll load any shaders automatically so long as they're copied over. So I'd restore the original satellite rayrc.

Your slave computers might be missing some common DLLs like the msvcrt.dll, or other c++ related ones that go in the Windows system folder.

I'm not sure what else it could be. :scream:

sacslacker
10-28-2005, 04:54 AM
Thanks Jozvex and slipknot. I'm starting to think it is indeed a dll type problem which is most unfortunate because I have absolutely no clue how to tell what dlls are needed or need to be updated. I'm getting the feeling that it's an out of date dll since it can find the module but there is no procedure. That would lead me to beleive that I have something borked. Hopefully I can get this resolved because no satellite makes me sad!

sacslacker
10-28-2005, 05:43 AM
This is killing me. Is there a resource to identify what dlls I should be looking for? I mean, this was working pretty painlessly for me before. Ugh...

Jozvex
10-28-2005, 06:42 AM
Oh it was working before?

What has changed to make it stop?

sacslacker
10-28-2005, 07:01 AM
Wow, well sorry that I didn't find an elegant solution but what I ended up doing was reinstalling XP, and the satellite. Now it works. I have no clue what I did to make this stop working but my hell night is over at least.

I appreciate your help even though it turned out not even to be a Maya issue. I really hate that. =(

Anyway, now I can have fun with Mental Ray again! I tell you what, working on a single CPU as opposed to 4 makes a huge difference. I forgot how slow it can be!

This has turned out to be an embarrassing thread :blush:

magsnus
10-29-2005, 04:00 PM
abit late perhaps but this sounds like a similar problem ive heard of on some linux machines. Seems as the file Mayatomr.sog in the bin/plug-ins directory doesnt exist. Just creating an empty file called Mayatomr.sog solves the problem.

ghostlake114
12-20-2005, 12:48 PM
I got the same problem with sacslacker... at first, I think the lacking of dll may cause this, but when I open mayahair.dll in a hexa editor , I could list here all dll that it point out, include inside:
------
foundation.dll
OpenMaya.dll
MayaFX.dll
MSVCP71.dll
MSVCR71.dll
kernel32.dll
mayahair.dll
-------
Yeap ... all have been fully installed... :(
-------
I give up, at least now and disable them in my master maya.rayc
------
I will try to return to find a solution when having time,... F*K ISSUE

neuromancer1978
12-22-2005, 05:46 AM
Yet another argument why Windows just sucks....

I am totally going Linux on my next machine...

floze
12-22-2005, 04:11 PM
Try http://www.dependencywalker.com/

francescaluce
12-22-2005, 07:22 PM
the problem is that you should look at what you're replacing. :eek:

the mayahair.dll that resides on the master is different from the
one that resides on slaves. you need to reinstall at least one
slave and copy that .dll to all the others. so any time you'll update
your slave local lib folder with those you have on master.. just
remember to leave out the mayahair.dll.



for more advanced users you could just link your slaves to the same
libs is linked or is linking to the master and use only the mayahair.dll
as local link.


maya.rayrc

registry "{MAYABASE}" value "C:/Program Files/Alias/Maya7.0/mentalray" end registry
registry "{LOCALMAYABASE}" value "{MAYABASE}" end registry

registry "{SYSTEM}" value "windows" end registry
registry "{DSO}" value "dll" end registry

$lookup "{MAYABASE}"
$lookup "{LOCALMAYABASE}"
$lookup "{SYSTEM}"
$lookup "{DSO}"

registry "{MRMAYA_START}"
link "{MAYABASE}/lib/base.{DSO}"
link "{MAYABASE}/lib/physics.{DSO}"
link "{MAYABASE}/lib/mayabase.{DSO}"
link "{MAYABASE}/lib/contour.{DSO}"
link "{MAYABASE}/lib/subsurface.{DSO}"
link "{MAYABASE}/lib/paint.{DSO}"
link "{MAYABASE}/lib/mi_openexr.{DSO}"
link "{MAYABASE}/lib/l_glass.{DSO}"
link "{LOCALMAYABASE}/lib/mayahair.{DSO}"
mi "{MAYABASE}/include/mayabase.mi"
mi "{MAYABASE}/include/base.mi"
mi "{MAYABASE}/include/physics.mi"
mi "{MAYABASE}/include/contour.mi"
mi "{MAYABASE}/include/subsurface.mi"
mi "{MAYABASE}/include/paint.mi"
mi "{MAYABASE}/include/mayahair.mi"
mi "{MAYABASE}/include/l_glass.mi"
echo "mental ray for Maya - startup done"
end registry

$lookup "{MRMAYA_START}"


rayrc - on slave

registry "{MAYABASE}" value "//mymaster/c/Program Files/Alias/mentalraysatellite3.4/" end registry
registry "{LOCALMAYABASE}" value "C:/Program Files/Alias/Maya7.0/mentalray" end registry

registry "{SYSTEM}" value "windows" end registry
registry "{DSO}" value "dll" end registry



ciao
francesca

floze
12-22-2005, 07:36 PM
for more advanced user you could just link your slaves to the same
libs is linked or is linking to the master and use only the mayahair.dll
as local link.
Yeah, there was a thread about using a centralized location for your shaders:
http://forums.cgsociety.org/showthread.php?t=227905

francescaluce
12-22-2005, 08:01 PM
floze dear, here we're not speaking about centralized locations
but really the opposite. :) I mean it is the case where we
need a different location just for one shader and only on
net slaves.. accomplished by registering a different var
on slaves machines.

when the line link "{LOCALMAYABASE}/lib/mayahair.{DSO}"
is read from a master it will reach the very same location of all the other shaders as
localmayabase=mayabase. the hosts instead will register the localmayabase variable
with a different value and so when the shader is linked it will refer to the local path
supplied there.


ciao
francesca

floze
12-22-2005, 08:06 PM
floze dear, here we're not speaking about centralized locations
but really the opposite. :) I mean it is the case where we
need a different location just for one shader and only on
net slaves.. accomplished by registering a different var
on slaves machines.

when the line link "{LOCALMAYABASE}/lib/mayahair.{DSO}"
is read from a master it will reach the very same location of all the other shaders as
localmayabase=mayabase. the hosts instead will register the localmayabase variable
with a different value and so when the shader is linked it will refer to the local path
supplied there.


ciao
francesca
Ugh.. gotcha, but what's the point of having it decentralized? We had it set up with a single location for every include, lib, script and even the icon, and I wouldnt change it having it this way for anything in the world..!

francescaluce
12-23-2005, 12:22 AM
We had it set up with a single location for every include, lib, script and even the icon, and I wouldnt change it having it this way for anything in the world..!
well I dunno what you have guys.
the problem here, and that's what's pointing out this thread...

Error: (mental ray) : failed to link library on host chupicabra //
// Error: (mental ray) : cannot load C:/Program Files/Alias/mentalraysatellite3.4/lib/mayahair.dll, The specified module could not be found. //

is the mayahair.dll which does not allow to be centralized...
you cannot use the same library for the master and for the slaves.

now or.. you use local libraries for all your slaves and not copying also
the mayahair.dll that need to be the one that comes with satellites or..
the only way to be 'centralized'.. rest the way I showed you. the only thing
infact that is out of the same shared library is just the mayahair.dll that
need to be so.. or you'll get the error where this thread starts from..
all the other shaders are centralized. not only but you could set up a shared
mayhair.dll where just all the slaves will link to.


do you get the point, dear ??


ciao
francesca

ps:: the way then to have centralized also include folders is just silly, floze.
as only the master needs to reach include folders as only the master registers
shaders filling the db scene.

floze
12-23-2005, 01:11 AM
ps:: the way then to have centralized also include folders is just silly, floze.
as only the master needs to reach include folders as only the master registers
shaders filling the db scene.
...maybe, if you're using satellite. Not if you have a farm of separate masters, as we do. I do get the point, but noone told me that mayahair.dll may not be a shared lib.

sacslacker
12-23-2005, 01:18 AM
Thanks for explaining this stuff guys. I'm glad I ended up getting it worked out. From what I gather, it wasnt' the reinstall of XP but the reinstall of the satelite that got it working. I've been working on centralizing my shaders as well as getting my satelite situation set up efficiently and this thread has turned out to be very useful for doing so.


Thanks!

francescaluce
12-23-2005, 01:31 AM
but the reinstall of the satelite that got it working
yeah but take care to understand why.. because you have restored
the original mayahair.dll that comes with satellite and standalone
installations. so do what you prefer but allow your slaves to reach
that .dll instead of the one that comes with maya installation and
basically if you wanna not to be involved in this setup issues just
never overwrite it with the one on your master. or make a save
copy.. so next time you'll have not to reinstall satellite but just
swap the correct library. infact now that you have a correct
setup take the time to look at your libraries.. the one on the
master is a 136kb while the one on the slave a 4kb.. just a wrapper
probably.

ciao
francesca

CGTalk Moderation
12-23-2005, 01:31 AM
This thread has been automatically closed as it remained inactive for 12 months. If you wish to continue the discussion, please create a new thread in the appropriate forum.