5 Replies Latest reply on Feb 21, 2013 11:08 PM by himanshu.gautam

    Linux x64 floats are buggy, caused by 12.8 driver?

    cguenther

      Hi there. I have a really strange problem and i hope you can help me.

       

      I have a shrinked kernel to my problem:

       

      __kernel

      void softwareRender()

      {

                __private float zeroDotFive;

                zeroDotFive = 0.5f;

       

        printf( (__constant char*) "%f \n", zeroDotFive);

      }

       

      The output of the printf is for every time "0.0000000". Passing data from shared GL VBOs as float is no problem. But when i want to multiply them with 0.5, everything gets 0.00000. The CodeXL 0.93 also verifies that the value of zeroDotFive is zero.

       

      I am using Ubuntu 12.04 with kernel version 3.2.0-31-generic. I use the AMD APP SDK 2.7 and the AMD Catalyst™ 12.8 Proprietary Linux x86 Display Driver. I tried also the 12.9 beta one, and the fglrx driver of the partner Ubuntu repo and both with the same results.

       

      The same Program and Kernel compiled with mingw runs in Windows 7 x64 with Catalyst 12.8 without this problem. Nvidia GPUs have no problem to execute this Kernel in 64bit linux and Windows.