共用方式為


IDirect3DDevice9Ex::CheckResourceResidency 方法 (d3d9.h)

檢查資源的陣列,以判斷它們是否會在 Draw 時間造成大型停頓,因為系統必須讓資源能夠存取 GPU。

語法

HRESULT CheckResourceResidency(
  [in] IDirect3DResource9 **pResourceArray,
  [in] UINT32             NumResources
);

參數

[in] pResourceArray

類型: IDirect3DResource9**

IDirect3DResource9指標的陣列,指出要檢查的資源。

[in] NumResources

類型: UINT32

值,表示傳遞至 pResourceArray 參數的資源數目上限為 65535。

傳回值

類型: HRESULT

如果所有資源都位於 GPU 可存取的記憶體中,方法會傳回S_OK。 系統可能需要執行重新對應作業來升級資源,但不需要複製資料。

如果沒有包含資源的配置位於磁片上,但至少有一個配置不在 GPU 存取的記憶體中,此方法會傳回S_RESIDENT_IN_SHARED_MEMORY。 系統可能需要執行複本來升級資源。

如果至少一個包含資源的配置位於磁片上,這個方法會傳回S_NOT_RESIDENT。 系統可能需要執行複本來升級資源。

備註

此 API 不會超過落地的合理猜測,因為資源可能會在應用程式使用時降級。

預期的使用模式如下所示。 如果應用程式判斷一組資源未存在,則應用程式會取代較低的 LOD 版本資源,並繼續轉譯。 視訊記憶體管理員 API 提供一項功能,可讓應用程式表達希望讓這些較低 LOD 資源更容易留在 GPU 可存取的記憶體中。 如果是,應用程式必須負責建立、填滿並終結這些較低 LOD 版本。

當落地檢查指出資源不在 GPU 存取記憶體中時,應用程式也需要開始升級較高 LOD 版本。 由於每個進程鎖定存在於核心模式中,因此效能效能實作會繁衍個別的進程,其唯一的作業是升級資源。 應用程式會透過 共用資源 共用介面 API 在兩個進程之間通訊資源識別,並透過 SetPriority加以升級。

需求

   
目標平台 Windows
標頭 d3d9.h
程式庫 D3D9.lib

另請參閱

IDirect3DDevice9Ex