SGI: Computer Graphics

Pixie for IRIX - Page 2

Well,

It seems that this has become a discussion about BMRT. While I agree that BMRT is a fine tool I wanted to give some simple stats.

I am rendering a simple surface of 1000x1000 points using a fresnel shader on a 600Mhz fuel. The results are as follows


using BMRT it took 660 seconds to render using rendrib.

With pixie using rndr it too 59 seconds. Neither was multi-threaded (no point single cpu fuel in both cases) but pixie was 10x faster for this example.

I know that metrivs are a dung hill. But facts speak for themselves.

Cheers
I think that 59s versus 660s is a very nice metric which demonstrates that a more modern tool such a pixie is good for us old SGI die hards. Lets face it we do not have oodles of spare CPU bandwidth to splash around. For this reason I would think that this pixie port is interesting. If nothing else it is a good replacement for BMRT. I was somewhat overwhelmed by the BMRT resistance as everyone on the thread started to talk about BMRT as opposed to pixie.

I think that this port seems to be working well and it certaintly has some pretty impressive performance so far.

Good pedigree I would say.

Cheers
Greetings,

I have successfully built a new sdr shader parsing plugin for Ayam
with the provided Pixie port. So, you can feed Pixie from Ayam now:
http://ayam.sourceforge.net/download.html

kind regards,
Randolf
rschultz wrote:
Greetings,

I have successfully built a new sdr shader parsing plugin for Ayam
with the provided Pixie port. So, you can feed Pixie from Ayam now:
http://ayam.sourceforge.net/download.html

kind regards,
Randolf


Very interesting! I'll try both very soon! Thanks for the nice work!

_________________
Oh!, let me write that!

Image
Octane / Dual Head

http://twitter.com/GeekTronixShop
Could someone please re-up the download link.
It doesn't seem to work anymore.

_________________
:Fuel: :Octane: :O2: :1600SW:
Apple iMac, IBM p275, IBM p285, IBM 43p140, HP 2133, Sun Fire 280R, Sun Ultra1 clone (300Mhz), Sun Ultra2 (2x400 MHz), HP C8000, Fujitsu Primepower 250, HP rx4640
paulfred

check you pm

Cheers
Hi compcomp, do you have a tardist handy? Is there any chance for me to grab a copy? I'm on study break and just got my O2 and Octane working!

Simon.
Hello Nekochaners!

I'm a spanish fan of Silicon Graphics computers and my hobby is generate computer graphics with these amazing machines.

I'm trying to find an IRIX implementation of Pixar's Pixie on the inet, but I can't find it.

I found this Nekochan topic (ucp.php?i=pm&mode=view&f=0&p=10874165), but when I try to download the file "pixie.tar.gz" I get next error:

"The selected attachment does not exist anymore.

The file ./../files/1653_9dfb5dee83351f1975a503a8f2776472 does not exist."

Can anybody tell me where I can find it or give me another link with Pixie binary?

Thank you,
sgienthu

_________________
:Indy: :Indy: :Indigo2IMP: :Indigo2IMP: :O2: :O2: :Octane: :Fuel: :Fuel: :O3x0: :1600SW: :1600SW:
Nobody's picked up the ball on this evidently...

_________________
Project:
Movin' on up, toooo the east side
Plan:
World domination! Or something...
Hmm, sources for several versions are available at http://sourceforge.net/projects/pixie/files/pixie/ . But I've no idea about whether one of them compiles properly...

_________________
For aliens we're aliens.
Oskar45 wrote:
But I've no idea about whether one of them compiles properly...

competent, what did you do to fix this ?

Code:
cc-1020 CC: ERROR File = algebra.h, Line = 88
The identifier "uint32_t" is undefined.

uint32_t        i;
^

cc-1020 CC: ERROR File = algebra.h, Line = 91
The identifier "uint32_t" is undefined.

union { float f; uint32_t i; } u;
^

cc-1020 CC: ERROR File = algebra.h, Line = 110
The identifier "uint32_t" is undefined.

union { float f; uint32_t i; } u;
^

3 errors detected in the compilation of "algebra.cpp".

Adding
Code:
#include <stdint.h>

did not do the trick. Apparently this has been a problem for a while ...

http://sourceforge.net/tracker/?func=de ... tid=491092

a thousand eyes, a thousand hands but still no solution ....
@hamei: might not be the solution, but I'd try to do a grep over /usr/include [and subdirs] to see whether uint32_t is defined somewhere else as well. Sorry, can't check that now as I don't have access to my boxes.

