Share via


ps_3_0

Uno shader pixel programmabile è costituito da un set di istruzioni che operano sui dati pixel. Registra i dati in e fuori dall'ALU. È possibile applicare un controllo aggiuntivo per modificare l'istruzione, i risultati o i dati scritti.

Nuove funzioni e caratteristiche

Aggiungere un registro viso. Aggiungere un registro di posizione. I registri dei colori (v#) sono ora completamente a virgola mobile e i registri delle coordinate della trama (t#) sono stati consolidati. Le dichiarazioni di input accettano i nomi di utilizzo e sono consentiti più utilizzi per i componenti di un determinato registro.

Controllo flusso dinamico

Il dispositivo supporta il controllo del flusso dinamico (se bool - ps, break - ps e break_comp - ps). La profondità di annidamento varia da 0 a 24.

Numero di registri temporanei

Il numero di registri temporanei supportati è 32.

Profondità di annidamento del flusso statico

La chiamata - ps/callnz /call_pred può essere annidata a una profondità massima di 4. In modo indipendente, ciclo - rep ps - istruzioni ps/ possono essere annidate a una profondità massima di 4.

Swizzle arbitrario

Lo swizzle arbitrario è supportato. Vedere Registro di origine Swizzling.

Istruzioni sfumature

Le istruzioni sfumature sono supportate. Vedere dsx - ps, dsy - ps e texldd - ps.

Predicazione

La predicazione delle istruzioni è supportata. Vedere Registro predicato.

Limite di lettura dipendente

Non esistono limiti di lettura dipendenti.

Limite di istruzioni trama

Non esiste alcun limite per le istruzioni di trama.

Conteggio istruzioni

Ogni pixel shader è consentito ovunque da 512 fino al numero di slot in MaxPixelShader30InstructionSlots (non più di 32768). Il numero di istruzioni eseguite può essere molto più alto a causa del supporto del ciclo. MaxPShaderInstructionsExecuted deve essere almeno 2^16.

Conteggio sampler

Il numero di campioni di trama disponibili è 16.

Maiuscole dispositivo

Se ps_3_0 è supportato, i limiti seguenti sono supportati nell'hardware (almeno):

Cap Valore
MaxTextureWidth, MaxTextureHeight 4K ogni
MaxTextureRepeat 8 K
MaxAnisotropy 16
PixelShaderVersion 3_0
MaxPixelShader30InstructionSlots 512
I limiti primitivi seguenti sono impostati: D3DPMISCCAPS_BLENDOP, D3DPMISCCAPS_CLIPPLANESCALEDPOINTS, D3DPMISCCAPS_CLIPTLVERTS, D3DPMISCCAPS_CULLCCW, D3DPMISCCAPS_CULLCW, D3DPMISCCAPS_CULLNONE, D3DPMISCCAPS_FOGINFVF, D3DPMISCCAPS_MASKZ
I limiti raster seguenti sono impostati: D3DPRASTERCAPS_MIPMAPLODBIAS, D3DPRASTERCAPS_ANISOTROPY, D3DPRASTERCAPS_COLORPERSPECTIVE, D3DPRASTERCAPS_SCISSORTEST in D3DCAPS9
Supporto completo per la distorsione della profondità, tra cui: D3DPRASTERCAPS_SLOPESCALEDEPTHBIAS, D3DPRASTERCAPS_DEPTHBIAS
Set completo di confronti per il test approfondito e alfa, tra cui: Tutti i D3DPCMPCAPS in D3DCAPS9.
Modalità di fusione di origine Tutte le modalità di fusione sono supportate come origine (ad eccezione di D3DPBLENDCAPS_SRCALPHASAT, D3DPBLENDCAPS_BOTHSRCALPHA e D3DPBLENDCAPS_BOTHINVSRCALPHA).
Sono supportati i limiti di trama seguenti: D3DPTEXTURECAPS_CUBEMAP, D3DPTEXTURECAPS_MIPCUBEMAP, D3DPTEXTURECAPS_MIPMAP, D3DPTEXTURECAPS_MIPVOLUMEMAP, D3DPTEXTURECAPS_PERSPECTIVE, D3DPTEXTURECAPS_PROJECTED, D3DPTEXTURECAPS_TEXREPEATNOTSCALEDBYSIZE, D3DPTEXTURECAPS_VOLUMEMAP
Di seguito sono supportati i limiti di filtro trama, i limiti di filtro della trama del volume e i limiti di filtro trama del cubo: D3DPTFILTERCAPS_MINFPOINT, D3DPTFILTERCAPS_MINFLINEAR, D3DPTFILTERCAPS_MINFANISOTROPIC (Non è necessario per VolumeTextureFilterCaps e CubeTextureFilterCaps ), D3DPTFILTERCAPS_MIPFPOINT, D3DPTFILTERCAPS_MIPFLINEAR, D3DPTFILTERCAPS_MAGFPOINT, D3DPTFILTERCAPS_MAGFLINEAR
Le modalità di indirizzo della trama seguenti sono supportate nelle fasi dei vertici e dei pixel: D3DPTADDRESSCAPS_WRAP, D3DPTADDRESSCAPS_MIRROR, D3DPTADDRESSCAPS_CLAMP, D3DPTADDRESSCAPS_BORDER, D3DPTADDRESSCAPS_INDEPENDENTUV, D3DPTADDRESSCAPS_MIRRORONCE
Sono supportati tutti i limiti dello shader pixel. DynamicFlowControlDepth = 24, NumTemps = 32, StaticFlowControlDepth = 4, NumInstructionSlots = 512. Le funzionalità seguenti sono supportate: predicazione, swizzles arbitrario e istruzioni sfumature. Non esiste alcun limite di lettura dipendente e nessun limite per la combinazione di istruzioni matematiche e di trama.
Sono supportate tutte le operazioni stencil. Ciò include due stencil affiancati. Vedere D3DSTENCILOP
Dimensioni del punto di supporto del dispositivo per vertice D3DFVFCAPS_PSIZE in D3DCAPS9
Supporto non di 2 trame. Supporto completo o supporto non condizionale non pow-2; il dispositivo non deve avere la trama quadrata solo limitazioni come in D3DPTEXTURECAPS_SQUAREONLY.
Se il dispositivo supporta più renderingtarget, sono supportati i limiti seguenti: D3DPMISCCAPS_INDEPENDENTWRITEMASKS, D3DPMISCCAPS_MRTPOSTPIXELSHADERBLENDING
Se vs_3_0 è supportato MaxUserClipPlanes in D3DCAPS9 è 6

 

Pixel Shader