Pembuatan Objek dengan Multithreading

Gunakan antarmuka ID3D11Device untuk membuat sumber daya dan objek, gunakan ID3D11DeviceContext untuk penyajian.

Berikut adalah beberapa contoh cara membuat sumber daya:

Pertimbangan Multithreading

Jumlah konkurensi pembuatan dan penyajian sumber daya yang dapat dicapai aplikasi Anda tergantung pada tingkat dukungan multithreading yang diterapkan driver. Jika driver mendukung pembuatan bersamaan, maka aplikasi harus memiliki masalah konkurensi yang jauh lebih sedikit. Namun, jika driver tidak mendukung pembuatan objek bersamaan, jumlah konkurensi sangat terbatas. Untuk memahami jumlah dukungan yang tersedia dalam driver, kueri driver untuk nilai DriverConcurrentCreates anggota struktur D3D11_FEATURE_DATA_THREADING . Untuk informasi selengkapnya tentang memeriksa dukungan driver multithreading, lihat Cara: Memeriksa Dukungan Driver.

Operasi bersamaan tidak selalu menyebabkan performa yang lebih baik. Misalnya, membuat dan memuat tekstur biasanya dibatasi oleh bandwidth memori. Mencoba membuat dan memuat beberapa tekstur mungkin tidak lebih cepat daripada melakukan satu tekstur pada satu waktu, bahkan jika ini membuat beberapa inti CPU menganggur. Namun, membuat beberapa shader menggunakan beberapa utas dapat meningkatkan performa karena operasi ini kurang bergantung pada sumber daya sistem seperti bandwidth memori.

Ketika perangkat keras driver dan grafis mendukung multithreading, Anda biasanya dapat menginisialisasi sumber daya yang baru dibuat dengan lebih efisien dengan meneruskan penunjuk ke data awal dalam parameter pInitialData (misalnya, dalam panggilan ke metode ID3D11Device::CreateTexture2D ).

MultiThreading