Compartilhar via


loop (sm4 – asm)

Especifica um loop que itera até que uma instrução de interrupção seja encontrada.

loop

 

Comentários

O loop pode iterar indefinidamente, embora a execução geral do Sombreador possa ser forçada a terminar depois que algumas instruções forem executadas.

Os blocos de controle de fluxo podem aninhar até 64 profundidades por sub-rotina e main. O compilador HLSL não gerará sub-rotinas que excedam esse limite. O comportamento das instruções de fluxo de controle além de 64 níveis de profundidade por sub-rotina é indefinido.

O formato de token contém o deslocamento da instrução endloop correspondente no Sombreador como uma conveniência.

O exemplo a seguir mostra como usar a instrução loop.

                loop
                    // example of termination condition
                    if_nz r0.x
                        break
                    endif
                    ...
                endloop

Esta instrução se aplica aos seguintes estágios de sombreador:

Sombreador de vértice Sombreador de geometria Sombreador de pixel
x x x

 

Modelo de sombreador mínimo

Essa função tem suporte nos modelos de sombreador a seguir.

Modelo de Sombreador Com suporte
Modelo de sombreador 5 sim
Modelo de sombreador 4.1 sim
Modelo de sombreador 4 sim
Modelo de sombreador 3 (DirectX HLSL) não
Modelo de sombreador 2 (DirectX HLSL) não
Modelo de sombreador 1 (DirectX HLSL) não

 

Assembly do Modelo de Sombreador 4 (DirectX HLSL)