Поделиться через


Оператор while

Выполняет блок инструкций до тех пор, пока не произойдет сбой условного выражения.

[Attribute] while ( Conditional ) { Statement Block; }

Параметры

Атрибут

Необязательный параметр, который управляет способом компиляции инструкции.

attribute Описание
unroll(x) Распакуть цикл, пока он не перестанет выполняться. При необходимости можно указать максимальное количество выполнений цикла.
loop Используйте операторы управления потоком в скомпилированном шейдере; не следует раскрутить цикл.
fastopt Сокращает время компиляции, но обеспечивает менее агрессивную оптимизацию. Если вы используете этот атрибут, компилятор не будет раскрутить циклы.
Этот атрибут влияет только на целевые объекты модели шейдера, которые поддерживают инструкции прерывания . Этот атрибут доступен в модели шейдера vs_2_x и модели шейдера 3 и более поздних версий. Это особенно полезно в модели шейдера 4 и более поздних версий, когда компилятор компилирует циклы. Компилятор по умолчанию имитирует циклы, чтобы оценить, можно ли их развернуть. Если вы не хотите, чтобы компилятор отменял циклы, используйте этот атрибут, чтобы сократить время компиляции.
allow_uav_condition Позволяет условие завершения цикла шейдера вычислений основываться на считываемом БПЛА. Цикл не должен содержать встроенные функции синхронизации.

Условного

Условное выражение. Если выражение имеет значение true, выполняется блок инструкций. Цикл завершается, когда выражение принимает значение false.

Блок инструкций

Один или несколько операторов.

См. также раздел

Управление потоком