Lapisan Perangkat Lunak

Runtime Direct3D 11 dibangun dengan lapisan, dimulai dengan fungsionalitas dasar di inti dan membangun fungsionalitas opsional dan bantuan pengembang di lapisan luar. Bagian ini menjelaskan fungsionalitas setiap lapisan.

Sebagai aturan umum, lapisan menambahkan fungsionalitas, tetapi tidak mengubah perilaku yang ada. Misalnya, fungsi inti akan memiliki nilai pengembalian yang sama terlepas dari lapisan debug yang dibuat, meskipun output debug tambahan dapat disediakan jika lapisan debug dibuat.

Untuk membuat lapisan saat perangkat dibuat, panggil D3D11CreateDevice atau D3D11CreateDeviceAndSwapChain dan berikan satu atau beberapa nilai D3D11_CREATE_DEVICE_FLAG.

Direct3D 11 menyediakan lapisan runtime berikut:

Lapisan Inti

Lapisan inti ada secara default; menyediakan pemetaan yang sangat tipis antara API dan driver perangkat, meminimalkan overhead untuk panggilan frekuensi tinggi. Karena lapisan inti sangat penting untuk performa, lapisan tersebut hanya melakukan validasi penting. Lapisan yang tersisa bersifat opsional.

Lapisan Debug

Lapisan debug menyediakan parameter tambahan dan validasi konsistensi yang ekstensif (seperti memvalidasi tautan shader dan pengikatan sumber daya, memvalidasi konsistensi parameter, dan melaporkan deskripsi kesalahan).

Untuk membuat perangkat yang mendukung lapisan debug, Anda harus menginstal DirectX SDK (untuk mendapatkan D3D11SDKLayers.dll), lalu menentukan bendera D3D11_CREATE_DEVICE_DEBUG saat memanggil fungsi D3D11CreateDevice atau fungsi D3D11CreateDeviceAndSwapChain. Jika Anda menjalankan aplikasi dengan lapisan debug diaktifkan, aplikasi akan jauh lebih lambat. Tetapi, untuk memastikan bahwa aplikasi Anda bersih dari kesalahan dan peringatan sebelum Anda mengirimkannya, gunakan lapisan debug. Untuk informasi selengkapnya, lihat Menggunakan lapisan debug untuk men-debug aplikasi.

Catatan

Untuk Windows 7 dengan Pembaruan Platform untuk Windows 7 (KB2670838) atau Windows 8.x, untuk membuat perangkat yang mendukung lapisan debug, instal Windows Software Development Kit (SDK) untuk Windows 8.x untuk mendapatkan D3D11_1SDKLayers.dll.

Catatan

Untuk Windows 10, untuk membuat perangkat yang mendukung lapisan debug, aktifkan fitur opsional "Alat Grafis". Buka panel Pengaturan, di bawah Sistem, Aplikasi & fitur, Kelola Fitur opsional, Tambahkan fitur, lalu cari "Alat Grafis".

Catatan

Untuk informasi tentang cara men-debug aplikasi DirectX dari jarak jauh, lihat Men-debug aplikasi DirectX dari jarak jauh.

 

Secara bergantian, Anda dapat mengaktifkan/menonaktifkan bendera debug menggunakan Panel Kontrol DirectX yang disertakan sebagai bagian dari DirectX SDK.

Ketika lapisan debug mencantumkan kebocoran memori, lapisan ini menghasilkan daftar penunjuk antarmuka objek bersama dengan nama yang mudah diingat. Nama bersahabat default adalah "<tidak disebutkan> namanya". Anda dapat mengatur nama yang mudah diingat dengan menggunakan metode ID3D11DeviceChild::SetPrivateData dan WKPDID_D3DDebugObjectName GUID yang ada di D3Dcommon.h. Misalnya, untuk memberi nama pTexture dengan nama SDKLayer mytexture.jpg, gunakan kode berikut:

const char c_szName[] = "mytexture.jpg";
pTexture->SetPrivateData( WKPDID_D3DDebugObjectName, sizeof( c_szName ) - 1, c_szName );

Biasanya, Anda harus mengkompilasi panggilan ini dari versi produksi Anda.

Perangkat