clover: Optionally return context's devices from clGetProgramInfo()
authorTom Stellard <thomas.stellard@amd.com>
Fri, 15 Nov 2013 23:50:34 +0000 (15:50 -0800)
committerTom Stellard <thomas.stellard@amd.com>
Mon, 18 Nov 2013 19:54:28 +0000 (11:54 -0800)
The spec allows clGetProgramInfo() to return information about either
the devices associated with the program or the devices associated
with the context.  If there are no devices associated with the program,
then we return devices associated with the context.

https://bugs.freedesktop.org/show_bug.cgi?id=52171

Reviewed-by: Francisco Jerez <currojerez@riseup.net>
CC: "10.0" <mesa-stable@lists.freedesktop.org>
src/gallium/state_trackers/clover/api/program.cpp

index 5ef1be60969dfbcf00036bc3ac109c1947599083..7d060c44aa123ae204c94c8b91ffcf61963c353f 100644 (file)
@@ -173,11 +173,15 @@ clGetProgramInfo(cl_program d_prog, cl_program_info param,
       break;
 
    case CL_PROGRAM_NUM_DEVICES:
-      buf.as_scalar<cl_uint>() = prog.devices().size();
+      buf.as_scalar<cl_uint>() = prog.devices().size() ?
+                                 prog.devices().size() :
+                                 prog.ctx.devs().size();
       break;
 
    case CL_PROGRAM_DEVICES:
-      buf.as_vector<cl_device_id>() = descs(prog.devices());
+      buf.as_vector<cl_device_id>() = prog.devices().size() ?
+                                      descs(prog.devices()) :
+                                      descs(prog.ctx.devs());
       break;
 
    case CL_PROGRAM_SOURCE: