A escolha não é necessariamente entre renderização indireta e renderização de software, mas mais precisamente entre renderização direta e indireta. A renderização direta será feita no cliente X (a máquina remota), e os resultados da renderização serão transferidos para o servidor X para exibição. A renderização indireta transmitirá comandos GL para o servidor X, onde esses comandos serão renderizados usando o hardware do servidor. Como você deseja usar o hardware 3D na máquina remota, você deve usar a renderização direta (e aceitar a sobrecarga de transmissão da imagem rasterizada pela rede).
Se a sua aplicação não puder viver com o OpenGL 1.4, a renderização direta é sua única opção.