HLSL: принудительно использовать ограничение регистра констант во время компиляции

В HLSL, есть ли способ ограничить количество константных регистров, которые использует компилятор?

В частности, если у меня есть что-то вроде:

float4 foobar[300];

В вершинном шейдере vs_2_0 компилятор с удовольствием сгенерирует эффект, используя более 256 константных регистров. Но вершинный шейдер 2.0 гарантированно будет иметь доступ только к 256 константным регистрам, поэтому, когда я пытаюсь использовать эффект, во время выполнения он дает сбой неясным и зависящим от GPU способом. Я бы предпочел, чтобы он потерпел неудачу во время компиляции.

Эта проблема особенно раздражает, поскольку сам компилятор выделяет постоянные регистры за кулисами, помимо тех, которые я запрашиваю. Я должен проверить сборку, чтобы увидеть, не превышаю ли я предел.

В идеале я хотел бы сделать это в HLSL (я использую конвейер содержимого XNA), но если есть флаг, который может быть передан компилятору, который также будет интересен.

Ответы на вопрос(1)

Ваш ответ на вопрос