Bagikan melalui


Apa yang baru untuk driver tampilan dan grafis Windows 10

Halaman ini menjelaskan apa yang baru dalam driver tampilan dan grafis untuk Windows 10, versi 2004 (WDDM 2.7). Untuk melihat fitur yang ditambahkan dalam versi WDDM 2.X sebelumnya, lihat Apa yang baru untuk versi WDDM 2.X sebelumnya.

Shader Jala

Shader jala adalah sarana untuk meningkatkan fleksibilitas dan performa alur grafis Direct3D 12 saat menggunakan rasterisasi. Mereka bertindak sebagai pengganti baru untuk perakitan input — khususnya, tahap shader vertex dan geometri — menggantikan beberapa perilaku fungsi tetap perakitan input dengan perilaku fungsi fleksibel. Dengan shader jala, aplikasi dapat menerapkan pemusnahan lebih awal, dan oleh karena itu lebih efisien, daripada perakitan input. Primitif dapat dimusnahkan tanpa data indeks mereka diproses oleh GPU, yang sangat bermanfaat karena kita melihat jumlah primitif aplikasi 3D semakin tinggi dan lebih tinggi dari waktu ke waktu.

Jika ada shader piksel yang terpasang, output primitif dari shader jala akan disalurkan langsung ke tahap shader piksel.

Fitur shader jala memperkenalkan tahap shader jala bersama dengan tahap baru: shader amplifikasi. Shader amplifikasi menggantikan tahap tessellation GPU. Aplikasi menyiapkan shader amplifikasi mereka untuk memanggil shader jala beberapa kali sesuai kebutuhan. Shader amplifikasi adalah langkah opsional yang memungkinkan aplikasi mengontrol tingkat detail geometris secara dinamis.

Fitur shader jala melibatkan konstruksi bahasa bayangan baru serta perubahan UMD. Untuk melaporkan kemampuan perangkat shader jala, ada bidang yang disebut MeshShaderTier yang dilaporkan melalui D3D12DDI_D3D12_OPTIONS_DATA_0073. Dan, karena ini memperkenalkan dua tahap shader baru, ada dua bidang baru di D3D12DDIARG_CREATE_PIPELINE_STATE_0075, hMeshShader dan hAmplificationShader. Untuk memulai semuanya, ada daftar perintah PFND3D12DDI_DISPATCH_MESH_0074 DDI dan juga D3D12DDI_INDIRECT_ARGUMENT_TYPE_DISPATCH_MESH untuk pengiriman tidak langsung.

Directx Raytracing (DXR) 1.1

WDDM 2.7 membawa beberapa fitur dan peningkatan baru yang dibangun pada rilis awal DXR di Direct3D 12.

  • Raytracing sebaris adalah bentuk alternatif raytracing yang tidak menggunakan shader dinamis atau tabel shader terpisah. Ini memberikan fleksibilitas pengembang dan beberapa kenyamanan dalam semua kasus di mana shader menggunakan raytracing gaya DXR 1.0, menyebutnya raytracing "berbasis shader dinamis", tidak cocok. Raytracing sebaris tersedia dalam tahap shader apa pun, termasuk shader komputasi, shader piksel, dan sebagainya. Ini disebutkan di sini sebagai sesuatu yang tersedia dengan WDDM 2.7, meskipun tidak sesuai dengan perubahan DDI.

  • Aplikasi dapat memanggil DispatchRays melalui ExecuteIndirect, memungkinkan pekerjaan raytracing dikonfigurasi pada GPU. Ini bisa berguna untuk aplikasi yang berusaha untuk memisah, mengurutkan, atau menyesuaikan pekerjaan raytracing dan mereka menggunakan shader untuk melakukan itu. Seiring dengan ini, sekarang ada nilai enumerasi D3D12DDI_INDIRECT_ARGUMENT_TYPE. Saat menggunakan pengiriman raytracing tidak langsung, setiap elemen buffer execute-indirect berjenis D3D12DDIARG_DISPATCH_RAYS_0054.

  • Overhead pembuatan status alur untuk memperhitungkan kombinasi shader yang berbeda adalah salah satu masalah sulit dalam grafik komputer 3D. DXR 1.1 mencakup sesuatu yang dapat membantu: add-to-state-object. AddToStateObject(), karena diekspos dalam API, memungkinkan aplikasi untuk menambahkan shader ke objek status yang ada dengan overhead CPU hanya sebanding dengan apa yang ditambahkan. Seiring dengan ini, ada dua fungsi DDI perangkat: PFND3D12DDI_ADD_TO_STATE_OBJECT_0072 dan PFND3D12DDI_CALC_PRIVATE_ADD_TO_STATE_OBJECT_SIZE_0072.

Untuk pelaporan kemampuan umum, ada nilai enumerasi baru D3D12DDI_RAYTRACING_TIER_1_1 digunakan untuk pelaporan tingkat 1.1.

Umpan Balik Sampler

Umpan Balik Sampler adalah fitur Direct3D 12 untuk menangkap dan merekam informasi dan lokasi pengambilan sampel tekstur. Tanpa umpan balik sampler, detail ini akan buram kepada pengembang. Fitur ini memberi aplikasi kemampuan untuk tidak hanya mengetahui mip apa yang diambil sampelnya, tetapi untuk mengetahui di mana pada mips tersebut. Aplikasi mungkin tertarik dengan informasi pengambilan sampel, misalnya, untuk:

  • mengetahui secara akurat apa yang harus dimuat berikutnya dalam sistem streaming tekstur, atau
  • mengetahui secara akurat apa yang perlu dibayangkan dalam sistem penyajian bayangan ruang tekstur.