_________________
For aliens we're aliens.
Oskar45 wrote:
@hamei: might not be the solution, but I'd try to do a grep over /usr/include [and subdirs] to see whether uint32_t is defined somewhere else as well. Sorry, can't check that now as I don't have access to my boxes.

Thanks, but actually I don't care about Pixie. I just thought I'd run it through quickly and if it built easy, what the heck. But the one set of bugs noted above was from foetz, who is about ten thousand times smarter than me, and he didn't solve the problem. Plus I have since found several other non-productive discussions between the Pixie guys and Randolf Schultz, who does Ayam. It also (apparently) crashes later on when you try to use it, even if you get it to build. I wonder how competent got it going ? CC, where's you at, boy ?

Anyway, I'm back to something I hope will be more useful but thanks for the pointer ....
@hamei: sorry for bothering you again. Can you try once more but replace <uint32_t i;> by <unsigned long int i;>? Thanks.

_________________
For aliens we're aliens.
Oskar45 wrote:
@hamei: sorry for bothering you again. Can you try once more but replace <uint32_t i;> by <unsigned long int i;>? Thanks.

Ees no problem, senor. Nice work, we got past the first three errors ! My one question about that is these are apparently routines for "faster" math but they seem to be integer-centric. I bet they aren't really "faster" on MIPS processors ...

Anyway, now we get

Code:

cc-3700 CC: WARNING File = ../ri/atomic.h, Line = 144
#warning directive: Atomic Instructions are not supported on this platform,
defaulting to generic implementation

#warning Atomic Instructions are not supported on this platform, defaulting to generic implementation
^

cc-3168 CC: ERROR File = ../ri/atomic.h, Line = 149
A name followed by "::" must be a class or namespace name.

osLock(CRenderer::atomicMutex);
^

cc-3168 CC: ERROR File = ../ri/atomic.h, Line = 151
A name followed by "::" must be a class or namespace name.

osUnlock(CRenderer::atomicMutex);
^

cc-3168 CC: ERROR File = ../ri/atomic.h, Line = 157
A name followed by "::" must be a class or namespace name.

osLock(CRenderer::atomicMutex);
^

cc-3168 CC: ERROR File = ../ri/atomic.h, Line = 159
A name followed by "::" must be a class or namespace name.

osUnlock(CRenderer::atomicMutex);
^

4 errors detected in the compilation of "precomp.cpp".


If you have any ideas I'll be happy to plug them in. Even if this isn't something I want, seems like someone might be happy to have it.
@hamei: Actually, to get over the first three errors is trivial as uint32_t is simply a synonym. Try to do c99 instead of cc.

_________________
For aliens we're aliens.
Thank you hamei and Oskar45 for you effort!

Hope at last we get a Pixie binary to render with.

Regards,
sgienthu

_________________
:Indy: :Indy: :Indigo2IMP: :Indigo2IMP: :O2: :O2: :Octane: :Fuel: :Fuel: :O3x0: :1600SW: :1600SW:
hamei wrote:
Anyway, now we get

Code:

cc-3700 CC: WARNING File = ../ri/atomic.h, Line = 144
#warning directive: Atomic Instructions are not supported on this platform,
defaulting to generic implementation

#warning Atomic Instructions are not supported on this platform, defaulting to generic implementation
^

cc-3168 CC: ERROR File = ../ri/atomic.h, Line = 149
A name followed by "::" must be a class or namespace name.

osLock(CRenderer::atomicMutex);
^


If you have any ideas I'll be happy to plug them in. Even if this isn't something I want, seems like someone might be happy to have it.


This is where "porting" comes into play (read : rather than #ifdefing and #including ;) ). I didn't have a look at the sources, but I guess atomic.h contains some OS specific code (osLock, osUnlock, ...) that have to be implemented for Irix. If you're lucky, maybe you can reuse another OS implementation. If you're not, you may have to write some Irix specific code, and/or use compiler intrinsics for atomic operations.

Edit : attached a patch to make pixie 2.2.6 build, but I don't have any knowledge about it to test the result...

_________________
:Onyx2: :Fuel: :1600SW: :O2: :0300: :0300:
You patch is way better than mine, but how do you configure/compile the whole thing without CC complaining
Code:
cc-1035 CC: ERROR File = /usr/include/stdint.h, Line = 5
#error directive:  This header file is to be used only for c99 mode
compilations

#error This header file is to be used only for c99 mode compilations
^

My inelegant but working neko_pixie tardist is in incoming, just help yourself to the dist files etc. if you want to make a better .tardist.
bplaa.yai wrote:
This is where "porting" comes into play (read : rather than #ifdefing and #including ;) )

I'd be happy if I could do #including and #ifdeffing :P Youse guys are okay .... grazie, grazie from all of us non-programmers.