Feat: update to new power detection method
This commit is contained in:
@@ -1089,6 +1089,9 @@ import okhttp3.HttpUrl;
|
||||
protected Error.Type confirmJob(Job ajob, int checkpoint) {
|
||||
String url_real = String.format(LOCALE, "%s&rendertime=%d&memoryused=%s", ajob.getValidationUrl(), ajob.getProcessRender().getRenderDuration(),
|
||||
ajob.getProcessRender().getPeakMemoryUsed());
|
||||
if (ajob.getSpeedSamplesRendered() > 0.0) {
|
||||
url_real += String.format(LOCALE, "&speedsamples=%s", ajob.getSpeedSamplesRendered());
|
||||
}
|
||||
this.log.debug(checkpoint, "Client::confirmeJob url " + url_real);
|
||||
this.log.debug(checkpoint, "path frame " + ajob.getOutputImagePath());
|
||||
|
||||
|
||||
@@ -24,7 +24,6 @@ import com.sheepit.client.Error.Type;
|
||||
import com.sheepit.client.os.OS;
|
||||
import lombok.Data;
|
||||
import lombok.Getter;
|
||||
import org.simpleframework.xml.util.Match;
|
||||
|
||||
import java.io.BufferedReader;
|
||||
import java.io.File;
|
||||
@@ -78,6 +77,7 @@ import java.util.regex.Pattern;
|
||||
private String blenderShortVersion;
|
||||
private String blenderLongVersion;
|
||||
private boolean synchronousUpload;
|
||||
private float speedSamplesRendered; // only used for powerdetection project
|
||||
private RenderProcess render;
|
||||
private boolean askForRendererKill;
|
||||
private boolean userBlockJob;
|
||||
@@ -113,6 +113,7 @@ import java.util.regex.Pattern;
|
||||
render = new RenderProcess(log_);
|
||||
blenderShortVersion = null;
|
||||
blenderLongVersion = null;
|
||||
speedSamplesRendered = 0;
|
||||
}
|
||||
|
||||
public void block() {
|
||||
@@ -398,6 +399,7 @@ import java.util.regex.Pattern;
|
||||
return Error.Type.RENDERER_OUT_OF_MEMORY;
|
||||
}
|
||||
|
||||
updateSpeedSamplesRendered(line, progress);
|
||||
updateRenderingStatus(line, progress);
|
||||
Type error = detectError(line);
|
||||
if (error != Error.Type.OK) {
|
||||
@@ -600,6 +602,24 @@ import java.util.regex.Pattern;
|
||||
return newProgress;
|
||||
}
|
||||
|
||||
private void updateSpeedSamplesRendered(String line, int progress) {
|
||||
// Looking for "Rendered 1281 samples in 66.319402 seconds"
|
||||
Pattern pattern = Pattern.compile("^Rendered (\\d+) samples in ([\\d.]+) seconds$");
|
||||
Matcher matcher = pattern.matcher(line);
|
||||
|
||||
if (matcher.find()) {
|
||||
int amount = Integer.parseInt(matcher.group(1));
|
||||
float duration = Float.parseFloat(matcher.group(2));
|
||||
|
||||
if (duration != 0 && amount != 0) {
|
||||
this.speedSamplesRendered = amount / duration;
|
||||
}
|
||||
}
|
||||
|
||||
// should we use this, instead ???
|
||||
// "Average time per sample: 0.052112 seconds"
|
||||
}
|
||||
|
||||
private void updateRenderingStatus(String line, int progress) {
|
||||
if (getUpdateRenderingStatusMethod() == null || getUpdateRenderingStatusMethod().equals(Job.UPDATE_METHOD_BY_REMAINING_TIME)) {
|
||||
String search_remaining = "remaining:";
|
||||
|
||||
Reference in New Issue
Block a user