Skip to content

crand feature is not thread safe in any >=3.7 version. #353

Open
@wfpokorny

Description

@wfpokorny

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/

Metadata

Metadata

Assignees

No one assigned

    Labels

    artefactresults in artefacts, i.e. render output that looks broken

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions