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

> Cc: 10.5 10.4 <mesa-sta...@lists.freedesktop.org>
> ---
>  src/gallium/state_trackers/clover/core/program.cpp | 6 +++++-
>  src/gallium/state_trackers/clover/core/program.hpp | 1 +
>  2 files changed, 6 insertions(+), 1 deletion(-)
>
> diff --git a/src/gallium/state_trackers/clover/core/program.cpp 
> b/src/gallium/state_trackers/clover/core/program.cpp
> index 8553ca7..06a6d92 100644
> --- a/src/gallium/state_trackers/clover/core/program.cpp
> +++ b/src/gallium/state_trackers/clover/core/program.cpp
> @@ -49,6 +49,7 @@ program::build(const ref_vector<device> &devs, const char 
> *opts,
>           _binaries.erase(&dev);
>           _logs.erase(&dev);
>           _opts.erase(&dev);
> +         _errs.erase(&dev);
>  
>           _opts.insert({ &dev, opts });
>  
> @@ -65,6 +66,7 @@ program::build(const ref_vector<device> &devs, const char 
> *opts,
>              _logs.insert({ &dev, log });
>           } catch (const build_error &) {
>              _logs.insert({ &dev, log });
> +            _errs.insert(&dev);
>              throw;
>           }
>        }
> @@ -88,7 +90,9 @@ program::binary(const device &dev) const {
>  
>  cl_build_status
>  program::build_status(const device &dev) const {
> -   if (_binaries.count(&dev))
> +   if (_errs.count(&dev))
> +      return CL_BUILD_ERROR;
> +   else if (_binaries.count(&dev))
>        return CL_BUILD_SUCCESS;
>     else
>        return CL_BUILD_NONE;

Any reason you couldn't do something like:

|   if (_binaries.count(&dev))
|      return CL_BUILD_SUCCESS;
|   else if (_log.count(&dev))
|      return CL_BUILD_ERROR;
|   else
|      return CL_BUILD_NONE;


> diff --git a/src/gallium/state_trackers/clover/core/program.hpp 
> b/src/gallium/state_trackers/clover/core/program.hpp
> index 661fa03..8c90199 100644
> --- a/src/gallium/state_trackers/clover/core/program.hpp
> +++ b/src/gallium/state_trackers/clover/core/program.hpp
> @@ -73,6 +73,7 @@ namespace clover {
>        std::map<const device *, module> _binaries;
>        std::map<const device *, std::string> _logs;
>        std::map<const device *, std::string> _opts;
> +      std::set<const device *> _errs;
>        std::string _source;
>        ref_counter _kernel_ref_counter;
>     };
> -- 
> 2.0.4

Attachment: signature.asc
Description: PGP signature

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

Reply via email to