METODE ID3D11DeviceContext2::ResizeTilePool (d3d11_2.h)

Mengubah ukuran kumpulan petak peta.

Sintaks

HRESULT ResizeTilePool(
  [in] ID3D11Buffer *pTilePool,
  [in] UINT64       NewSizeInBytes
);

Parameter

[in] pTilePool

Jenis: ID3D11Buffer*

Penunjuk ke ID3D11Buffer agar kumpulan petak peta dapat mengubah ukuran.

[in] NewSizeInBytes

Jenis: UINT64

Ukuran baru dalam byte kumpulan petak peta. Ukurannya harus kelipatan 64 KB atau 0.

Nilai kembali

Jenis: HRESULT

Mengembalikan S_OK jika berhasil; jika tidak, mengembalikan salah satu hal berikut:

  • Mengembalikan E_INVALIDARG jika ukuran kumpulan petak peta baru bukan kelipatan 64 KB atau 0.
  • Mengembalikan E_OUTOFMEMORY jika panggilan menghasilkan driver yang harus mengalokasikan ruang untuk pemetaan tabel halaman baru tetapi kehabisan memori.
  • Mengembalikan DXGI_ERROR_DEVICE_REMOVED jika kartu video telah dihapus secara fisik dari sistem, atau peningkatan driver untuk kartu video telah terjadi.
Untuk E_INVALIDARG atau E_OUTOFMEMORY, kumpulan petak peta yang ada tetap tidak berubah, yang mencakup pemetaan yang ada.

Keterangan

ResizeTilePool meningkatkan atau mengurangi ukuran kumpulan petak peta tergantung pada apakah aplikasi membutuhkan lebih banyak atau kurang set kerja untuk sumber daya ubin yang dipetakan ke dalamnya. Aplikasi dapat mengalokasikan kumpulan petak peta tambahan untuk sumber daya petak baru, tetapi jika ada sumber daya petak peta tunggal yang membutuhkan lebih banyak ruang daripada yang awalnya tersedia di kumpulan petak petanya, aplikasi dapat meningkatkan ukuran kumpulan petak peta sumber daya. Sumber daya ubin tidak dapat memiliki pemetaan ke dalam beberapa kumpulan petak peta secara bersamaan.

Ketika Anda meningkatkan ukuran kumpulan petak peta, petak peta tambahan ditambahkan ke akhir kumpulan petak peta melalui satu atau beberapa alokasi baru oleh driver; aplikasi Anda tidak dapat mendeteksi perincian ke dalam alokasi baru. Memori yang ada di kumpulan petak peta dibiarkan tidak tersentuh, dan pemetaan sumber daya ubin yang ada ke dalam memori tersebut tetap utuh.

Saat Anda mengurangi ukuran kumpulan petak peta, petak peta dihapus dari akhir (ini diizinkan bahkan di bawah ukuran alokasi awal, hingga 0). Ini berarti bahwa pemetaan baru tidak dapat dibuat melewati ukuran baru. Tetapi, pemetaan yang ada melewati akhir ukuran baru tetap utuh dan dapat digunakan. Memori tetap aktif selama pemetaan ke bagian mana pun dari alokasi yang digunakan untuk memori kumpulan petak peta tetap ada. Jika setelah menurun, beberapa memori tetap aktif karena pemetaan petak peta menunjuk ke sana dan kumpulan petak peta ditingkatkan lagi (dengan jumlah berapa pun), memori yang ada digunakan kembali terlebih dahulu sebelum alokasi tambahan terjadi untuk melayani ukuran peningkatan.

Agar dapat menyimpan memori, aplikasi tidak hanya harus mengurangi kumpulan petak tetapi juga menghapus dan memetakan ulang pemetaan yang ada melewati akhir ukuran kumpulan petak peta baru yang lebih kecil.

Tindakan penurunan (dan penghapusan pemetaan) tidak selalu menghasilkan penghematan memori langsung. Membebaskan memori tergantung pada seberapa terperinci alokasi mendasar driver untuk kumpulan petak peta. Ketika penurunan ukuran kumpulan petak peta kebetulan cukup untuk membuat alokasi driver tidak digunakan, driver dapat membebaskan alokasi. Jika kumpulan petak peta ditingkatkan dan jika Anda kemudian mengurangi ke ukuran sebelumnya (dan menghapus dan memetakan ulang pemetaan petak peta secara sesuai), Kemungkinan besar Anda akan menghasilkan penghematan memori. Tapi, skenario ini tidak dijamin dalam kasus bahwa ukuran tidak benar-benar selaras dengan ukuran alokasi yang mendasari yang dipilih oleh driver.

Untuk informasi selengkapnya tentang sumber daya berjenjang, lihat Sumber daya berjenjang.

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Windows 8.1 [aplikasi desktop | Aplikasi UWP]
Server minimum yang didukung Windows Server 2012 R2 [aplikasi desktop | Aplikasi UWP]
Target Platform Windows
Header d3d11_2.h
Pustaka D3D11.lib

Lihat juga

ID3D11DeviceContext2