summaryrefslogtreecommitdiffstats
path: root/src/gallium/state_trackers/clover
diff options
context:
space:
mode:
authorTom Stellard <[email protected]>2012-06-28 20:05:21 +0000
committerFrancisco Jerez <[email protected]>2012-07-01 15:45:24 +0200
commit1d21bd057a6b1701dd44a79e82259c0f3ded2b70 (patch)
tree3eb4dd20cf4a9e3a1057719c0552fd6fde99607f /src/gallium/state_trackers/clover
parentc6bb41c28b2da269d5b692d1d0f4acbf3cdd4b5c (diff)
clover: Handle NULL devs argument in clBuildProgram
If devs is NULL, then the kernel should be compiled for all devices associated with the program.
Diffstat (limited to 'src/gallium/state_trackers/clover')
-rw-r--r--src/gallium/state_trackers/clover/api/program.cpp15
1 files changed, 10 insertions, 5 deletions
diff --git a/src/gallium/state_trackers/clover/api/program.cpp b/src/gallium/state_trackers/clover/api/program.cpp
index e874c51ad7d..b167904377f 100644
--- a/src/gallium/state_trackers/clover/api/program.cpp
+++ b/src/gallium/state_trackers/clover/api/program.cpp
@@ -142,12 +142,17 @@ clBuildProgram(cl_program prog, cl_uint count, const cl_device_id *devs,
(!pfn_notify && user_data))
throw error(CL_INVALID_VALUE);
- if (any_of([&](const cl_device_id dev) {
- return !prog->ctx.has_device(dev);
- }, devs, devs + count))
- throw error(CL_INVALID_DEVICE);
+ if (devs) {
+ if (any_of([&](const cl_device_id dev) {
+ return !prog->ctx.has_device(dev);
+ }, devs, devs + count))
+ throw error(CL_INVALID_DEVICE);
+
+ prog->build({ devs, devs + count });
+ } else {
+ prog->build(prog->ctx.devs);
+ }
- prog->build({ devs, devs + count });
return CL_SUCCESS;
} catch (error &e) {