By default only the 'host' will be tested, this is identical to the current setup
however by setting to CYCLESTEST_KERNELS environment variable to a comma separated
list, the following kernels can be exercised as well.
host sse2 sse3 sse41 avx avx2 cuda opencl osl
- Reference images
Currently they all compare against the same reference image
which is not ideal, OSL tends to have mip mapping differences
and CUDA/OpenCL tends to have noise differences, not sure
how we want to deal with that, every kernel their own reference
image? Also there are a few specific OSL tests which naturally
will fail on all others, I think we can remove those if OSL
is able to run the whole test suite and has it's own reference
Somewhere along the way in the last year we broke OpenCL on nvidia
using the debug menu to force it to show up, just doesn't work
any-more. @MaiLavelle has tracked it down to rB949ab753bb2. I had
to hack around a bit in the code to get this to work, hack was
too dirty to include here, this should be fixed at one point but
I'm leaning towards that being out of scope for this diff.
- Silent substitutions
Asking blender/cycles to do things it can't causes it to silently
substitute something else. Asking it to do do an OpenCL render and
it's not available? It'll silently render on the CPU. Asking to
render with AVX2 on an AVX system? It'll silently downgrade the kernel.
Rendering with just the SSE41 CPU flags on, expecting an SSE41 render?
nope, SSE2+3 need to be on as well and it silently picks the 'default'
kernel. I'm not thrilled with any of this, but once more leaning towards
out of scope here though.
- Guess reporting could be a little nicer while it is running the tests
since it now seems it just runs the same test over and over for no apparent
Posting a WIP since I'd like some feedback how to deal with 1, but
insights on the other points would be welcome as well.