Skip to content

iris: Enable clover support with an environment variable

Faith Ekstrand requested to merge gfxstrand/mesa:review/iris-clover into master

This commit enables clover support for iris. It is intended as a compiler developer tool and not as a new OpenCL implementation from Intel. If you want competent OpenCL, we have a different open-source driver for that built on our LLVM-based IGC compiler stack. However, using clover with iris is becoming increasingly useful as a compiler development tool and I'm getting tired of carrying the patches in a private branch.

By default, clover will not initialize on iris. To enable clover, set the IRIS_ENABLE_CLOVER environment variable to "1" or "true". As we've done with the semi-sketchy platform support in ANV, it dumps a very loud WARNING to stderr when enabled. Use at your own risk.

NOTE: To anyone intending to benchmark this, the performance is going to be terrible and that is expected. This is in no way representative of the Intel/NIR compiler stack. As it currently stands, clover passes -O0 to clang when compiling OpenCL C to make SPIRV-LLVM-Transator work. When compiling the SPIR-V, clover currently doesn't run any NIR optimizations before it lowers memory access so any NIR optimizations iris attempts to do are severely hampered. One day, clover will get a NIR optimization loop or the ability to hand things off to the driver per-lowering but today is not that day.

Edited by Faith Ekstrand

Merge request reports