Unsatable OpenCL envronment on linux w/ nvidia gpu

Am running Fedora 24 x86_64 w/ GeForce gtx 750 Ti. For the last couple of weeks, everything seemed fine. clGetPlatformIDs was discovering 1 platform, and it contained my GPU. However, today, there are two platforms. The first one is the one I am used to, while the 2nd platform is invalid when I use clPlatformGetInfo. Curiously, clinfo seems to have no problem describing both platforms:

> clinfo
Number of platforms                               2
  Platform Name                                   NVIDIA CUDA
  Platform Vendor                                 NVIDIA Corporation
  Platform Version                                OpenCL 1.2 CUDA 8.0.0
  Platform Profile                                FULL_PROFILE
  Platform Extensions                             cl_khr_global_int32_base_atomics cl_khr_global_int32_extended_atomics cl_khr_local_int32_base_atomics cl_khr_local_int32_extended_atomics cl_khr_fp64 cl_khr_byte_addressable_store cl_khr_icd cl_khr_gl_sharing cl_nv_compiler_options cl_nv_device_attribute_query cl_nv_pragma_unroll cl_nv_copy_opts
  Platform Extensions function suffix             NV

  Platform Name                                   Clover
  Platform Vendor                                 Mesa
  Platform Version                                OpenCL 1.1 Mesa 12.0.1
  Platform Profile                                FULL_PROFILE
  Platform Extensions                             cl_khr_icd
  Platform Extensions function suffix             MESA

Any ideas why things have changed for me? I suspect this is also affecting the compute results of running kernels on my GPU, even when I make sure to use the first platform. On my link lines, I use

/usr/lib64/libnvidia-opencl.so.1 -lOpenCL

to make sure I pick up the nvidia symbols, if they are there. For example, clGetPlatformIDs is not in the nvidia library.

To follow up

  1. I am now able to query my 2nd platform (as clinfo has), and it has no devices. Don't know why the queries succeed now, and not before, or why the 2nd platform appeared.
  2. I got a handle on compute results by not using a sampler for linear interpolation of the float image, but rather interpolating in the kernel explicitly, using doubles as the intermediate data type. This improved accuracy significantly. Again, I don't know why this accuracy issue arose at the same time as the 2nd platform, or if the two issues are actually related.