Estou escrevendo um mecanismo de jogo e, quando uso uma câmera em perspectiva, recebo uma tela preta. Não vou perguntar exatamente por que isso ocorre, porque haveria muito código para compartilhar e, francamente, acho que é uma pergunta um pouco mesquinha mesmo para incomodá-los.
O problema é que eu não sei como depurá-lo. Tudo o que muda é a minha matriz de projeção, e se minha matriz de projeção parece boa, não sei por que não funciona. Idealmente, eu imprimia os valores de várias coisas como o shader fazia seus cálculos, mas o GLSL inconvenientemente não possui uma função printf ().
Então, minha pergunta é: como depurar meu problema? A única coisa em que consigo pensar é verificar o maior número possível de valores no lado do cliente e depois programar por permutação, mas fiz isso e não cheguei a lugar algum. Existe uma maneira de ver o que está acontecendo na placa de vídeo? Existe uma técnica completamente diferente que eu poderia estar usando?
Estou usando o GLSL versão 420 (e recursos específicos para essa versão), por isso não acho que o glslDevil seja uma opção, considerando que ele foi atualizado pela última vez em 2010.
EDITAR
Consegui resolver meu problema através de uma depuração completamente não relacionada.