Bagikan melalui


enumerasi D3D10_USAGE (d3d10.h)

Mengidentifikasi penggunaan sumber daya yang diharapkan selama penyajian. Penggunaan secara langsung mencerminkan apakah sumber daya dapat diakses oleh CPU dan/atau GPU.

Sintaks

typedef enum D3D10_USAGE {
  D3D10_USAGE_DEFAULT = 0,
  D3D10_USAGE_IMMUTABLE = 1,
  D3D10_USAGE_DYNAMIC = 2,
  D3D10_USAGE_STAGING = 3
} ;

Konstanta

 
D3D10_USAGE_DEFAULT
Nilai: 0
Sumber daya yang memerlukan akses baca dan tulis oleh GPU. Ini kemungkinan menjadi pilihan penggunaan yang paling umum.
D3D10_USAGE_IMMUTABLE
Nilai: 1
Sumber daya yang hanya dapat dibaca oleh GPU. Ini tidak dapat ditulis oleh GPU, dan tidak dapat diakses sama sekali oleh CPU. Jenis sumber daya ini harus diinisialisasi saat dibuat, karena tidak dapat diubah setelah pembuatan.
D3D10_USAGE_DYNAMIC
Nilai: 2
Sumber daya yang dapat diakses oleh GPU dan CPU (tulis saja). Sumber daya dinamis adalah pilihan yang baik untuk sumber daya yang akan diperbarui oleh CPU setidaknya sekali per bingkai. Untuk menulis ke sumber daya dinamis pada CPU, gunakan metode Peta . Anda dapat menulis ke sumber daya dinamis pada GPU menggunakan CopyResource atau CopySubresourceRegion.
D3D10_USAGE_STAGING
Nilai: 3
Sumber daya yang mendukung transfer data (salin) dari GPU ke CPU.

Keterangan

Aplikasi mengidentifikasi cara sumber daya dimaksudkan untuk digunakan (penggunaannya) dalam deskripsi sumber daya. Ada beberapa struktur untuk membuat sumber daya termasuk: D3D10_TEXTURE1D_DESC, D3D10_TEXTURE2D_DESC, D3D10_TEXTURE3D_DESC, D3D10_BUFFER_DESC, dan D3DX10_IMAGE_LOAD_INFO.

Perbedaan antara Direct3D 9 dan Direct3D 10:

Di Direct3D 9, Anda menentukan jenis memori yang harus dibuat sumber daya pada waktu pembuatan sumber daya (menggunakan D3DPOOL). Ini adalah tugas aplikasi untuk memutuskan kumpulan memori apa yang akan memberikan kombinasi fungsionalitas dan performa terbaik.

Di Direct3D 10, aplikasi tidak lagi menentukan jenis memori apa (kumpulan) untuk membuat sumber daya. Sebagai gantinya, Anda menentukan penggunaan sumber daya yang dimaksudkan, dan membiarkan runtime (bersama dengan driver dan manajer memori) memilih jenis memori yang akan mencapai performa terbaik.

 

Pembatasan Penggunaan Sumber Daya

Setiap penggunaan menentukan tradeoff antara fungsionalitas dan performa. Secara umum, akses sumber daya dilakukan dengan API berikut. Gunakan tabel berikut untuk memilih penggunaan yang paling tepat menggambarkan bagaimana sumber daya perlu diakses oleh CPU dan/atau GPU. Tentu saja, akan ada tradeoff performa.
Penggunaan Sumber Daya Default Dinamis Tak bisa diubah Staging
GPU-Read ya Ya¹ ya Ya1, 2
GPU-Write Ya¹ Ya1, 2
CPU-Read Ya1, 2
CPU-Write ya Ya1, 2
 

Opsi Pengikatan Sumber Daya

Untuk memaksimalkan performa, tidak semua opsi penggunaan sumber daya dapat digunakan sebagai sumber daya input atau output ke alur. Tabel ini mengidentifikasi batasan ini.
Sumber daya dapat terikat sebagai Default Dinamis Tak bisa diubah Staging
Input ke Tahap Ya³ Ya⁴ ya
Output dari Tahap Ya³
 
  • 3 - Jika terikat sebagai input dan output menggunakan tampilan yang berbeda, setiap tampilan harus menggunakan subresource yang berbeda.
  • 4 - Sumber daya hanya dapat dibuat dengan satu subsumber daya. Sumber daya tidak boleh berupa array tekstur. Sumber daya tidak boleh berupa rantai mipmap.

Persyaratan

Persyaratan Nilai
Header d3d10.h

Lihat juga

Enumerasi Sumber Daya