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.
Tematy pokrewne
-
modyfikatory rejestru pikseli