В HLSL, есть ли способ ограничить количество константных регистров, которые использует компилятор?
В частности, если у меня есть что-то вроде:
float4 foobar[300];
В вершинном шейдере vs_2_0 компилятор с удовольствием сгенерирует эффект, используя более 256 константных регистров. Но вершинный шейдер 2.0 гарантированно будет иметь доступ только к 256 константным регистрам, поэтому, когда я пытаюсь использовать эффект, во время выполнения он дает сбой неясным и зависимым от GPU способом. Я бы предпочел, чтобы он потерпел неудачу во время компиляции.
Эта проблема особенно раздражает, поскольку сам компилятор выделяет постоянные регистры за кулисами, помимо тех, которые я запрашиваю. Я должен проверить сборку, чтобы увидеть, не превышаю ли я предел.
В идеале я хотел бы сделать это в HLSL (я использую конвейер содержимого XNA), но если есть флаг, который можно передать компилятору, который также будет интересен.