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.
- ps_3_0 Istruzioni contiene un elenco delle istruzioni disponibili.
- ps_3_0 Registri elenca i diversi tipi di registri usati dall'ALU pixel shader.
- Modificatori Vengono usati per modificare il funzionamento di un'istruzione.
- Destination Register Write Mask determina quali componenti del registro di destinazione vengono scritti.
- I modificatori del registro origine pixel shader modificano i dati del registro di origine prima dell'esecuzione dell'istruzione.
- Lo swizzling del registro di origine fornisce un controllo aggiuntivo sui componenti di registrazione letti, copiati o scritti.
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.
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.
Il numero di registri temporanei supportati è 32.
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.
Lo swizzle arbitrario è supportato. Vedere Registro di origine Swizzling.
Le istruzioni sfumature sono supportate. Vedere dsx - ps, dsy - ps e texldd - ps.
La predicazione delle istruzioni è supportata. Vedere Registro predicato.
Non esistono limiti di lettura dipendenti.
Non esiste alcun limite per le istruzioni di trama.
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.
Il numero di campioni di trama disponibili è 16.
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 |