2 Replies Latest reply on Jun 4, 2012 1:59 PM by c0nfig

    Bug when querying CL_DEVICE_MAX_CONSTANT_ARGS ?

    c0nfig

      Hi.

      I hope this is the right place to post it.

      I'm not sure if I'm doing something wrong or maybe it is a bug.

       

      I use OpenCL 1.2 AMD-APP (923.1) on radeon 6970.

      This simple program prints the number of devices found before and after  querying CL_DEVICE_MAX_CONSTANT_ARGS.

      The first print 2 as expected (CPU and GPU), however the second print is 0...

      It is  happen if I'm using another clGetDeviceInfo before as shown in the code.

      #include <CL/cl.h>
      #include <iostream>
      
      using namespace std;
      int main()
      {
      
          cl_uint numplatforms=0;
          size_t returned_size=0;
      
          cl_uint devicesnum=0;
      
      //getting platforms
          clGetPlatformIDs(0,NULL,&numplatforms);
          cl_platform_id platforms[numplatforms];
          clGetPlatformIDs(numplatforms,platforms,NULL);
      
      //getting devices
          clGetDeviceIDs(platforms[0], CL_DEVICE_TYPE_ALL, NULL, NULL, &devicesnum);
          cl_device_id device_ids[devicesnum];
          clGetDeviceIDs(platforms[0], CL_DEVICE_TYPE_ALL, devicesnum, device_ids, NULL);
      
      //querying devices
          cl_ulong local_mem=0;
          cl_uint max_const_args=0;
          clGetDeviceInfo(device_ids[0], CL_DEVICE_LOCAL_MEM_SIZE , sizeof(cl_ulong), &local_mem, &returned_size);
          cout<<"devices num "<<devicesnum<<endl;
          clGetDeviceInfo(device_ids[0], CL_DEVICE_MAX_CONSTANT_ARGS  , sizeof(cl_ulong), &max_const_args, &returned_size);
          cout<<"devices num "<<devicesnum<<endl;
      }