GL_NV_gpu_shader5 doesn't support "hf", so to avoid lots of complicated workarounds, just value-cast the half literals.
Fix various bugs along the way.