Umpan balik operasi sampel ditulis ke "peta umpan balik" yang bertindak sebagai semacam sumber daya buram yang harus ditranskodekan untuk mendapatkan informasi yang dapat diperiksa aplikasi. Adapun penulisan umpan balik itu sendiri, ada konstruksi HLSL dalam model shader 6_5 untuk itu. Semantiknya sangat mirip dengan semantik untuk Texture2D's Sample dan variannya.

Meskipun umpan balik sampler memanfaatkan konstruksi bahasa bayangan baru dengan baik, ini juga melibatkan perubahan UMD. Untuk pemeriksaan kemampuan perangkat, ada batas yang disebut SamplerFeedbackTier yang dilaporkan melalui D3D12DDI_D3D12_OPTIONS_DATA_0073. Pembuatan sumber daya telah direvisi untuk mengambil bidang baru, wilayah mip umpan balik sampler, dari jenis D3D12DDI_MIP_REGION_0075. Seiring dengan ini, ada juga metode pembuatan deskriptor baru, PFND3D12DDI_CREATE_SAMPLER_FEEDBACK_UNORDERED_ACCESS_VIEW_0075.

Perlindungan Konten

Dukungan sumber daya opsional yang dilindungi ditambahkan ke operasi video Direct3D 12 di WDDM 2.7. Untuk latar belakang, sumber daya yang dilindungi ada sebelum WDDM 2.7, tetapi hanya tersedia untuk berbagi lintas API dan grafik atau komputasi, bukan video.

Dukungan untuk sumber daya yang dilindungi tidak dilaporkan oleh driver sebagai hal global; itu berdasarkan per operasi. Jika driver melaporkan mendukung sumber daya yang dilindungi untuk operasi tertentu, itu berarti bahwa operasi dapat membaca dan menulis sumber daya yang dilindungi dan mendukung berbagi lintas API jika jenis sumber daya memungkinkannya. Hal lain yang perlu disebutkan adalah bahwa jika driver mengklaim dukungan sumber daya yang dilindungi untuk format tertentu, itu harus mendukung format tersebut sebagai sumber daya yang tidak dilindungi juga.

Dengan WDDM 2.7, metode pembuatan sumber daya dimodifikasi untuk mengambil instans D3D12DDI_HPROTECTEDRESOURCESESSION opsional. Driver diberikan parameter ini pada waktu pembuatan objek untuk menginformasikan pengaturan dan alokasi. Selanjutnya, pemeriksaan anggaran memori direvisi untuk menunjukkan apakah operasi akan menggunakan sumber daya yang dilindungi atau tidak. Ketika parameter sesi sumber daya yang dilindungi non-NULL, ini menunjukkan bahwa operasi akan menulis ke sumber daya yang dilindungi. Untuk menulis ke sumber daya yang tidak terlindungi, objek operasi harus dibuat ulang.

Referensi dekoder dan estimasi gerakan harus dilindungi sumber daya ketika output adalah sumber daya yang dilindungi. Pemrosesan video dapat dibaca dari kombinasi sumber daya yang dilindungi dan tidak terlindungi saat menulis ke sumber daya yang dilindungi.

Sebelum merekam satu atau beberapa operasi yang menulis ke sumber daya yang dilindungi, PFND3D12DDI_SETPROTECTEDRESOURCESESSION_0030 harus dipanggil dengan sesi sumber daya yang tidak dilindungi NULL. Memanggil PFND3D12DDI_SETPROTECTEDRESOURCESESSION_0030 dengan NULL diperlukan sebelum merekam satu atau beberapa operasi yang menulis ke sumber daya yang tidak dilindungi.

Untuk mengetahui lebih lanjut di luar tur terpandu perubahan DDI di atas untuk perlindungan konten di WDDM 2.7, lihat D3D12DDI_VIDEO_DECODE_PROTECTED_RESOURCES_DATA_0072 sebagai titik awal.

Pelaporan Buffer Riwayat yang Disempurnakan untuk Alat

WDDM 2.7 memperkenalkan perubahan DDI yang menguntungkan penggunaan buffer riwayat alat penelusuran kesalahan GPU. Dengan perubahan ini, satu pengiriman buffer perintah dapat berisi pekerjaan yang sesuai dengan beberapa daftar perintah daripada hanya satu daftar perintah pada satu waktu. Perubahan ini memungkinkan alat penelusuran kesalahan GPU untuk melaporkan karakteristik performa aplikasi secara lebih akurat.

Kemampuan ini dilaporkan melalui D3D12DDICAPS_TYPE_0073_SUPPORT_BATCHED_MARKERS. Ada D3DDDI_MARKERLOGTYPE baru nilai enumerasi D3DDDIMLT_BATCHED, yang sesuai dengan D3DDDI_BATCHEDMARKERDATA. Struktur data peristiwa ETW telah direvvasi untuk berisi sejumlah elemen D3DDDI_BATCHEDMARKERDATA ketika mereka berjenis D3DDDIMLT_BATCHED.

DisplayPort (DP) AUX/I2C

Saluran DP Auxiliary (AUX) menyediakan akses ke DP Configuration Data (DPCD), yang merupakan file register per perangkat yang digunakan untuk membaca kemampuan perangkat DP, pelatihan tautan, penemuan topologi, akses bus I2C, dan sebagainya. Lihat DXGK_DP_INTERFACE sebagai titik awal.