Tests: add CMake option to run Cycles regression tests on GPU devices

CYCLES_TEST_DEVICES is a list of devices (CPU, CUDA, OPTIX, OPENCL). It is set
to CPU only by default.

Test output is now writen to build/tests/cycles/<device>, and the HTML report
has separate report pages for the different devices, with option to compare
between CPU and GPU renders.

Various GPU tests are still failing due to CPU/GPU differences, these are to be
fixed or blacklisted still.

Ref T82193
This commit is contained in:
Brecht Van Lommel
2020-10-28 16:19:03 +01:00
parent c986e46be7
commit dd391d38f6
7 changed files with 70 additions and 29 deletions

View File

@@ -50,6 +50,7 @@ def create_argparse():
parser.add_argument("-testdir", nargs=1)
parser.add_argument("-outdir", nargs=1)
parser.add_argument("-idiff", nargs=1)
parser.add_argument("-device", nargs=1)
return parser
@@ -61,12 +62,16 @@ def main():
test_dir = args.testdir[0]
idiff = args.idiff[0]
output_dir = args.outdir[0]
device = args.device[0]
from modules import render_report
report = render_report.Report("Cycles", output_dir, idiff)
report = render_report.Report('Cycles', output_dir, idiff, device)
report.set_pixelated(True)
report.set_reference_dir("cycles_renders")
report.set_compare_engines('cycles', 'eevee')
if device == 'CPU':
report.set_compare_engine('eevee')
else:
report.set_compare_engine('cycles', 'CPU')
# Increase threshold for motion blur, see T78777.
test_dir_name = Path(test_dir).name