aboutsummaryrefslogtreecommitdiffstats
path: root/src/gallium/state_trackers/clover/api/program.cpp
diff options
context:
space:
mode:
authorTom Stellard <[email protected]>2013-11-15 15:50:34 -0800
committerTom Stellard <[email protected]>2013-11-18 11:54:28 -0800
commita84dd2398f75c672293122408828ac66bb7052a0 (patch)
tree6e05eb1d71be09b4c807ba4a694257238fce4036 /src/gallium/state_trackers/clover/api/program.cpp
parent7dfb4b2d00ddb8e5ee24d4c58eb9415dc4ccc21c (diff)
clover: Optionally return context's devices from clGetProgramInfo()
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 <[email protected]> CC: "10.0" <[email protected]>
Diffstat (limited to 'src/gallium/state_trackers/clover/api/program.cpp')
-rw-r--r--src/gallium/state_trackers/clover/api/program.cpp8
1 files changed, 6 insertions, 2 deletions
diff --git a/src/gallium/state_trackers/clover/api/program.cpp b/src/gallium/state_trackers/clover/api/program.cpp
index 5ef1be60969..7d060c44aa1 100644
--- a/src/gallium/state_trackers/clover/api/program.cpp
+++ b/src/gallium/state_trackers/clover/api/program.cpp
@@ -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: