Bagikan melalui


Glosarium Direct3D 12

Istilah-istilah ini berbeda dari Direct3D 12.

Mengikat

Proses melampirkan memori ke alur grafis. Pengikatan sumber daya, misalnya, melibatkan pengikatan sumber daya seperti tekstur ke alur, untuk digunakan dalam merender objek.

Buffer

Jenis sumber daya D3D yang identik dengan alokasi memori yang berdekatan.

Bundle

Buffer perintah yang dapat dijalankan oleh unit pemrosesan grafis (GPU) hanya langsung melalui daftar perintah langsung. Bundel mewarisi semua status GPU (kecuali untuk objek status alur yang saat ini ditetapkan dan topologi primitif).

alokator perintah

Alokasi memori yang mendasar tempat perintah GPU disimpan. Objek alokator perintah berlaku untuk daftar perintah langsung dan bundel.

daftar perintah

Daftar perintah sesuai dengan sekumpulan perintah yang dijalankan GPU. Ini termasuk perintah seperti untuk mengatur status, menggambar, menghapus, dan menyalin. Antarmuka daftar perintah D3D12 secara signifikan berbeda dari antarmuka daftar perintah D3D11. Antarmuka daftar perintah D3D12 berisi API yang mirip dengan API penyajian konteks perangkat D3D11.

Daftar perintah D3D12 tidak memetakan atau membatalkan petak sumber daya, mengubah pemetaan petak peta, mengubah ukuran kumpulan petak peta, mendapatkan data kueri, juga tidak pernah secara implisit mengirimkan perintah ke GPU untuk dieksekusi.

Tidak seperti konteks D3D11 yang ditangguhkan, daftar perintah D3D12 hanya mendukung dua tingkat tidak langsung. Daftar perintah langsung sesuai dengan buffer perintah yang dapat dijalankan GPU. Bundel hanya dapat dijalankan langsung melalui daftar perintah langsung.

Daftar perintah langsung tidak mewarisi status GPU apa pun. Bundel mewarisi semua status GPU (kecuali untuk objek status alur yang saat ini ditetapkan dan topologi primitif).

Memori untuk daftar perintah diatur oleh alokator perintah. Tujuan dari daftar perintah adalah bahwa mereka dapat dikirimkan ke GPU sebagai satu permintaan penyajian.

antrean perintah

Antrean perintah mencantumkan bahwa GPU dijalankan secara berturut-turut. Aplikasi harus secara eksplisit mengirimkan daftar perintah ke antrean perintah untuk eksekusi. Biasanya ada tiga antrean perintah: grafik 3D, komputasi dan salinan, sesuai dengan alur grafis 3D, mesin komputasi, dan satu atau beberapa mesin salinan, pada GPU.

rasterisasi konservatif

Rasterisasi konservatif adalah mode operasi untuk tahap rasterizer dari alur grafis Direct3D. Ini menonaktifkan rasterisasi berbasis sampel standar, dan sebaliknya akan mem-rasterisasi piksel yang dicakup oleh jumlah apa pun oleh primitif. Salah satu perbedaan penting adalah bahwa, meskipun cakupan apa pun sama sekali menghasilkan piksel yang dirasterisasi, cakupan tersebut tidak dapat ditandai oleh perangkat keras, sehingga cakupan selalu muncul biner ke shader piksel: tercakup sepenuhnya atau tidak tercakup. Ini dibiarkan ke kode shader piksel untuk secara analitik menentukan cakupan aktual.

Rasterisasi konservatif dapat membantu dengan masalah seperti tabrakan dan deteksi hit, binning, dan oklusi pemusnahan, di mana warna piksel lebih pasti dan kasus tepi dapat dihilangkan. Lihat Rasterisasi Konservatif.

Tampilan Buffer Konstan (CBV)

Buffer konstan berisi data konstanta shader, seperti tampilan kamera, matriks proyeksi, dan matriks dunia. "Tampilan buffer konstan" adalah tampilan khusus format dari buffer seperti yang terlihat oleh alur grafis.

timbunan default

Timbunan mode pengguna yang berfokus pada mendukung jenis sumber daya GPU persisten, termasuk sumber daya yang ditulis GPU.

Deskripsi

Deskriptor adalah unit utama pengikatan untuk satu sumber daya di D3D12. Deskriptor adalah blok data yang relatif kecil yang sepenuhnya menjelaskan objek ke GPU, dalam format khusus GPU. Ada banyak jenis deskriptor yang berbeda: Tampilan Sumber Daya Shader (SRV), Tampilan Akses Tidak Berurutan (UAV), Tampilan Buffer Konstan (CBV), dan Sampler adalah beberapa contoh.

tumpuk deskriptor

