[prev in list] [next in list] [prev in thread] [next in thread] 

List:       mesa3d-dev
Subject:    Re: [Mesa-dev] [PATCH 2/6] clover: Call clBuildProgram() notification function when build completes 
From:       Francisco Jerez <currojerez () riseup ! net>
Date:       2015-03-31 14:29:03
Message-ID: 87384l6y1c.fsf () riseup ! net
[Download RAW message or body]

[Attachment #2 (multipart/signed)]

[Attachment #4 (multipart/mixed)]


Tom Stellard <thomas.stellard@amd.com> writes:

> v2:
> - Only call notification for build errors
> - Fix clCompileProgram()
> 
> Cc: 10.5 10.4 <mesa-stable@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);

Maybe leave blank lines around the conditional where preceded/followed
by another statement?

> 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();

You can just return CL_BUILD_PROGRAM_FAILURE here unconditionally.

> } 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);

Same here.

> 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


["signature.asc" (application/pgp-signature)]
[Attachment #8 (text/plain)]

_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic