- buildProgram<vk::SpirVProgramInfo, vk::SpirVAsmCollection::Iterator>(casePath, printLogs, progIter, mode, &stats, reader.get(), writer.get());
+ builtPrograms.push_back(buildProgram(progIter, casePath));
+ }
+
+ // Process programs
+ for (vector<BuiltProgramSp>::const_iterator progIter = builtPrograms.begin();
+ progIter != builtPrograms.end();
+ ++progIter)
+ {
+ const BuiltProgram& program = **progIter;
+
+ if (program.buildOk)
+ {
+ std::ostringstream validationLog;
+
+ writer->storeProgram(program.id, *program.binary);
+
+ if (validateBinaries &&
+ !vk::validateProgram(*program.binary, &validationLog))
+ {
+ tcu::print("ERROR: validation failed for %s\n", program.id.programName.c_str());
+ tcu::print("%s\n", validationLog.str().c_str());
+ stats.numFailed += 1;
+ }
+ else
+ stats.numSucceeded += 1;
+ }
+ else
+ {
+ tcu::print("ERROR: failed to build %s\n", program.id.programName.c_str());
+ tcu::print("%s\n", program.buildLog.c_str());
+ stats.numFailed += 1;
+ }