Bagikan melalui


Peningkatan performa penyajian Direct3D

Driver Windows Display Driver Model (WDDM) 1.3 dan yang lebih baru dapat mendukung peningkatan performa penyajian Microsoft Direct3D yang memungkinkan perangkat keras Direct3D 9 menggunakan buffer dan penghitung perintah perangkat keras dengan lebih baik dan membuat salinan memori sistem yang efisien ke subsumber daya. Kemampuan ini, yang mencerminkan beberapa kemampuan yang tersedia untuk perangkat keras Direct3D Versi 10, baru dimulai dengan Windows 8.1.

Pemangkasan sumber daya Direct3D 11.1 baru dan peningkatan performa default peta juga tersedia. Skenario default peta diuraikan di bagian Perubahan perilaku di bawah ini.

Referensi performa penyajian

Bagian referensi ini menjelaskan antarmuka driver perangkat mode pengguna (DDI).

Fungsi performa penyajian Direct3D yang diterapkan oleh driver mode pengguna

Bagian ini berisi fungsi yang diterapkan driver tampilan Windows Display Driver Model (WDDM) 1.3 dan yang lebih baru untuk mendukung peningkatan performa penyajian Microsoft Direct3D.

PFND3DDDI_FLUSH1: PFND3DDDI_CHECKCOUNTERINFO

PFND3DDDI_CHECKCOUNTER: PFND3DDDI_UPDATESUBRESOURCEUP

Struktur dan enumerasi performa penyajian Direct3D

Struktur dan enumerasi mode pengguna ini mendukung peningkatan performa penyajian dan baru atau diperbarui untuk Windows 8.1. Semua berlaku untuk driver Direct3D Level 9 kecuali untuk D3D11_1_DDI_FLUSH_FLAGS.

Persyaratan implementasi DDI dimulai dengan WDDM 1.3

Dimulai dengan WDDM 1.3, fungsi berikut diperlukan atau opsional untuk diterapkan driver mode pengguna.

Grup fungsi Deskripsi

Fungsi Direct3D 9 yang bersifat opsional sebelum WDDM 1.3. Sekarang diperlukan:

Fungsi Direct3D 9 yang tersedia dimulai dengan WDDM 1.3. Driver harus mengimplementasikan semua fungsi ini atau tidak satu pun:

Ketika fungsi opsional WDDM 1.3 dan yang lebih baru segera di atas diterapkan, fungsi-fungsi ini memiliki perubahan perilaku terkait:

Skenario ini berlaku ketika GetCaps dipanggil:

  • Jika D3DDDICAPS_GETD3DQUERYDATA diatur, driver dapat secara opsional melaporkan dukungan untuk stempel waktu, yang berarti bahwa runtime Direct3D tidak akan menutupi dukungan.
  • Jika D3DDDICAPS_GET_SIMPLE_INSTANCING_SUPPORT diatur, driver dapat melaporkan dukungan perangkat keras opsional untuk instancing.

Fungsi Direct3D 11 ini memiliki perubahan perilaku terkait:

  • CreateResource(D3D11) — default peta buffer (lihat bagian Perubahan perilaku di bawah)
  • pfnFlush1 — pemangkasan sumber daya
  • ResourceMap — buffer map default (lihat bagian Perubahan perilaku di bawah)
  • ResourceUnmap — buffer map default (lihat bagian Perubahan perilaku di bawah)

Perubahan perilaku untuk panggilan ke fungsi buat, peta, dan batalkan peta sumber daya

Untuk fungsi-fungsi ini yang diimplementasikan oleh driver WDDM 1.3 dan yang lebih baru, runtime Direct3D menyediakan serangkaian nilai input terbatas untuk skenario default peta. Nilai terbatas ini hanya berlaku untuk driver yang mendukung tingkat fitur 11.1 dan yang lebih baru.

CreateResource(D3D11)function

Input ini D3D11DDIARG_CREATERESOURCE anggota struktur dibatasi:

Anggota Deskripsi

ResourceDimension dan Penggunaan

Perubahan perilaku ini hanya berlaku ketika runtime Direct3D menyediakan jenis D3D10DDIRESOURCE_BUFFER untuk ResourceDimension dan jenis D3D10_DDI_USAGE_DEFAULT untuk Penggunaan.

BindFlags

Runtime Direct3D hanya mengatur nilai D3D10_DDI_BIND_SHADER_RESOURCE dan D3D11_DDI_BIND_UNORDERED_ACCESS .

MapFlags

Jika semua persyaratan anggota lain yang tercantum di sini terpenuhi, runtime dapat mengatur nilai D3D10_DDI_MAP_READ, D3D10_DDI_MAP_WRITE, dan D3D10_DDI_MAP_READWRITE . Driver harus mendukung nilai-nilai ini. Nilai D3D10_DDI_MAP_WRITE_DISCARD dan D3D10_DDI_MAP_WRITE_NOOVERWRITE tidak valid.

MiscFlags

Runtime hanya mengatur nilai D3D11_DDI_RESOURCE_MISC_BUFFER_ALLOW_RAW_VIEWS dan D3D11_DDI_RESOURCE_MISC_BUFFER_STRUCTURED .

Format

Runtime hanya mengatur nilai DXGI_FORMAT_UNKNOWN .

SampleDesc

Runtime mengatur DXGI_SAMPLE_DESC. Hitung anggota ke 1, dan anggota Kualitas ke nol.

MipLevels

Runtime mengatur nilai ke 1.

ArraySize

Runtime mengatur nilai ke 1.

pPrimaryDesc

Runtime mengatur nilai ke NULL.

Fungsi ResourceMap

Parameter input ke ResourceMap ini dibatasi:

Parameter Deskripsi

hResource

Runtime Direct3D hanya mengatur sumber daya D3D10DDIRESOURCE_BUFFER saat nilai non-nol untuk MapFlags diatur dalam panggilan pembuatan ke CreateResource(D3D11).

Runtime hanya mengatur nilai DXGI_FORMAT_UNKNOWN .

Sub sumber daya

Runtime hanya mengatur nilai ke 0.

DDIMap

Jika semua persyaratan anggota lain yang tercantum di sini terpenuhi, runtime dapat mengatur nilai D3D10_DDI_MAP_READ, D3D10_DDI_MAP_WRITE, atau D3D10_DDI_MAP_READWRITE , yang cocok dengan nilai MapFlags yang ditetapkan dalam panggilan pembuatan ke CreateResource(D3D11).

Bendera

Meskipun nilai input dari runtime tidak dibatasi, driver harus dapat mendukung nilai D3D10_DDI_MAP_FLAG_DONOTWAIT .

pMappedSubResource

Meskipun nilai input dari runtime tidak dibatasi, driver harus menetapkan pointer yang dapat di-cache CPU yang valid ke D3D10DDI_MAPPED_SUBRESOURCE. anggota pData dan harus mengatur RowPitch dan DepthPitch agar sesuai dengan ukuran buffer dan data yang disediakan dalam pData.

Fungsi ResourceUnmap

Parameter input ke ResourceUnmap ini dibatasi:

Parameter Deskripsi

hDevice

Meskipun nilai input dari runtime Direct3D tidak dibatasi, nilai yang cocok dengan nilai hDevice dari panggilan ResourceMap asli.

hResource

Runtime hanya menetapkan sumber daya D3D10DDIRESOURCE_BUFFER saat nilai bukan nol untuk MapFlags diatur dalam panggilan pembuatan ke CreateResource(D3D11).

Sub sumber daya

Runtime hanya mengatur nilai ke 0.