Timbunan deskriptor adalah kumpulan alokasi deskriptor yang berdekatan, satu alokasi untuk setiap deskriptor. Titik utama tumpukan deskriptor adalah mencakup sebagian besar alokasi memori yang diperlukan untuk menyimpan spesifikasi deskriptor jenis objek yang direferensikan shader untuk sebesar jendela penyajian mungkin (idealnya seluruh bingkai penyajian atau lebih).

tabel deskriptor

Tabel deskriptor secara logis merupakan array deskriptor. Setiap tabel deskriptor menyimpan deskriptor dari satu atau beberapa jenis, termasuk SRV, UAVe, CBV, dan Sampler. Tabel deskriptor bukan alokasi memori, itu hanya offset dan panjang ke dalam tumpukan deskriptor.

daftar perintah langsung

Buffer perintah yang dapat dijalankan GPU. Daftar perintah langsung tidak mewarisi status GPU apa pun.

Pagar

Mekanisme untuk menyinkronkan GPU dan CPU. Baik GPU maupun CPU dapat diinstruksikan untuk menunggu di pagar, menunggu diberlakukan agar prosesor lain mengejar ketinggalan. Lihat Sinkronisasi multi-mesin.

bahaya, pelacakan bahaya

Bahaya terjadi ketika sumber daya telah digunakan untuk satu tujuan, dan aplikasi berniat untuk menggunakannya kembali untuk tujuan lain. Untuk menggunakan sumber daya lagi, cache perantara perlu dibersihkan atau tidak valid, persyaratan kompresi harus konsisten dengan penggunaan kedua, dan sumber daya harus dalam status yang diperlukan untuk menghindari membaca sumber daya setelah ditulis ke dan tidak valid untuk tujuan yang dimaksudkan.

Proses memelihara sumber daya dan menghindari masalah sinkronisasi ini dikenal sebagai pelacakan bahaya. Jika tidak ada pelacakan bahaya oleh driver, maka aplikasi bertanggung jawab atas hal ini. Di sebagian besar versi DirectX yang lebih lama, pelacakan bahaya ditangani oleh driver. Untuk meningkatkan performa, metode tanpa pelacakan bahaya tersedia di DirectX 12.

Bahasa Shader Tingkat Tinggi (HLSL)

Bahasa komputer, serupa tetapi berbeda dalam banyak hal dari C, yang digunakan untuk menulis kode shader. Vertex, piksel, geometri, komputasi, domain, dan shader lambung semuanya ditulis menggunakan HLSL. Pengkompilasi mengonversi sumber HLSL menjadi format biner untuk digunakan GPU.

multiengine

Berbagai instans dan jenis mesin dalam satu GPU. Jenis mesin meliputi: grafik, komputasi, dan salinan.

MultiGPU

Konfigurasi perangkat keras di mana ada lebih dari satu adaptor grafis. Adaptor terpisah terkadang disebut sebagai simpul. Memiliki beberapa GPU dapat membuat tugas menyinkronkannya dengan CPU, dan satu sama lain, jauh lebih kompleks daripada dengan satu GPU.

Objek Status Alur (PSO)

Bagian signifikan dari status GPU. Status ini mencakup semua shader yang saat ini diatur dan objek status fungsi tetap tertentu. Satu-satunya cara untuk mengubah status yang terkandung dalam objek alur adalah dengan mengubah objek alur yang saat ini terikat.

predikasi

Predikasi adalah fitur yang memungkinkan GPU daripada CPU untuk menentukan untuk tidak menggambar, menyalin, atau mengirimkan objek. Misalnya, jika kotak pembatas objek benar-benar dihilangkan oleh objek atau perspektif lain telah mengurangi objek menjadi kurang dari ukuran piksel, mungkin tidak ada gunanya mencoba menggambar objek tersembunyi sama sekali. Lihat Predikasi.

Tampilan Pesanan Rasterizer (ROV)

Alur grafis standar mungkin mengalami masalah saat menyusun beberapa tekstur yang berisi transparansi dengan benar. Objek seperti pagar kawat, asap, api, vegetasi, dan kaca berwarna menggunakan transparansi untuk mendapatkan efek yang diinginkan. Masalah muncul ketika beberapa tekstur yang mengandung transparansi sejalan satu sama lain (asap di depan pagar di depan bangunan kaca yang berisi vegetasi, sebagai contoh). Rasterizer ordered views (ROV) memungkinkan algoritma Order Independent Transparency (OIT) yang mendasar untuk menggunakan fitur perangkat keras untuk mencoba menyelesaikan urutan transparansi dengan benar. Transparansi ditangani oleh shader piksel.

Rasterizer Ordered Views (ROV) memungkinkan kode piksel shader menandai pengikatan Unordered Access View (UAV) dengan deklarasi yang mengubah persyaratan normal untuk urutan hasil alur grafis untuk UAV.

timbunan readback

Timbunan mode pengguna yang berfokus pada transfer data dari GPU kembali ke CPU.

Sumber daya

