<div dir="ltr">HI Clement,<div><br></div><div>Good investigation.  This suggested workaround would sure be cleaner than my approach of toggling between float and int types.  The only problem with it would be how widely the isnan is supported.  I've done a quick internet search and haven't come up with a clear answer, it would seem there are systems that don't support it.</div><div><br></div><div>Robert.</div></div><div class="gmail_extra"><br><div class="gmail_quote">On 11 August 2015 at 06:51,  <span dir="ltr"><<a href="mailto:Clement.Chu@csiro.au" target="_blank">Clement.Chu@csiro.au</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hi Robert,<br>
<br>
   Finally, I found out where causes the crash problem.  The problem is not related to the type casting.  See the source code below:<br>
<br>
float num_iterations = ceil(length((te-t0).xyz)/SampleDensityValue);<br>
<br>
<br>
   The problem is the value of num_iterations is a NaN float value (not a number), so that why it makes an infinite running in the loop and then crashed.  I think the problem is on the method length().  In some condition (different values of t0 and te) makes the method length() to return a NaN value.  I added a line of code to check variable num_iterations.<br>
<br>
  if (isnan(num_iterations)) num_iterations = 2.0;<br>
<br>
<br>
  So far it works on both nvidia and intel cards.<br>
<br>
<br>
<br>
Regards,<br>
Clement<br>
<br>
<br>
________________________________________<br>
<span class="">From: osg-users [<a href="mailto:osg-users-bounces@lists.openscenegraph.org">osg-users-bounces@lists.openscenegraph.org</a>] on behalf of Robert Osfield [<a href="mailto:robert.osfield@gmail.com">robert.osfield@gmail.com</a>]<br>
</span>Sent: Monday, 10 August 2015 17:42<br>
<span class="im HOEnZb">To: OpenSceneGraph Users<br>
Subject: Re: [osg-users] Volume image crash on the latest version of Nvidia     driver<br>
<br>
</span><div class="HOEnZb"><div class="h5">Hi Clement,<br>
<br>
I have been looking GLSL for what might help us determine when to use float vs ints.  The follow info might be useful:<br>
<br>
   <a href="https://github.com/mattdesl/lwjgl-basics/wiki/GLSL-Versions" rel="noreferrer" target="_blank">https://github.com/mattdesl/lwjgl-basics/wiki/GLSL-Versions</a><br>
<br>
Perhaps we should just add a #version 130 (OpenGL Version >= 3.0) to the top of the fragment shaders to make sure they support ints.  This may mean that the Intel driver fails though.<br>
<br>
What Intel hardware, drivers and OpenGL version support by the drivers do you have on your system?<br>
<br>
Robert.<br>
</div></div><div class="HOEnZb"><div class="h5">_______________________________________________<br>
osg-users mailing list<br>
<a href="mailto:osg-users@lists.openscenegraph.org">osg-users@lists.openscenegraph.org</a><br>
<a href="http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org" rel="noreferrer" target="_blank">http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org</a><br>
</div></div></blockquote></div><br></div>