clover: Don't erase build info of devices not being built
authorTom Stellard <thomas.stellard@amd.com>
Mon, 10 Dec 2012 16:04:04 +0000 (16:04 +0000)
committerTom Stellard <thomas.stellard@amd.com>
Thu, 13 Dec 2012 19:22:35 +0000 (19:22 +0000)
Every call to _cl_program::build() was erasing the binaries and logs for
every device associated with the program.  This is incorrect because
it is possible to build a program for only a subset of devices and so
any device not being build should not have this information erased.

Reviewed-by: Francisco Jerez <currojerez@riseup.net>
src/gallium/state_trackers/clover/core/program.cpp

index 6ca8080..5fcda23 100644 (file)
@@ -42,10 +42,10 @@ _cl_program::_cl_program(clover::context &ctx,
 
 void
 _cl_program::build(const std::vector<clover::device *> &devs) {
-   __binaries.clear();
-   __logs.clear();
 
    for (auto dev : devs) {
+      __binaries.erase(dev);
+      __logs.erase(dev);
       try {
          auto module = (dev->ir_format() == PIPE_SHADER_IR_TGSI ?
                         compile_program_tgsi(__source) :