ps_3_0
Programowalny cieniowanie pikseli składa się z zestawu instrukcji działających na danych pikseli. Rejestruje dane transferu w i z ALU. Dodatkową kontrolkę można zastosować, aby zmodyfikować instrukcję, wyniki lub dane, które są zapisywane.
- ps_3_0 Instrukcje zawiera listę dostępnych instrukcji.
- ps_3_0 Registers zawiera listę różnych typów rejestrów używanych przez moduł cieniowania pikseli ALU.
- modyfikatory Są używane do modyfikowania sposobu działania instrukcji.
- docelowa maska zapisu rejestru określa, jakie składniki rejestru docelowego są zapisywane.
- modyfikatory rejestru źródłowego Pixel Shader zmienić dane rejestru źródłowego przed uruchomieniem instrukcji.
- rejestru źródłowego zapewnia dodatkową kontrolę nad tym, które składniki rejestru są odczytywane, kopiowane lub zapisywane.
Nowe funkcje
Dodaj rejestr twarzy. Dodaj rejestr pozycji. Rejestry kolorów (v#) są teraz w pełni zmiennoprzecinkowe, a rejestry współrzędnych tekstury (t#) zostały skonsolidowane. Deklaracje wejściowe przyjmują nazwy użycia, a wiele użycia jest dozwolonych dla składników danego rejestru.
Dynamiczne sterowanie przepływem
Urządzenie obsługuje dynamiczne sterowanie przepływem (jeśli wartość logiczna — ps, przerwać — psi break_comp — ps). Głębokość zagnieżdżania waha się od 0 do 24.
Liczba rejestrów tymczasowych
Liczba obsługiwanych rejestrów tymczasowych wynosi 32.
Głębokość zagnieżdżania kontrolki przepływu statycznego
Wywołanie — ps/callnz /call_pred można zagnieżdżać do maksymalnej głębokości 4. Niezależnie, pętla — ps/rep — instrukcje ps można zagnieżdżać do maksymalnej głębokości 4.
Dowolny swizzle
Obsługiwane jest dowolnewizzle. Zobacz Source Register Swizzling.
Instrukcje gradientu
Obsługiwane są instrukcje gradientu. Zobacz dsx - ps, dsy - psi texldd - ps.
Predykacja
Obsługiwane jest predykacja instrukcji. Zobacz Predykate Register.
Zależny limit odczytu
Brak zależnych limitów odczytu.
Limit instrukcji tekstury
Nie ma limitu instrukcji tekstury.
Liczba instrukcji
Każdy cieniowanie pikseli jest dozwolone w dowolnym miejscu od 512 do liczby miejsc w maxPixelShader30InstructionSlots (nie więcej niż 32768). Liczba przebiegów instrukcji może być znacznie większa ze względu na obsługę pętli. MaxPShaderInstructionsExecuted powinien mieć co najmniej 2^16.
Liczba przykładów
Liczba dostępnych próbek tekstur wynosi 16.
Limity urządzeń
Jeśli ps_3_0 jest obsługiwana, następujące limity są obsługiwane w sprzęcie (co najmniej):
Czapka | Wartość |
---|---|
MaxTextureWidth, MaxTextureHeight | Każdy 4K |
MaxTextureRepeat | 8K |
MaxAnisotropy | 16 |
PixelShaderVersion | 3_0 |
MaxPixelShader30InstructionSlots | 512 |
Ustawiane są następujące limity pierwotne: | D3DPMISCCAPS_BLENDOP, D3DPMISCCAPS_CLIPPLANESCALEDPOINTS, D3DPMISCCAPS_CLIPTLVERTS, D3DPMISCCAPS_CULLCCW, D3DPMISCCAPS_CULLCW, D3DPMISCCAPS_CULLNONE, D3DPMISCCAPS_FOGINFVF, D3DPMISCCAPS_MASKZ |
Ustawiono następujące limity rastrowe: | D3DPRASTERCAPS_MIPMAPLODBIAS, D3DPRASTERCAPS_ANISOTROPY, D3DPRASTERCAPS_COLORPERSPECTIVE, D3DPRASTERCAPS_SCISSORTEST w D3DCAPS9 |
Pełna obsługa stronniczości głębokości, w tym: | D3DPRASTERCAPS_SLOPESCALEDEPTHBIAS, D3DPRASTERCAPS_DEPTHBIAS |
Pełny zestaw porównań dla głębokości i testu alfa, w tym: | Wszystkie D3DPCMPCAPS w D3DCAPS9. |
Tryby mieszania źródła | Wszystkie tryby mieszania są obsługiwane jako źródło (z wyjątkiem D3DPBLENDCAPS_SRCALPHASAT, D3DPBLENDCAPS_BOTHSRCALPHA i D3DPBLENDCAPS_BOTHINVSRCALPHA). |
Obsługiwane są następujące czapki tekstur: | D3DPTEXTURECAPS_CUBEMAP, D3DPTEXTURECAPS_MIPCUBEMAP, D3DPTEXTURECAPS_MIPMAP, D3DPTEXTURECAPS_MIPVOLUMEMAP, D3DPTEXTURECAPS_PERSPECTIVE, D3DPTEXTURECAPS_PROJECTED, D3DPTEXTURECAPS_TEXREPEATNOTSCALEDBYSIZE, D3DPTEXTURECAPS_VOLUMEMAP |
W przypadku limitów filtrów tekstury, limitów filtrów tekstury objętościowej i filtrów tekstury modułu są obsługiwane następujące elementy: | D3DPTFILTERCAPS_MINFPOINT, D3DPTFILTERCAPS_MINFLINEAR, D3DPTFILTERCAPS_MINFANISOTROPIC (nie jest to wymagane w przypadku woluminów VolumeTextureFilterCaps i CubeTextureFilterCaps), D3DPTFILTERCAPS_MIPFPOINT, D3DPTFILTERCAPS_MIPFLINEAR, D3DPTFILTERCAPS_MAGFPOINT, D3DPTFILTERCAPS_MAGFLINEAR |
Następujące tryby adresów tekstury są obsługiwane na etapach wierzchołków i pikseli: | D3DPTADDRESSCAPS_WRAP, D3DPTADDRESSCAPS_MIRROR, D3DPTADDRESSCAPS_CLAMP, D3DPTADDRESSCAPS_BORDER, D3DPTADDRESSCAPS_INDEPENDENTUV, D3DPTADDRESSCAPS_MIRRORONCE |
Obsługiwane są wszystkie limity cieniowania pikseli. | DynamicFlowControlDepth = 24, NumTemps = 32, StaticFlowControlDepth = 4, NumInstructionSlots = 512. Obsługiwane są następujące funkcje: predykacja, dowolnewizdy i instrukcje gradientu. Nie ma żadnego limitu odczytu zależnego i nie ma limitu kombinacji tekstur i instrukcji matematycznych. |
Obsługiwane są wszystkie operacje wzornika. Obejmuje to dwustronny wzornik. | Zobacz D3DSTENCILOP |
Rozmiar punktu obsługi urządzenia na wierzchołek | D3DFVFCAPS_PSIZE w usłudze D3DCAPS9 |
Brak mocy 2 obsługi tekstury. | Pełna obsługa lub obsługa warunkowa nieobsługiwana w trybie pow-2; urządzenie nie powinno mieć ograniczenia tylko tekstury kwadratowej, jak w D3DPTEXTURECAPS_SQUAREONLY. |
Jeśli urządzenie obsługuje wiele elementów rendertarget, obsługiwane są następujące limity: | D3DPMISCCAPS_INDEPENDENTWRITEMASKS, D3DPMISCCAPS_MRTPOSTPIXELSHADERBLENDING |
Jeśli vs_3_0 jest obsługiwana | MaxUserClipPlanes w D3DCAPS9 wynosi 6 |
Tematy pokrewne