HLSL: Aplicar limite de registro constante no tempo de compilação
No HLSL, existe alguma maneira de limitar o número de registros constantes que o compilador usa?
Especificamente, se eu tiver algo como:
float4 foobar[300];
Em um shader de vértice vs_2_0, o compilador gera alegremente o efeito com mais de 256 registros constantes. Mas é garantido que um shader de vértice 2.0 só tem acesso a 256 registros constantes; portanto, quando tento usar o efeito, ele falha de uma maneira obscura e dependente da GPU em tempo de execução. Eu preferiria que falhasse no momento da compilação.
Esse problema é especialmente irritante, pois o próprio compilador aloca registros constantes nos bastidores, além dos que estou pedindo. Eu tenho que verificar a montagem para ver se estou acima do limite.
Idealmente, eu gostaria de fazer isso no HLSL (estou usando o pipeline de conteúdo XNA), mas se houver um sinalizador que possa ser passado ao compilador, isso também seria interessante.