使用多線程建立物件
使用 ID3D11Device 介面來建立資源和物件,請使用 ID3D11DeviceContext 進行 轉譯。
以下是如何建立資源的一些範例:
多線程考慮
資源建立和轉譯的並行程度取決於驅動程式所實作的多線程支援層級而定。 如果驅動程式支援同時建立,則應用程式應該不需要太多考慮並行問題。 不過,如果驅動程式不支援並行物件建立,並行存取的數量會非常有限。 若要了解驅動程式中可用的支持數量,請查詢驅動程式以取得 DriverConcurrentCreatesD3D11_FEATURE_DATA_THREADING 結構的成員值。 如需檢查多線程驅動程式支援的詳細資訊,請參閱 如何:檢查驅動程式支援。
並行作業不一定會導致更好的效能。 例如,建立和載入紋理通常受限於記憶體頻寬。 嘗試建立和載入多個紋理的速度可能不如一次執行一個紋理,即使這讓多個CPU核心處於閑置狀態也一樣。 不過,使用多個線程建立多個著色器會增加效能,因為這項作業較不依賴記憶體頻寬等系統資源。
當驅動程式和圖形硬體支援多線程時,您通常可以透過將指標傳遞至 pInitialData 參數中的初始數據,以更有效率地初始化新建立的資源(例如,在呼叫 ID3D11Device::CreateTexture2D 方法中)。
相關主題