So, in summary:
1) -> it seems there is an issue in unity for not starting in Colin's case, even if unity_support_test tells he's using llvmpipe, needs to be checked upstream
2) we shouldn't export LIBGL_ALWAYS_SOFTWARE=1 to the environment using a checker. Because that means that all software that can't maybe use unity under hw acceleration but can use smaller apps with hw acceleration will be defaulted to llvmpipe. If we set that to the environment with the checker, all applications will be impacted.
So unity itself should do the check at initiliziation time, force and reinitialize with this env variable and then unset it.
So, in summary:
1) -> it seems there is an issue in unity for not starting in Colin's case, even if unity_support_test tells he's using llvmpipe, needs to be checked upstream
2) we shouldn't export LIBGL_ALWAYS_ SOFTWARE= 1 to the environment using a checker. Because that means that all software that can't maybe use unity under hw acceleration but can use smaller apps with hw acceleration will be defaulted to llvmpipe. If we set that to the environment with the checker, all applications will be impacted.
So unity itself should do the check at initiliziation time, force and reinitialize with this env variable and then unset it.
3 and 4) can't really be dealt with unfortunately