Fix: NPE that occurs when the config file specifies a GPU thats not available anymore
This commit is contained in:
committed by
Sheepit Renderfarm
parent
c0155f141b
commit
e5b102b2d7
@@ -35,6 +35,9 @@ import java.util.Set;
|
|||||||
import com.sheepit.client.Configuration.ComputeType;
|
import com.sheepit.client.Configuration.ComputeType;
|
||||||
import com.sheepit.client.hardware.gpu.GPU;
|
import com.sheepit.client.hardware.gpu.GPU;
|
||||||
import com.sheepit.client.hardware.gpu.GPUDevice;
|
import com.sheepit.client.hardware.gpu.GPUDevice;
|
||||||
|
import com.sheepit.client.standalone.GuiSwing;
|
||||||
|
import com.sheepit.client.standalone.GuiText;
|
||||||
|
import com.sheepit.client.standalone.GuiTextOneLine;
|
||||||
import lombok.Setter;
|
import lombok.Setter;
|
||||||
|
|
||||||
public class SettingsLoader {
|
public class SettingsLoader {
|
||||||
@@ -399,6 +402,10 @@ public class SettingsLoader {
|
|||||||
// And now update the client configuration with the new value
|
// And now update the client configuration with the new value
|
||||||
config.setRenderbucketSize(config.getGPUDevice().getRenderbucketSize());
|
config.setRenderbucketSize(config.getGPUDevice().getRenderbucketSize());
|
||||||
}
|
}
|
||||||
|
else if (config.getUIType() != null && (config.getUIType().equals(GuiText.type) || config.getUIType().equals(GuiTextOneLine.type))) {
|
||||||
|
System.err.println("SettingsLoader::merge could not find specified GPU");
|
||||||
|
System.exit(2);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else if (config.getGPUDevice() != null) {
|
else if (config.getGPUDevice() != null) {
|
||||||
// The order of conditions is important to ensure the priority or app arguments, then the config file and finally the recommended size (if none
|
// The order of conditions is important to ensure the priority or app arguments, then the config file and finally the recommended size (if none
|
||||||
|
|||||||
@@ -71,6 +71,8 @@ import com.sheepit.client.hardware.gpu.opencl.OpenCL;
|
|||||||
import com.sheepit.client.network.Proxy;
|
import com.sheepit.client.network.Proxy;
|
||||||
import com.sheepit.client.os.OS;
|
import com.sheepit.client.os.OS;
|
||||||
import com.sheepit.client.standalone.GuiSwing;
|
import com.sheepit.client.standalone.GuiSwing;
|
||||||
|
import com.sheepit.client.standalone.GuiText;
|
||||||
|
import com.sheepit.client.standalone.GuiTextOneLine;
|
||||||
import com.sheepit.client.standalone.swing.components.CollapsibleJPanel;
|
import com.sheepit.client.standalone.swing.components.CollapsibleJPanel;
|
||||||
|
|
||||||
public class Settings implements Activity {
|
public class Settings implements Activity {
|
||||||
@@ -316,7 +318,9 @@ public class Settings implements Activity {
|
|||||||
int maxRenderbucketSize = 128;
|
int maxRenderbucketSize = 128;
|
||||||
int recommendedBucketSize = GPU.MIN_RENDERBUCKET_SIZE;
|
int recommendedBucketSize = GPU.MIN_RENDERBUCKET_SIZE;
|
||||||
|
|
||||||
if (config.getComputeMethod() == ComputeType.GPU || config.getComputeMethod() == ComputeType.CPU_GPU) {
|
//When replacing gpus it can happen that the client can't find the one specified in the config anymore in which case config.getGPUDevice()
|
||||||
|
//returns null
|
||||||
|
if ((config.getComputeMethod() == ComputeType.GPU || config.getComputeMethod() == ComputeType.CPU_GPU) && config.getGPUDevice() != null) {
|
||||||
GPULister gpu;
|
GPULister gpu;
|
||||||
|
|
||||||
if (config.getGPUDevice().getType().equals("CUDA")) {
|
if (config.getGPUDevice().getType().equals("CUDA")) {
|
||||||
|
|||||||
Reference in New Issue
Block a user