回溯要求Free-Threaded CalcPrivate DIS
Direct3D 第 11 版回溯需要使用者模式顯示驅動程式函式,其開頭為 pfnCalcPrivate ,且 Direct3D 第 10 版 DDI 函式為自由執行緒。 此回溯需求符合 Direct3D 第 11 版 DDI 的行為,一律需要 pfnCalcPrivate* 和 pfnCalcDeferredCoNtextHandleSize 函式,即使驅動程式指出它不支援 DDI 執行緒。 如需驅動程式如何指出執行緒支援的詳細資訊,請參閱 支援執行緒、命令清單和 3D 管線。 這種回溯需求的原因是這類函式通常會非常簡單,因為它們會傳回大小的立即值。 更複雜的函式會根據傳遞給函式的參數決定要傳回的立即值。 以 pfnCalcPrivate 開頭的函式需求,實際將任何資料寫入堆疊以外的位置並不存在。 這些函式讀取參數以外的任何資料的需求是不雅的。 讀取資料的任何需求都不會產生爭用問題。 這個事實可讓 Direct3D 第 11 版 API 取得所需的優化,並防止每個建立 (執行成本高昂的同步處理兩次,例如建立物件,例如 呼叫 CreateResource (D3D10) 或 CreateGeometryShader) ,而不是只執行一次。
此回溯無線程需求的值得注意例外是用來滿足顯示裝置建立的 CalcPrivateDeviceSize 函式。 CalcPrivateDeviceSize 位於配接器函式資料表上 , (D3D10_2DDI_ADAPTERFUNCS 或 D3D10DDI_ADAPTERFUNCS) 。 CalcPrivateDeviceSize 不落在遇到執行緒模型中的函式群組之下。 不需要自由執行緒 CalcPrivateDeviceSize 函式。