Udostępnij za pośrednictwem


Modyfikatory rejestru źródłowego cieniowania pikseli

Użyj modyfikatorów rejestru źródłowego, aby zmienić wartość odczytaną z rejestru przed uruchomieniem instrukcji. Zawartość rejestru źródłowego pozostaje niezmieniona. Modyfikatory są przydatne do dostosowywania zakresu danych rejestru w ramach przygotowań do instrukcji. Zestaw modyfikatorów nazywany selektorami kopiuje lub replikuje dane z jednego kanału (r,g,b,a) do innych kanałów.

ps_1_1 — ps_1_4

W tej tabeli przedstawiono wersje, które obsługują każdy modyfikator:

Modyfikatory rejestru źródłowego Składnia Wersja 1_1 Wersja 1_2 Wersja 1_3 Wersja 1_4
stronniczy register_bias X X X X
odwracanie 1 — rejestrowanie X X X X
negować -rejestrować X X X X
skalowanie o 2 register_x2 X
podpisane skalowania register_bx2 X X X X
modyfikatory texld i texcrd register_d* X X X X
rejestru źródłowego register.xyzw X X X X

 

Modyfikatory rejestru źródłowego mogą być używane tylko w instrukcjach arytmetycznych. Nie można ich używać w instrukcjach adresowych tekstury. Wyjątkiem od tego jest skalowanie o 2 modyfikator. W przypadku wersji 1_1 podpisana skala może być używana w argumencie źródłowym dowolnej instrukcji texm*. W przypadku wersji 1_2 lub 1_3 na argument źródłowy dowolnej instrukcji adresowej tekstury można użyć skali ze znakiem.

Niektóre ograniczenia specyficzne dla modyfikatora:

  • Negat może być połączony z stronniczość, podpisane skalowanie lub modyfikator scalex2. W połączeniu negat jest uruchamiany ostatnio.
  • Odwróć nie można połączyć z żadnym innym modyfikatorem.
  • Odwracanie, negowanie, stronniczość, podpisane skalowanie i skalowaniex2 można łączyć z dowolnymi selektorami.
  • Modyfikatory rejestru źródłowego nie powinny być używane w rejestrach stałych, ponieważ spowodują one niezdefiniowane wyniki. W przypadku wersji 1_4 modyfikatory na stałe są niedozwolone i walidacja zakończy się niepowodzeniem.

ps_2_0 i powyżej

W przypadku ps_2_0 i nowszych wersji liczba modyfikatorów została uproszczona.

Negować

Negowanie zawartości rejestru źródłowego.

Modyfikator składników Opis
- r Negacja źródła

 

Modyfikator negatu nie może być używany w drugim rejestrze źródłowym tych instrukcji: m3x2 - ps, m3x3 - ps, m3x4 - ps, m4x3 - ps, i m4x4 - ps.

Wersje cieniowania pikseli 2_0 2_x 2_sw 3_0 3_sw
- x x x x x

 

Wartość bezwzględna

Weź wartość bezwzględną rejestru.

Wersje cieniowania pikseli 2_0 2_x 2_sw 3_0 3_sw
Abs x x

 

Jeśli jakikolwiek moduł cieniowania w wersji 3 odczytuje jeden lub więcej stałych rejestrów zmiennoprzecinkowych (c#), jedna z poniższych wartości musi mieć wartość true.

  • Wszystkie stałe rejestry zmiennoprzecinkowe muszą używać modyfikatora abs.
  • Żaden z stałych rejestrów zmiennoprzecinkowych nie może używać modyfikatora abs.

modyfikatory rejestru pikseli