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>
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) :