ID3D11DeviceCoNtext2::TiledResourceBarrier 方法 (d3d11_2.h)
指定多個磚資源之間的資料存取排序條件約束。 如需此條件約束的詳細資訊,請參閱。
語法
void TiledResourceBarrier(
[in, optional] ID3D11DeviceChild *pTiledResourceOrViewAccessBeforeBarrier,
[in, optional] ID3D11DeviceChild *pTiledResourceOrViewAccessAfterBarrier
);
參數
[in, optional] pTiledResourceOrViewAccessBeforeBarrier
類型: ID3D11DeviceChild*
以D3D11_RESOURCE_MISC_TILED旗標建立之資源的ID3D11Resource或ID3D11View指標。 此物件的存取作業必須先完成,才能在 pTiledResourceOrViewAccessAfterBarrier 指定之物件的存取作業之前完成。
[in, optional] pTiledResourceOrViewAccessAfterBarrier
類型: ID3D11DeviceChild*
以D3D11_RESOURCE_MISC_TILED旗標建立之資源的ID3D11Resource或ID3D11View指標。 此物件的存取作業必須在 pTiledResourceOrViewAccessBeforeBarrier 指定之物件的存取作業之後開始。
傳回值
無
備註
應用程式可以使用磚資源,在不同的資源中重複使用磚。 但是,裝置和驅動程式可能無法判斷磚集區中某些剛轉譯為 的記憶體目前是否正用於讀取。
例如,應用程式可以使用一個磚資源轉譯至磚集區中的某些磚,然後使用不同的磚資源從相同的磚讀取。 這些磚資源作業與使用一個資源不同,然後只從使用 ID3D11RenderTargetView 寫入切換為使用 ID3D11ShaderResourceView讀取。 執行時間已經使用 ID3D11RenderTargetView 和 ID3D11ShaderResourceView追蹤並處理這一個資源作業。
當應用程式從存取 (讀取或寫入) 一個資源在磚集區中存取相同記憶體 (讀取或寫入) ,並透過另一個磚資源 (與相同記憶體) 的對應,應用程式必須在第一次使用資源之後呼叫 TiledResourceBarrier,並在第二個資源之前呼叫 TiledResourceBarrier 。 這些參數是 pTiledResourceOrViewAccessBeforeBarrier (,可透過轉譯、複製) ,以及 pTiledResourceOrViewAccessAfterBarrier 在屏障之後使用相同的磚集區記憶體存取。 如果資源相同,應用程式就不需要呼叫 TiledResourceBarrier ,因為已經追蹤並處理這種危險。
屏障呼叫會通知驅動程式在呼叫之前發出給資源的作業必須先完成,才能透過共用相同記憶體的不同磚資源進行呼叫之後發生的任何存取。
在屏障) 之前或之後 (兩個參數可以是 Null。 在屏障之前,Null表示在屏障之前必須完成所有磚資源存取,才能由圖形處理單位 (GPU) 參考指定的資源。 屏障之後的Null表示在存取磚資源之後,GPU 只能在存取磚資源之後,才能在屏障完成之前執行任何磚資源存取的磚資源。 這兩個 Null 表示所有先前的磚資源存取都已完成,之後任何後續的磚資源存取才能繼續。
應用程式可以針對每個參數傳遞檢視指標、資源或 Null 。 檢視不僅方便起見,也允許應用程式將屏障效果的範圍限定在資源的相關部分。
如需磚資源的詳細資訊,請參閱 磚資源。
規格需求
最低支援的用戶端 | Windows 8.1 [傳統型應用程式 |UWP 應用程式] |
最低支援的伺服器 | Windows Server 2012 R2 [傳統型應用程式 |UWP 應用程式] |
目標平台 | Windows |
標頭 | d3d11_2.h |
程式庫 | D3D11.lib |