multi-processing on SGI Onyx: avlemi bug

We have run Radiance/rpiece again, making sure that we are, in fact, running
the version incorporating Greg's suggested correction in ambient.c but ended
up with the same error:

"rpict inconsistency
address not found in avlemi
rpiece error reading from rpict"

Thomas

···

--

Message: 1
Date: Thu, 30 Jan 2003 07:16:41 -0800
From: Greg Ward <[email protected]>
To: [email protected]
Subject: [Radiance-general] Re: multi-processing on SGI Onyx
Reply-To: [email protected]

The magic word to change is in src/rt/ambient.c, in the function
aposcmp(avp1, avp2), which should be corrected to read:

/* GW NOTE 2002/10/3:
  * I used to compare AMBVAL pointers, but found that this was the
  * cause of a serious consistency error with gcc, since the optimizer
  * uses some dangerous trick in pointer subtraction that
  * assumes pointers differ by exact struct size increments.
  */
static int
aposcmp(avp1, avp2) /* compare ambient value
positions */
char **avp1, **avp2;
{
         return(*avp1 - *avp2);
}

----------
On another note, I have been following with interest the discussion on
parallel rendering solutions and alternatives to a working NFS lock
manager. I haven't responded because I haven't had anything
intelligent to add... It's sounding like the consensus is headed the
direction of a socket-based client/server solution. A dreadful pain to
implement from all I've seen, but perhaps it's best in the long run.

-Greg

Hi Thomas,

a tip from me (I should apologize to Greg for this :slight_smile: ) --

do it quick and dirty !
either compile with -Dtracktime=0 or sneak into ambient.c and look for
the calls to the sortambvals() routine. There are only two of them,
disabling them solves all your problems.

-Carsten

I am working with Thomas to verify that the avlmemi bug still exists after the last fix. If we can't figure out a workaround, I'm going to permanently disable this code. It's been a headache long enough, and was never really essential, anyway....

···

We have run Radiance/rpiece again, making sure that we are, in fact, running
the version incorporating Greg's suggested correction in ambient.c but ended
up with the same error:

"rpict inconsistency
address not found in avlemi
rpiece error reading from rpict"

Thomas (Seebohm)