v2: - Only call notification for build errors - Fix clCompileProgram() Cc: 10.5 10.4 <mesa-sta...@lists.freedesktop.org> --- src/gallium/state_trackers/clover/api/program.cpp | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-)
diff --git a/src/gallium/state_trackers/clover/api/program.cpp b/src/gallium/state_trackers/clover/api/program.cpp index 60184ed..5cd543c 100644 --- a/src/gallium/state_trackers/clover/api/program.cpp +++ b/src/gallium/state_trackers/clover/api/program.cpp @@ -180,12 +180,18 @@ clBuildProgram(cl_program d_prog, cl_uint num_devs, validate_build_program_common(prog, num_devs, d_devs, pfn_notify, user_data); prog.build(devs, opts); + if (pfn_notify) + pfn_notify(d_prog, user_data); return CL_SUCCESS; +} catch (const build_error &e) { + if (pfn_notify) + pfn_notify(d_prog, user_data); + if (e.get() == CL_COMPILE_PROGRAM_FAILURE) + return CL_BUILD_PROGRAM_FAILURE; + return e.get(); } catch (error &e) { if (e.get() == CL_INVALID_COMPILER_OPTIONS) return CL_INVALID_BUILD_OPTIONS; - if (e.get() == CL_COMPILE_PROGRAM_FAILURE) - return CL_BUILD_PROGRAM_FAILURE; return e.get(); } @@ -223,8 +229,14 @@ clCompileProgram(cl_program d_prog, cl_uint num_devs, objs<allow_empty_tag>(d_header_progs, num_headers)); prog.build(devs, opts, headers); + if (pfn_notify) + pfn_notify(d_prog, user_data); return CL_SUCCESS; +} catch (const build_error &e) { + if (pfn_notify) + pfn_notify(d_prog, user_data); + return e.get(); } catch (error &e) { return e.get(); } -- 2.0.4 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev