I recently installed the nvidia driver for our quadro 6000 on the lastest ubuntu distribution 64 bits …
after executing the glsl shader , I got a huge black screen…
and after a painful debug , I found the origin of the black screen, it was in the following function:
/** helper functions to calculate the corresponding depth ( in meters) from the returned values of the kinect */
float ComputeDepthLinear(float discDepth)
{
if( discDepth < 2047.0)
{
return (1.0 / ( discDepth * (-0.0030711016) + 3.3309495161 ));
}
return 0.0;
}
without adding the else before the return 0.0 statement nothing is working
I replaced the function with this one :
float ComputeDepthLinear(float discDepth)
{
if( discDepth < 2047.0)
{
return (1.0 / ( discDepth * (-0.0030711016) + 3.3309495161 ));
}
else
return 0.0;
}
et voila everything works fine!!!
AFAIK the gpu executes the two paths and then select the appropriate path, but i think that he picked up the wrong path
is this a driver bug? ( the same shader has been tested on the mac and on previous nvidia drivers and on ATI cards and it works fine…)