Skip to content

Commit 800127c

Browse files
paulthomsonhevrard
authored andcommitted
Quick fix for running shader sets. (#48)
* Quick fix for running shader sets. * Fix typo.
1 parent e695a84 commit 800127c

File tree

1 file changed

+26
-17
lines changed

1 file changed

+26
-17
lines changed

shadersets-util/src/main/java/com/graphicsfuzz/shadersets/RunShaderFamily.java

+26-17
Original file line numberDiff line numberDiff line change
@@ -143,16 +143,21 @@ public static void mainHelper(
143143
runShaderFamily(shaderSet, outputDir, imageGenerator);
144144
}
145145

146-
public static int runShaderFamily(IShaderSet shaderSet, File workDir,
146+
public static int runShaderFamily(IShaderSet shaderSet, File experimentOutDir,
147147
IShaderDispatcher imageGenerator)
148148
throws ShaderDispatchException, InterruptedException, IOException {
149149

150150
int numShadersRun = 0;
151151

152-
IShaderSetExperiment experiment = new LocalShaderSetExperiement(workDir.toString(), shaderSet);
152+
IShaderSetExperiment experiment =
153+
new LocalShaderSetExperiement(
154+
experimentOutDir.toString(),
155+
shaderSet);
153156

154157
if (experiment.getReferenceImage() == null && experiment.getReferenceTextFile() == null) {
155-
runShader(workDir, FilenameUtils.removeExtension(shaderSet.getReference().getName()),
158+
runShader(
159+
experimentOutDir,
160+
FilenameUtils.removeExtension(shaderSet.getReference().toString()),
156161
imageGenerator,
157162
Optional.empty());
158163
++numShadersRun;
@@ -182,8 +187,12 @@ public static int runShaderFamily(IShaderSet shaderSet, File workDir,
182187
LOGGER.info("Skipping {} because we already have a result.", variant);
183188
} else {
184189
try {
185-
runShader(workDir, FilenameUtils.removeExtension(variant.getName()), imageGenerator,
190+
runShader(
191+
experimentOutDir,
192+
FilenameUtils.removeExtension(variant.toString()),
193+
imageGenerator,
186194
Optional.of(new ImageData(experiment.getReferenceImage())));
195+
187196
} catch (Exception err) {
188197
LOGGER.error("runShader() raise exception on {}", variant);
189198
err.printStackTrace();
@@ -194,16 +203,19 @@ public static int runShaderFamily(IShaderSet shaderSet, File workDir,
194203
return numShadersRun;
195204
}
196205

197-
public static ImageJobResult runShader(File workDir, String shaderJobPrefix,
198-
IShaderDispatcher imageGenerator, Optional<ImageData> referenceImage)
206+
public static ImageJobResult runShader(
207+
File outputDir,
208+
String shaderJobPrefix,
209+
IShaderDispatcher imageGenerator,
210+
Optional<ImageData> referenceImage)
199211
throws ShaderDispatchException, InterruptedException, IOException {
200212

201-
final File outputImage = new File(workDir, shaderJobPrefix + ".png");
202-
final File outputText = new File(workDir, shaderJobPrefix + ".txt");
213+
final String shaderName = new File(shaderJobPrefix).getName();
214+
final File outputImage = new File(outputDir, shaderName + ".png");
215+
final File outputText = new File(outputDir, shaderName + ".txt");
203216

204217
LOGGER.info("Shader set experiment: {} ", shaderJobPrefix);
205-
ImageJobResult res = imageGenerator.getImage(
206-
Paths.get(workDir.getAbsolutePath(), shaderJobPrefix).toString(), outputImage, false);
218+
ImageJobResult res = imageGenerator.getImage(shaderJobPrefix, outputImage, false);
207219

208220
if (res.isSetLog()) {
209221
FileUtils.writeStringToFile(outputText, res.getLog(), Charset.defaultCharset());
@@ -216,10 +228,8 @@ public static ImageJobResult runShader(File workDir, String shaderJobPrefix,
216228
// but also in case of Sanity error after a nondet.
217229
if (res.isSetPNG() && res.isSetPNG2()) {
218230
// we can dump both images
219-
File outputNondet1 = new File(workDir,
220-
Paths.get(workDir.getAbsolutePath(), shaderJobPrefix + "_nondet1.png").toString());
221-
File outputNondet2 = new File(workDir,
222-
Paths.get(workDir.getAbsolutePath(), shaderJobPrefix + "_nondet2.png").toString());
231+
File outputNondet1 = new File(outputDir, shaderName + "_nondet1.png");
232+
File outputNondet2 = new File(outputDir, shaderName + "_nondet2.png");
223233
FileUtils.writeByteArrayToFile(outputNondet1, res.getPNG());
224234
FileUtils.writeByteArrayToFile(outputNondet2, res.getPNG2());
225235

@@ -231,8 +241,7 @@ public static ImageJobResult runShader(File workDir, String shaderJobPrefix,
231241
new ByteArrayInputStream(res.getPNG()));
232242
BufferedImage img2 = ImageIO.read(
233243
new ByteArrayInputStream(res.getPNG2()));
234-
File gifFile = new File(workDir,
235-
shaderJobPrefix + ".gif");
244+
File gifFile = new File(outputDir,shaderName + ".gif");
236245
ImageOutputStream gifOutput = new FileImageOutputStream(gifFile);
237246
GifSequenceWriter gifWriter = new GifSequenceWriter(gifOutput, img1.getType(), 500, true);
238247
gifWriter.writeToSequence(nondetImg);
@@ -247,7 +256,7 @@ public static ImageJobResult runShader(File workDir, String shaderJobPrefix,
247256
}
248257

249258
// Dump job info in JSON
250-
File outputJson = new File(workDir,shaderJobPrefix + ".info.json");
259+
File outputJson = new File(outputDir,shaderName + ".info.json");
251260
JsonObject infoJson = makeInfoJson(res, outputImage, referenceImage);
252261
FileUtils.writeStringToFile(outputJson,
253262
JsonHelper.jsonToString(infoJson), Charset.defaultCharset());

0 commit comments

Comments
 (0)