POV-Ray : Newsgroups : povray.beta-test : beta.33 for Windows: Not Reproducible Server Time
4 Jul 2024 12:56:41 EDT (-0400)
  beta.33 for Windows: Not Reproducible (Message 1 to 4 of 4)  
From: clipka
Subject: beta.33 for Windows: Not Reproducible
Date: 7 Aug 2009 13:32:39
Message: <4a7c6537$1@news.povray.org>
Check this out:

* Start beta.33 (make sure you really start it fresh)

* Enqueue the following sample scenes:

   - scenes\textures\finishes\arches.pov
   - scenes\textures\normals\normavg.pov
   - scenes\textures\finishes\arches.pov (again!)

* Go for it, paying close attention to the direction and frequency of 
the waves in the arches.pov shot (easiest to see at bottom left).

Duh! Shouldn't the scene render identical in both runs?! Looks like 
something doesn't get properly initialized.

(Tested with the 64-bit release here.)


Post a reply to this message

From: Thorsten Froehlich
Subject: Re: beta.33 for Windows: Not Reproducible
Date: 7 Aug 2009 13:43:15
Message: <4a7c67b3$1@news.povray.org>
clipka wrote:
> * Go for it, paying close attention to the direction and frequency of 
> the waves in the arches.pov shot (easiest to see at bottom left).
> 
> Duh! Shouldn't the scene render identical in both runs?! Looks like 
> something doesn't get properly initialized.

Well, what is the wave pattern in arches? There is a (global) method that 
initiates all waves, but that would not be much different from 3.6. Is the 
bug visible there, too?

	Thorsten


Post a reply to this message

From: clipka
Subject: Re: beta.33 for Windows: Not Reproducible
Date: 7 Aug 2009 14:39:12
Message: <4a7c74d0@news.povray.org>
Thorsten Froehlich schrieb:
> clipka wrote:
> Well, what is the wave pattern in arches? There is a (global) method 
> that initiates all waves, but that would not be much different from 3.6. 
> Is the bug visible there, too?
> 
>     Thorsten

Same thing in 3.6.2, yes - I just checked.

In 3.7, I can track down the bug to a global variable "Number_Of_Waves", 
which is initialized to its default value (10) once at startup of the 
whole app, and then no more (I guess the same mechanism applies to 3.6). 
Any scene having a "number_of_waves" parameter will sort of change the 
default for the next scene to be rendered.

There's another potential problem with the waves initialization: The 
wave pattern data will always be initialized for 10 waves, no matter how 
high or low it is set by the user; for smaller values set in the scene 
this is no real problem, because it just accesses the first N waves; but 
higher values will lead to accesses beyond the actually allocated data 
block.

For the time being I'll change that to impose a maximum limit of 10 on 
number_of_waves (higher values were useless anyway), and store the 
actual number of waves in the scene data. But I guess it's worth 
thinking about moving the waves data into the thread completely. Global 
variables are ugly, and it's not really a huge amount of data.


(BTW, the problem should be reproducible in Unix as well, by setting up 
an animation that explicitly defines "number of waves" to something 
other than 10, but leaves it at the default for later frames; rendering 
the whole animation would then cause different results than rendering 
just the later frames.)


Post a reply to this message

From: Thorsten Froehlich
Subject: Re: beta.33 for Windows: Not Reproducible
Date: 7 Aug 2009 16:27:38
Message: <4a7c8e3a$1@news.povray.org>
clipka wrote:
> Thorsten Froehlich schrieb:
>> clipka wrote:
>> Well, what is the wave pattern in arches? There is a (global) method 
>> that initiates all waves, but that would not be much different from 
>> 3.6. Is the bug visible there, too?
>>
>>     Thorsten
> 
> Same thing in 3.6.2, yes - I just checked.
> 
> In 3.7, I can track down the bug to a global variable "Number_Of_Waves", 

Ah, yes, one of the old dead bodies in the code. Should be one of the last 
ones. We did mark all globals years ago, so the few remaining ones are easy 
to find :-)

> For the time being I'll change that to impose a maximum limit of 10 on 
> number_of_waves (higher values were useless anyway), and store the 
> actual number of waves in the scene data. But I guess it's worth 
> thinking about moving the waves data into the thread completely. Global 
> variables are ugly, and it's not really a huge amount of data.

The question is if it is really needed or maybe just generating like 100 and 
setting the limit there would be more than enough...

	Thorsten


Post a reply to this message

Copyright 2003-2023 Persistence of Vision Raytracer Pty. Ltd.