Pierre Moreau <pierre.mor...@free.fr> writes: > From the OpenCL 1.2 Specification, Section 5.6.2 (about clBuildProgram: > >> If program is created with clCreateProgramWithBinary, then the >> program binary must be an executable binary (not a compiled binary or >> library). > > Signed-off-by: Pierre Moreau <pierre.mor...@free.fr> > --- > src/gallium/state_trackers/clover/api/program.cpp | 8 ++++++++ > 1 file changed, 8 insertions(+) > > diff --git a/src/gallium/state_trackers/clover/api/program.cpp > b/src/gallium/state_trackers/clover/api/program.cpp > index 9d59668f8f..6044179587 100644 > --- a/src/gallium/state_trackers/clover/api/program.cpp > +++ b/src/gallium/state_trackers/clover/api/program.cpp > @@ -186,6 +186,14 @@ clBuildProgram(cl_program d_prog, cl_uint num_devs, > if (prog.has_source) { > prog.compile(devs, opts); > prog.link(devs, opts, { prog }); > + } else if (any_of([&](const device &dev){ > + return prog.build(dev).binary_type() != > CL_PROGRAM_BINARY_TYPE_EXECUTABLE; > + }, objs<allow_empty_tag>(d_devs, num_devs))) {
Shouldn't this be using the range of devices the application requested to build for (which might be the whole set of devices associated with prog if d_devs was null) instead of the objs expression? > + // OpenCL 1.2 Specification, Section 5.6.2: > + // > If program is created with clCreateProgramWithBinary, then the > + // > program binary must be an executable binary (not a compiled > binary or > + // > library). I'd format this like: | // According to the OpenCL 1.2 specification, "if program is created with | // clCreateProgramWithBinary, then the program binary must be an executable | // binary (not a compiled binary or library)." > + throw error(CL_INVALID_BINARY); > } > > return CL_SUCCESS; > -- > 2.16.0
signature.asc
Description: PGP signature
_______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev