The Persistence of Vision Raytracer (POV-Ray).

This is the legacy Bug Tracking System for the POV-Ray project. Bugs listed here are being migrated to our github issue tracker. Please refer to that for new reports or updates to existing ones on this system.


FS#296 - max gradient computation is not thread safe (isosurface)

Attached to Project: POV-Ray
Opened by Grimbert Jérôme (Le_Forgeron) - Sunday, 09 June 2013, 09:26 GMT
Last edited by William F Pokorny (wfpokorny) - Tuesday, 11 October 2016, 14:53 GMT
Task Type Definite Bug
Category Backend → Geometric Primitives
Status Tracked on GitHub
Assigned To Thorsten Fröhlich (thorsten)
Operating System All
Severity Medium
Priority Low
Reported Version 3.70 RC7
Due in Version 3.71 release
Due Date Undecided
Percent Complete 0%
Votes 0
Private No


It appears as a side effect of investigation of #294: the code in isosurf.cpp, inside
bool IsoSurface::Function_Find_Root_R(ISO_ThreadData& itd, const ISO_Pair* EP1, const ISO_Pair* EP2, DBL dt, DBL t21, DBL len, DBL& maxg)

	if(gradient < temp)
		gradient = temp;

is not thread-safe (The code is used at render time, there is a data race between < and = operation, as gradient is stored in the global object and accessed in write mode by the cited code)

It is only important if the gradient is initially undervaluated (otherwise, all is fine, no write-access)

This task depends upon

Comment by William F Pokorny (wfpokorny) - Tuesday, 11 October 2016, 14:53 GMT
  • Field changed: Status (Assigned → Tracked on GitHub)

Now tracked on GitHub as #113.