ps_3_0

Shader piksel yang dapat diprogram terdiri dari serangkaian instruksi yang beroperasi pada data piksel. Mendaftarkan data transfer masuk dan keluar dari ALU. Kontrol tambahan dapat diterapkan untuk memodifikasi instruksi, hasil, atau data apa yang akan ditulis.

Fitur baru

Tambahkan daftar wajah. Tambahkan register posisi. Daftar warna (v#) sekarang sepenuhnya floating point dan register koordinat tekstur (t#) telah dikonsolidasikan. Deklarasi input mengambil nama penggunaan, dan beberapa penggunaan diizinkan untuk komponen register tertentu.

Kontrol Alur Dinamis

Perangkat mendukung kontrol aliran dinamis (jika bool - ps, break - ps, dan break_comp - ps). Kedalaman bersarang berkisar antara 0 hingga 24.

Jumlah Daftar Sementara

Jumlah register sementara yang didukung adalah 32.

Kontrol Aliran Statis Kedalaman Bersarang

Panggilan - ps/callnz /call_pred dapat disarangkan ke kedalaman maksimum 4. Secara independen, perulangan - ps/rep - instruksi ps dapat disarangkan ke kedalaman maksimum 4.

Swizzle Arbitrer

Moncong arbitrer didukung. Lihat Sumber Register Swizzling.

Instruksi Gradien

Instruksi gradien didukung. Lihat dsx - ps, dsy - ps, dan texldd - ps.

Predikasi

Predikasi instruksi didukung. Lihat Daftar Predikat.

Batas Baca Dependen

Tidak ada batas baca dependen.

Batas Instruksi Tekstur

Tidak ada batasan pada instruksi tekstur.

Jumlah Instruksi

Setiap shader piksel diizinkan dari 512 hingga jumlah slot di MaxPixelShader30InstructionSlots (tidak lebih dari 32768). Jumlah instruksi yang dijalankan bisa jauh lebih tinggi karena dukungan perulangan. MaxPShaderInstructionsExecuted harus setidaknya 2^16.

Jumlah Sampler

Jumlah sampel tekstur yang tersedia adalah 16.

Batas Perangkat

Jika ps_3_0 didukung, batas berikut didukung dalam perangkat keras (minimal):

Cap Nilai
MaxTextureWidth, MaxTextureHeight Masing-masing 4K
MaxTextureRepeat 8K
MaxAnisotropy 16
PixelShaderVersion 3_0
MaxPixelShader30InstructionSlots 512
Batas primitif berikut diatur: D3DPMISCCAPS_BLENDOP, D3DPMISCCAPS_CLIPPLANESCALEDPOINTS, D3DPMISCCAPS_CLIPTLVERTS, D3DPMISCCAPS_CULLCCW, D3DPMISCCAPS_CULLCW, D3DPMISCCAPS_CULLNONE, D3DPMISCCAPS_FOGINFVF, D3DPMISCCAPS_MASKZ
Topi raster berikut diatur: D3DPRASTERCAPS_MIPMAPLODBIAS, D3DPRASTERCAPS_ANISOTROPY, D3DPRASTERCAPS_COLORPERSPECTIVE, D3DPRASTERCAPS_SCISSORTEST di D3DCAPS9
Dukungan penuh untuk bias kedalaman termasuk: D3DPRASTERCAPS_SLOPESCALEDEPTHBIAS, D3DPRASTERCAPS_DEPTHBIAS
Set lengkap perbandingan untuk tes kedalaman dan alfa termasuk: Semua D3DPCMPCAPS di D3DCAPS9.
Mode blending sumber Semua mode blending didukung sebagai sumber (kecuali D3DPBLENDCAPS_SRCALPHASAT, D3DPBLENDCAPS_BOTHSRCALPHA, dan D3DPBLENDCAPS_BOTHINVSRCALPHA).
Batas tekstur berikut didukung: D3DPTEXTURECAPS_CUBEMAP, D3DPTEXTURECAPS_MIPCUBEMAP, D3DPTEXTURECAPS_MIPMAP, D3DPTEXTURECAPS_MIPVOLUMEMAP, D3DPTEXTURECAPS_PERSPECTIVE, D3DPTEXTURECAPS_PROJECTED, D3DPTEXTURECAPS_TEXREPEATNOTSCALEDBYSIZE, D3DPTEXTURECAPS_VOLUMEMAP
Berikut ini didukung pada batas filter tekstur, batas filter tekstur volume, dan batas filter tekstur kubus: D3DPTFILTERCAPS_MINFPOINT, D3DPTFILTERCAPS_MINFLINEAR, D3DPTFILTERCAPS_MINFANISOTROPIC (Ini tidak diperlukan untuk VolumeTextureFilterCaps dan CubeTextureFilterCaps ), D3DPTFILTERCAPS_MIPFPOINT, D3DPTFILTERCAPS_MIPFLINEAR, D3DPTFILTERCAPS_MAGFPOINT, D3DPTFILTERCAPS_MAGFLINEAR
Mode alamat tekstur berikut didukung pada tahap vertex dan piksel: D3DPTADDRESSCAPS_WRAP, D3DPTADDRESSCAPS_MIRROR, D3DPTADDRESSCAPS_CLAMP, D3DPTADDRESSCAPS_BORDER, D3DPTADDRESSCAPS_INDEPENDENTUV, D3DPTADDRESSCAPS_MIRRORONCE
Semua batas shader piksel didukung. DynamicFlowControlDepth = 24, NumTemps = 32, StaticFlowControlDepth = 4, NumInstructionSlots = 512. Fitur-fitur berikut didukung: predikasi, moncong arbitrer, dan instruksi gradien. Tidak ada batas baca dependen, dan tidak ada batasan pada campuran tekstur dan instruksi matematika.
Semua operasi stensil didukung. Ini termasuk stensil dua sisi. Lihat D3DSTENCILOP
Ukuran titik dukungan perangkat per puncak D3DFVFCAPS_PSIZE di D3DCAPS9
Non-daya 2 dukungan tekstur. Baik dukungan penuh atau dukungan non-pow-2 kondisi; perangkat seharusnya tidak memiliki batasan tekstur persegi saja seperti dalam D3DPTEXTURECAPS_SQUAREONLY.
Jika perangkat mendukung beberapa rendertarget, batas berikut didukung: D3DPMISCCAPS_INDEPENDENTWRITEMASKS, D3DPMISCCAPS_MRTPOSTPIXELSHADERBLENDING
Jika vs_3_0 didukung MaxUserClipPlanes di D3DCAPS9 adalah 6

 

Bayangan Piksel