Boxis R700 Manuel d'utilisateur Page 49

  • Télécharger
  • Ajouter à mon manuel
  • Imprimer
  • Page
    / 392
  • Table des matières
  • MARQUE LIVRES
  • Noté. / 5. Basé sur avis des utilisateurs
Vue de la page 48
ATI R700 Technology
Conditional Execution 3-13
Copyright © 2009 Advanced Micro Devices, Inc. All rights reserved.
instructions that update the active mask. These instructions can be used to
permanently disable pixels that were recently activated. Valid pixel mode
normally is not used to exit whole quad mode; whole quad mode normally is
exited automatically when reaching the end of scope for the branch-loop
instruction that began in whole quad mode.
Instructions using the CF_DWORD[0,1] or the CF_ALLOC_EXPORT_DWORD[0,1]
microcode formats have VALID_PIXEL_MODE fields. ALU clause instructions
behave as if the VALID_PIXEL_MODE bit were cleared. Valid pixel mode is not the
default mode; normal programs that do not contain gradient operations clear the
VALID_PIXEL_MODE bit. The valid pixel mode is used only to deactivate pixels
invalidated by a KILL instruction and to temporarily inhibit the effects of whole
quad mode. Do not set both the WHOLE_QUAD_MODE bit and VALID_PIXEL_MODE bit.
Branch-loop instructions that pop from the stack interpret the valid pixel mode
differently. If the mode is set on an instruction that pops the stack, invalid pixels
are deactivated after the active mask is restored from the stack. This can make
the effect of the valid pixel mode permanent for a killed pixel that is executed
inside a conditional branch. By default, the per-pixel active state is overwritten
with the stack contents on each pop, without regard for the current active state;
however, when VALID_PIXEL_MODE is set, the invalid pixels are deactivated even
though they were active going into the conditional scope.
3.6.3 The Condition (COND) Field
Instructions that use the CF_DWORD[0,1] microcode formats have a COND field
that lets them be conditionally executed. The COND field can have one of the
following values:
CF_COND_ACTIVE — Pixel currently active. Non-branch-loop instructions can
use only this setting.
CF_COND_BOOL — Pixel currently active, and the boolean referenced by
CF_CONST is one.
CF_COND_NOT_BOOL — Pixel currently active, and the boolean referenced by
CF_CONST is zero.
For most CF instructions, COND is used only to determine which pixels are
executing that particular instruction; the result of the test is discarded after the
instruction completes. Branch-loop instructions that manipulate the active state
can use the result of the test to update the new active mask; these cases are
described below. Non-branch-loop instructions can use only the CF_COND_ACTIVE
setting. Generally, branch-loop instructions that push pixel state onto the stack
push the original pixel state before beginning the instruction, and use the result
of COND to write the new active state. Some instructions that pop from the stack
can pop the stack first, then evaluate the condition code, and update the per-
pixel state based on the result of the pop and the condition code.
Instructions that do not have a COND field behave as if CF_COND_ACTIVE were
used. ALU clauses do not have a COND field; they execute pixels based on the
current active mask. ALU clauses can update the active mask using PRED_SET*
Vue de la page 48
1 2 ... 44 45 46 47 48 49 50 51 52 53 54 ... 391 392

Commentaires sur ces manuels

Pas de commentaire