Tom Stellard <[email protected]> writes: > This was a regression introduced by > 611d66fe4513e53bde052dd2bab95d448c909a2a > > Passing a binary program to clBuildProgram() is legal, but passing one > to clCompileProgram() is not. > --- > src/gallium/state_trackers/clover/api/program.cpp | 21 ++++++++++++++++----- > 1 file changed, 16 insertions(+), 5 deletions(-) > > diff --git a/src/gallium/state_trackers/clover/api/program.cpp > b/src/gallium/state_trackers/clover/api/program.cpp > index bf32543..3ea9fe3 100644 > --- a/src/gallium/state_trackers/clover/api/program.cpp > +++ b/src/gallium/state_trackers/clover/api/program.cpp > @@ -173,12 +173,23 @@ CLOVER_API cl_int > clBuildProgram(cl_program d_prog, cl_uint num_devs, > const cl_device_id *d_devs, const char *p_opts, > void (*pfn_notify)(cl_program, void *), > - void *user_data) { > - cl_int ret = clCompileProgram(d_prog, num_devs, d_devs, p_opts, > - 0, NULL, NULL, pfn_notify, user_data); > + void *user_data) try { > + auto &prog = obj(d_prog); > + auto devs = (d_devs ? objs(d_devs, num_devs) : > + ref_vector<device>(prog.context().devices())); > + auto opts = (p_opts ? p_opts : ""); > + header_map headers; > + > + validate_build_program_common(num_devs, d_devs, (void*)pfn_notify, > + user_data, prog, devs); > > - return (ret == CL_COMPILE_PROGRAM_FAILURE ? > - CL_BUILD_PROGRAM_FAILURE : ret); > + // FIXME: We should overload this function so we don't need to pass > headers.
Just pass an empty initializer list to avoid having to declare an empty
header map, like 'prog.build(devs, opts, {});', or if you find this very
annoying add a default initializer 'headers = {}' to the prototype of
program::build() -- no need to define an overload.
With that fixed:
Reviewed-by: Francisco Jerez <[email protected]>
> + prog.build(devs, opts, headers);
> + return CL_SUCCESS;
> +} catch (error &e) {
> + if (e.get() == CL_COMPILE_PROGRAM_FAILURE)
> + return CL_BUILD_PROGRAM_FAILURE;
> + return e.get();
> }
>
> CLOVER_API cl_int
> --
> 1.8.5.5
pgp24FOxh2GJi.pgp
Description: PGP signature
_______________________________________________ mesa-dev mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/mesa-dev
