Suballocation Dalam Buffer
Buffer memiliki semua fitur yang diperlukan dalam D3D12 agar aplikasi mentransfer sejumlah besar data sementara dari CPU ke GPU. Bagian ini mencakup empat skenario umum untuk penggunaan dan pengelolaan sumber daya dan buffer.
Mirip dengan D3D11, aplikasi di D3D12 masih perlu mendeklarasikan penggunaan memori saat mengalokasikan buffer di D3D12 dibandingkan dengan Dynamic/Staging Resources di D3D11, tetapi di D3D12, pengembang memiliki lebih banyak fleksibilitas dan kontrol yang lebih ketat atas penggunaan memori. Buffer, melalui suballocation, memiliki semua fitur yang diperlukan untuk manajemen memori tingkat rendah.
Di bagian ini
Topik | Deskripsi |
---|---|
Mengunggah Berbagai Jenis Sumber Daya |
Memperlihatkan cara menggunakan satu buffer untuk mengunggah data buffer konstan dan data buffer vertex ke GPU, dan cara melakukan sub-alokasi dan menempatkan data dengan benar dalam buffer. Penggunaan satu buffer tunggal meningkatkan fleksibilitas penggunaan memori dan memberikan aplikasi kontrol penggunaan memori yang lebih ketat. Juga menunjukkan perbedaan antara model D3D11 dan D3D12 untuk mengunggah berbagai jenis sumber daya. |
Mengunggah data tekstur melalui buffer |
Mengunggah data tekstur 2D atau 3D mirip dengan mengunggah data 1D, kecuali bahwa aplikasi perlu memperhatikan lebih dekat ke penyelarasan data yang terkait dengan pitch baris. Buffer dapat digunakan secara ortogonal dan bersamaan dari beberapa bagian alur grafis, dan sangat fleksibel. |
Membaca kembali data melalui buffer |
Membaca kembali data dari GPU, seperti menangkap cuplikan layar, melibatkan penggunaan heap Readback. |
Manajemen Sumber Daya Berbasis Pagar |
Menunjukkan cara mengelola rentang hidup data sumber daya dengan melacak kemajuan GPU melalui pagar. Memori dapat digunakan kembali secara efektif dengan pagar dengan hati-hati mengelola ketersediaan ruang kosong dalam memori, seperti dalam implementasi buffer cincin untuk tumpukan Unggahan. |