Udostępnij za pośrednictwem


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.

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

 

cieniowanie pikseli