ID3D11DeviceContext2::CopyTiles 方法 (d3d11_2.h)

將磚從緩衝區複製到磚資源,反之亦然。

語法

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
);

參數

[in] pTiledResource

類型: ID3D11Resource*

圖格資源的指標。

[in] pTileRegionStartCoordinate

類型: const D3D11_TILED_RESOURCE_COORDINATE*

描述磚資源起始座標 之D3D11_TILED_RESOURCE_COORDINATE 結構的指標。

[in] pTileRegionSize

類型: const D3D11_TILE_REGION_SIZE*

描述磚區域大小的 D3D11_TILE_REGION_SIZE 結構的指標。

[in] pBuffer

類型: ID3D11Buffer*

ID3D11Buffer 的指標,表示預設、動態或暫存緩衝區。

[in] BufferStartOffsetInBytes

類型: UINT64

pBuffer 的緩衝區中,以位元組為單位的位移,以啟動作業。

[in] Flags

類型: UINT

使用位 OR 運算結合 的D3D11_TILE_COPY_FLAG型別值組合,並識別如何複製磚。

傳回值

備註

CopyTiles 會將寫入作業卸除至未對應的區域,並處理未對應的區域讀取作業 (,但 Tier_1磚資源 除外,其中讀取和寫入未對應的區域無效) 。

如果複製作業牽涉到寫入相同的記憶體位置多次,因為目的地資源中的多個位置會對應至相同的磚記憶體,則對多對應磚產生的寫入作業不具決定性且不可重複;也就是說,存取磚記憶體會依硬體執行複製作業的順序發生。

複製作業中涉及的圖格不能包含包含已封裝Mipmap或複製作業結果的磚未定義。 若要將資料傳送到硬體套件到構成已封裝 Mips 的一或多個磚,以及從 Mipmap 傳輸數據, 您必須使用標準 (,也就是非磚特定的) 複製和更新 API (,例如 ID3D11DeviceContext1::CopySubresourceRegion1ID3D11DeviceContext1::UpdateSubresource1) 或 ID3D11DeviceContext::GenerateMips

複製作業之非磚緩衝資源端的記憶體配置在 64 KB 磚的記憶體中是線性的,其硬體和驅動程式會在每一磚之間適當地撥動和還原wizzle。 針對多重取樣反鋸齒 (MSAA) 表面,硬體和驅動程式會在移至下一個圖元之前,以取樣索引順序周遊每個像素的樣本。 對於在右側部分填滿的磚 (,如果磚已滿,其寬度不是圖元寬度的倍數,) ,則向下移動數據列的間距和步調,是圖格已滿時會容納在磚上之圖元的完整大小。 因此,記憶體中每個像素數據列之間可能會有一個間距。 小於磚的 Mipmap 不會在線性配置中封裝在一起,這似乎浪費記憶體空間,但如前所述,您無法使用 CopyTilesID3D11DeviceContext2::UpdateTiles 複製至硬體組合在一起的 Mipmap。 您只要使用泛型複製和更新 API (,例如 ID3D11DeviceContext1::CopySubresourceRegion1ID3D11DeviceContext1::UpdateSubresource1) 個別複製小型 Mipmap。 雖然在一般複製 API (例如 ID3D11DeviceContext1::CopySubresourceRegion1) 的情況下,線性記憶體必須與磚資源相同; ID3D11DeviceContext1::CopySubresourceRegion1 無法從緩衝區資源複製到 Texture2D,例如。

如需磚資源的詳細資訊,請參閱 磚資源

規格需求

需求
最低支援的用戶端 Windows 8.1 [傳統型應用程式 |UWP 應用程式]
最低支援的伺服器 Windows Server 2012 R2 [傳統型應用程式 |UWP 應用程式]
目標平台 Windows
標頭 d3d11_2.h
程式庫 D3D11.lib

另請參閱

ID3D11DeviceContext2