Metode ID3D11DeviceContext2::CopyTiles (d3d11_2.h)

Menyalin petak dari buffer ke sumber daya berjenjang atau sebaliknya.

Sintaks

void CopyTiles(
  [in] ID3D11Resource                        *pTiledResource,
  [in] const D3D11_TILED_RESOURCE_COORDINATE *pTileRegionStartCoordinate,
  [in] const D3D11_TILE_REGION_SIZE          *pTileRegionSize,
  [in] ID3D11Buffer                          *pBuffer,
  [in] UINT64                                BufferStartOffsetInBytes,
  [in] UINT                                  Flags
);

Parameter

[in] pTiledResource

Jenis: ID3D11Resource*

Penunjuk ke sumber daya berjenjang.

[in] pTileRegionStartCoordinate

Jenis: const D3D11_TILED_RESOURCE_COORDINATE*

Penunjuk ke struktur D3D11_TILED_RESOURCE_COORDINATE yang menjelaskan koordinat awal sumber daya ubin.

[in] pTileRegionSize

Jenis: const D3D11_TILE_REGION_SIZE*

Penunjuk ke struktur D3D11_TILE_REGION_SIZE yang menjelaskan ukuran wilayah petak peta.

[in] pBuffer

Jenis: ID3D11Buffer*

Penunjuk ke ID3D11Buffer yang mewakili buffer default, dinamis, atau penahapan.

[in] BufferStartOffsetInBytes

Jenis: UINT64

Offset dalam byte ke dalam buffer di pBuffer untuk memulai operasi.

[in] Flags

Jenis: UINT

Kombinasi nilai D3D11_TILE_COPY_FLAG-ketik yang digabungkan dengan menggunakan operasi OR bitwise dan yang mengidentifikasi cara menyalin petak peta.

Nilai kembali

Tidak ada

Keterangan

CopyTiles menghilangkan operasi tulis ke area yang tidak dipetakan dan menangani operasi baca dari area yang tidak dipetakan (kecuali pada sumber daya petak Tier_1 , di mana membaca dan menulis area yang tidak dipetakan tidak valid).

Jika operasi salin melibatkan penulisan ke lokasi memori yang sama beberapa kali karena beberapa lokasi di sumber daya tujuan dipetakan ke memori petak peta yang sama, operasi tulis yang dihasilkan ke petak peta multi-dipetakan tidak deterministik dan tidak dapat diulang; artinya, akses ke memori petak peta terjadi dalam urutan apa pun yang terjadi perangkat keras untuk menjalankan operasi salin.

Petak peta yang terlibat dalam operasi salin tidak dapat menyertakan petak peta yang berisi mipmap yang dikemas atau hasil operasi salin tidak terdefinisi. Untuk mentransfer data ke dan dari mipmap yang dikemas perangkat keras ke dalam petak peta satu atau lebih yang merupakan mips yang dikemas, Anda harus menggunakan API salinan dan pembaruan standar (yaitu, khusus non-petak peta) (seperti ID3D11DeviceContext1::CopySubresourceRegion1 dan ID3D11DeviceContext1::UpdateSubresource1) atau ID3D11DeviceContext::GenerateMips untuk seluruh rantai mipmap.

Tata letak memori petak peta di sisi sumber daya buffer non-ubin dari operasi salin bersifat linier dalam memori dalam petak peta 64 KB, yang perangkat keras dan driver menggeser dan mendesis per petak peta yang sesuai ketika mereka mentransfer ke dan dari sumber daya ubin. Untuk permukaan antialias multisample (MSAA), perangkat keras dan driver melintasi setiap sampel piksel dalam urutan indeks sampel sebelum berpindah ke piksel berikutnya. Untuk petak peta yang sebagian diisi di sisi kanan (untuk permukaan yang memiliki lebar bukan kelipatan lebar petak dalam piksel), pitch dan langkah untuk memindahkan ke bawah baris adalah ukuran penuh dalam byte dari piksel angka yang akan pas di seluruh petak jika petak peta penuh. Jadi, mungkin ada celah antara setiap baris piksel dalam memori. Mipmap yang lebih kecil dari petak peta tidak dikemas bersama-sama dalam tata letak linier, yang mungkin tampaknya membuang-buang ruang memori, tetapi seperti yang disebutkan Anda tidak dapat menggunakan CopyTiles atau ID3D11DeviceContext2::UpdateTiles untuk menyalin ke mipmaps yang dikemas perangkat keras bersama-sama. Anda hanya dapat menggunakan API salinan dan pembaruan generik (seperti ID3D11DeviceContext1::CopySubresourceRegion1 dan ID3D11DeviceContext1::UpdateSubresource1) untuk menyalin mipmap kecil satu per satu. Meskipun dalam kasus API salinan generik (seperti ID3D11DeviceContext1::CopySubresourceRegion1), memori linier harus dimensi yang sama dengan sumber daya petak peta; ID3D11DeviceContext1::CopySubresourceRegion1 tidak dapat menyalin dari sumber daya buffer ke Texture2D misalnya.

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