Description
Summary
The crand finish block feature is not thread safe. Scenes using crand and rendered with multiple CPU threads show differences from one render to the next due the use of crand alone.
See newsgroup thread at:
http://news.povray.org/povray.bugreports/thread/%3C5aa13810%241%40news.povray.org%3E/
Environment
Any CPU with multiple threads and all versions of POV-Ray >= v370.
Steps to Reproduce
Using the mist.pov sample scene shipped with POV-Ray:
povray mist.pov
(move the mist.png file to say mistA.png)
povray mist.pov
(compare mistA.png to mist.png with software able to detect or show differences)
Expected Behavior
A Scene using crand and should not change render to render given no other change.
Actual Behavior
See blotchy / blockish differences render to render.
Workaround
Use command line option +wt1 or ini file setting Work_Threads=1 whenever it is important a scene using crand render identically render to render.
Suggested Solution
For a suggested coding fix see the newsgroup thread for an idea from clipka :
http://news.povray.org/povray.bugreports/thread/%3C5aa13810%241%40news.povray.org%3E/