Vray Denoiser Submit Force CPU

The Vray Denoiser Submission doesn’t expose the option to force the job to render CPU only, which when rendering on a mixed renderfarm and workstation is essential otherwise the machines with GPU’s render different output names, and probably using different algorithms. The Use GPU tickbox is not the same btw.

It would be great to support this switch in the submission, otherwise is there a way to submit using a config.xml file, which works with the standalone Vray Denoiser, but there doesn’t seem to be a was to include switches with the vdenoise.exe, I’ve tried adding to the Deadline plugin configuration, but the job just fails then.

1 Like

Do the results vary with different denoisers?

They certainly do when using the Nvidia or RTX denoisers, wouldn’t swear they are different when rendering via the default Vray denoiser in CPU or GPU mode?

However they append _ocl to the file name when rendering via the GPU with the Vray default denoiser.

I have amended the relevant files and this works, but obviously these will get over written when we upgrade Deadline

VDenoiseSubmission.py (20.7 KB)
VDenoise.py (4.5 KB)
VDenoise.options.zip (1.3 KB)

1 Like

they won’t get overwritten if you put them in the ‘custom’ folder

https://docs.thinkboxsoftware.com/products/deadline/10.1/1_User%20Manual/manual/scripting-overview.html#custom-repository-folder

Hello, @tsmithf

Thanks for reaching out. Can you explain more about below how?

The CPU option is not supported yet, I do not know VDoinser feature very well, do you off the top of your head know about any command line argument to force GPU? I can try passing that in the submitter (cannot promise though because of my naïve programming skills) to force CPU that way. We did it before for the Blender.

I will check files you have attached and see how did you force the CPU. Thanks for sharing.

The Use GPU switch is -useGpu=0 | 1 | 2

where 0 | 1 | 2 specifies when to use GPU (OpenCL) or CPU version for denoising.
0 - Use CPU. (default)
1 - Attempt to use the best OpenCL device available, and fall back to CPU if unsuccessful. (experimental)
2 - Attempt to use all suitable OpenCL devices, and fall back to CPU if unsuccessful.

The use CPU switch I implemented in my custom script above forces the use of the CPU for denoising ensuring consistent results across a renderfarm and workstations…

-useCpu=1
Forces usage of CPU version even if OpenCL support is found.

Hello!

Vdenoise adds the render arguments “useGpu=1” to the the Vray executable if you have checked Use GPU setting under VDenoise Option:
(V-Ray VDenoise — Deadline 10.2.1.1 documentation)

  • Use GPU: If checked then, attempt to use the best OpenCL, fall back to CPU if unsuccessful.

If you do not check the “Use GPU” option, it should default to “0” which would use CPU and also the default option.

You can find the render argument on the DeadlineRepository10\plugins\VDenoise\VDenoise.py file on line #69:

        if self.GetBooleanPluginInfoEntryWithDefault( "UseGPU", False ):
             renderArguments += ( "-useGpu=1 " )

That might be how it’s supposed to work, but when you submit a job if the render server has a GPU it still uses that, as can be seen by render output with _ocl apended to the filename, it’s only when you explicitly force CPU that this stops.