Entitas yang menyediakan data ke alur dan menentukan apa yang dirender selama adegan Anda. Sumber daya dapat dimuat dari media game Anda atau dibuat secara dinamis pada durasi. Biasanya, sumber daya mencakup data tekstur, data puncak, dan data shader. Sebagian besar aplikasi Direct3D membuat dan menghancurkan sumber daya secara luas sepanjang masa pakainya.

pembatas sumber daya

Hambatan sumber daya memberi tahu driver bahwa sinkronisasi beberapa akses ke satu sumber daya mungkin diperlukan, misalnya, membaca dan menulis ke tekstur yang sama.

pengikatan sumber daya

Pengikatan sumber daya adalah proses penautan sumber daya (tekstur, buffer vertex, buffer indeks, dan sebagainya), ke alur grafis, memungkinkan shader alur untuk memproses sumber daya yang benar.

timbunan sumber daya

Timbunan sumber daya adalah istilah umum untuk timbunan yang merupakan buffer memori yang disisihkan untuk menyimpan sumber daya saat ditransfer ke dan dari GPU. Transfer ke GPU memerlukan Upload Heap, dari GPU ke CPU memerlukan Readback Heap, dan heap persisten untuk dipertahankan GPU melalui beberapa bingkai rendering disebut Default Heap.

tanda tangan akar

Tanda tangan akar menentukan semua sumber daya yang akan terikat ke grafik, atau komputasi, alur. Tanda tangan akar dikonfigurasi oleh aplikasi dan tautan daftar perintah ke sumber daya yang diperlukan shader Biasanya, ada satu grafik dan satu tanda tangan akar komputasi per aplikasi.

Sampler

Sampler adalah kode yang membaca dari tekstur.

Tampilan Sumber Daya Shader (SRV)

Cara khusus format untuk melihat data dalam sumber daya shader, seperti tekstur.

tumpuk statis

Timbunan mode pengguna yang difokuskan pada beberapa sumber daya baca-saja GPU yang biasanya digunakan pada saat yang sama dan tidak sering diubah.

rantai pertukaran

Rantai pertukaran mengontrol rotasi buffer belakang, membentuk dasar animasi grafis. Rantai pertukaran ditangani oleh API tingkat rendah yang ditetapkan DXGI (lihat Gambaran Umum DXGI).

gerimis

Teknik menemukan data multidimensi dalam memori sehingga data dimensi terdekat cenderung memiliki alamat terdekat. Secara khusus, semua data untuk satu baris tidak terletak berdampingan sebelum data untuk baris berikutnya. "Parameterized Swizzle" menjelaskan cara standar untuk menggambarkan pola gerimis.

Tekstur

Jenis sumber daya D3D yang multidimensi dan memiliki tata letak memori yang dioptimalkan untuk akses multi-dimensi dari GPU. Tekstur sering berisi gambar mentah yang diperlukan untuk dirender ke permukaan, sebelum pencahayaan dan penpaduan terjadi, tetapi dapat berisi bentuk data lain seperti gradien warna dan warna referensi. Direct3D 12 mendukung tekstur satu, dua, dan tiga dimensi.

Ubin

Halaman memori video, mirip dengan halaman CPU/Sistem memori. Notasi petak peta membantu membedakan subsistem memori virtual GPU dari subsistem memori virtual CPU. GPU menyediakan kemampuan memori virtual yang serupa dengan memori virtual sistem. Beberapa GPU telah berbagi kemampuan memori virtual, yang memungkinkan berbagi beberapa halaman subsistem memori virtual dengan CPU dan GPU.

sumber daya ubin

Sumber daya ubin diperlukan sehingga lebih sedikit memori GPU yang terbuang untuk menyimpan wilayah permukaan yang diketahui aplikasi tidak akan diakses, dan perangkat keras dapat memahami cara memfilter di seluruh ubin yang berdekatan. Sumber daya ubin adalah sumber daya logis yang besar, tetapi membutuhkan sejumlah kecil memori fisik.

Tampilan Akses Tidak Berurut (UAV)

Tampilan akses yang tidak diurutkan ke dalam sumber daya (yang mencakup buffer, tekstur, dan array tekstur - tanpa multi-pengambilan sampel), memungkinkan akses baca/tulis yang tidak diurutkan secara sementara dari beberapa utas. Ini berarti bahwa jenis sumber daya ini dapat dibaca/ditulis secara bersamaan oleh beberapa utas tanpa menghasilkan konflik memori.

unggah heap

Timbunan mode pengguna yang difokuskan pada transfer data dari CPU ke GPU.

timbunan mode pengguna

Kumpulan alokasi memori besar dan berdekatan yang didaur ulang tanpa kesadaran komponen kernel: metode alokasi dan penghancuran tidak memanggil alokasi kernel dan metode penghancuran selama keadaan stabil. Unggah, Baca Balik, dan Heap default adalah varian tumpuan mode pengguna.

sumber daya ubin volume

Sumber daya ubin tiga dimensi.