Merge branch 'feat/new-power-detection' into 'master'
Feat: update to new power detection method See merge request sheepitrenderfarm/client!201
This commit is contained in:
@@ -1089,6 +1089,9 @@ import okhttp3.HttpUrl;
|
|||||||
protected Error.Type confirmJob(Job ajob, int checkpoint) {
|
protected Error.Type confirmJob(Job ajob, int checkpoint) {
|
||||||
String url_real = String.format(LOCALE, "%s&rendertime=%d&memoryused=%s", ajob.getValidationUrl(), ajob.getProcessRender().getRenderDuration(),
|
String url_real = String.format(LOCALE, "%s&rendertime=%d&memoryused=%s", ajob.getValidationUrl(), ajob.getProcessRender().getRenderDuration(),
|
||||||
ajob.getProcessRender().getPeakMemoryUsed());
|
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, "Client::confirmeJob url " + url_real);
|
||||||
this.log.debug(checkpoint, "path frame " + ajob.getOutputImagePath());
|
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 com.sheepit.client.os.OS;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
import org.simpleframework.xml.util.Match;
|
|
||||||
|
|
||||||
import java.io.BufferedReader;
|
import java.io.BufferedReader;
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
@@ -78,6 +77,7 @@ import java.util.regex.Pattern;
|
|||||||
private String blenderShortVersion;
|
private String blenderShortVersion;
|
||||||
private String blenderLongVersion;
|
private String blenderLongVersion;
|
||||||
private boolean synchronousUpload;
|
private boolean synchronousUpload;
|
||||||
|
private float speedSamplesRendered; // only used for powerdetection project
|
||||||
private RenderProcess render;
|
private RenderProcess render;
|
||||||
private boolean askForRendererKill;
|
private boolean askForRendererKill;
|
||||||
private boolean userBlockJob;
|
private boolean userBlockJob;
|
||||||
@@ -113,6 +113,7 @@ import java.util.regex.Pattern;
|
|||||||
render = new RenderProcess(log_);
|
render = new RenderProcess(log_);
|
||||||
blenderShortVersion = null;
|
blenderShortVersion = null;
|
||||||
blenderLongVersion = null;
|
blenderLongVersion = null;
|
||||||
|
speedSamplesRendered = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void block() {
|
public void block() {
|
||||||
@@ -398,6 +399,7 @@ import java.util.regex.Pattern;
|
|||||||
return Error.Type.RENDERER_OUT_OF_MEMORY;
|
return Error.Type.RENDERER_OUT_OF_MEMORY;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
updateSpeedSamplesRendered(line, progress);
|
||||||
updateRenderingStatus(line, progress);
|
updateRenderingStatus(line, progress);
|
||||||
Type error = detectError(line);
|
Type error = detectError(line);
|
||||||
if (error != Error.Type.OK) {
|
if (error != Error.Type.OK) {
|
||||||
@@ -600,6 +602,24 @@ import java.util.regex.Pattern;
|
|||||||
return newProgress;
|
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) {
|
private void updateRenderingStatus(String line, int progress) {
|
||||||
if (getUpdateRenderingStatusMethod() == null || getUpdateRenderingStatusMethod().equals(Job.UPDATE_METHOD_BY_REMAINING_TIME)) {
|
if (getUpdateRenderingStatusMethod() == null || getUpdateRenderingStatusMethod().equals(Job.UPDATE_METHOD_BY_REMAINING_TIME)) {
|
||||||
String search_remaining = "remaining:";
|
String search_remaining = "remaining:";
|
||||||
|
|||||||
Reference in New Issue
Block a user