其實到寫這篇文章的時候,DXGI已經(jīng)出1.5版了,但很多朋友實際上還在用1.2甚至1.1,所以現(xiàn)在談1.4一點也不過時,而且1.4又是一次非常重大的更新,很值得仔細(xì)談?wù)劇?
為了支持Direct3D 12(DXGI還處于1.4版本的時候,Direct3D還按照老命名方式叫Direct3D 12,現(xiàn)在已統(tǒng)一更名為DirectX 12),DXGI加入了一下這些新功能:
- 更廉價的適配器枚舉機(jī)制
- 視頻內(nèi)存預(yù)算追蹤
- Direct3D 12Swapchain 改進(jìn)
- 相關(guān)話題
更廉價的適配器枚舉機(jī)制
在Direct3D 12里已經(jīng)不能從device反向追蹤創(chuàng)建它的IDXGIAdapter適配器對象了。在調(diào)用D3D12CreateDevice的時候也不能指定D3D_DRIVER_TYPE_WARP了。但你可以用IDXFactory4去處理這些事。IDXGIFactory4::EnumAdapterByLuid可以在D3D 12環(huán)境下追蹤創(chuàng)建device的adapter(與ID3D12Device::GetAdapterLuid結(jié)對使用)。如果想讓D3D12CreateDevice使用WARP渲染器,要用到IDXGIFactory4::EnumWarpAdapter提供的適配器(Adapter)。
視頻內(nèi)存預(yù)算追蹤
微軟建議開發(fā)者在處理視頻內(nèi)存時使用他們設(shè)計的預(yù)約內(nèi)存系統(tǒng),這樣能告知操作系統(tǒng)為開發(fā)者預(yù)留應(yīng)用所需要的最低內(nèi)存。(這是一種很好的機(jī)制,但也有些限制)
一個系統(tǒng)能為某個應(yīng)用提供的物理內(nèi)存數(shù)量叫做這個應(yīng)用的“視頻內(nèi)存預(yù)算(video memory budget)”。當(dāng)后臺進(jìn)程喚醒或睡眠的時候預(yù)算會出現(xiàn)極大的波動;當(dāng)終端用戶切換進(jìn)程的時候預(yù)算會急劇變化。應(yīng)用此時會被系統(tǒng)通知并進(jìn)行統(tǒng)計當(dāng)前消費內(nèi)存和預(yù)算內(nèi)存。應(yīng)用如果覺得預(yù)算不夠,就會休眠并允許其他應(yīng)用執(zhí)行,當(dāng)時調(diào)用的創(chuàng)建類函數(shù)也有可能返回錯誤。IDXGIAdapter3就與此事有關(guān),尤其是QueryVideoMemoryInfo和RegisterVideoMemoryBudgetChangeNotificationEvent。
更多相關(guān)信息查看這里:Residency。
Direct3D 12Swapchain 改進(jìn)
延伸閱讀
- ssh框架 2016-09-30
- 阿里移動安全 [無線安全]玩轉(zhuǎn)無線電——不安全的藍(lán)牙鎖 2017-07-26
- 消息隊列NetMQ 原理分析4-Socket、Session、Option和Pipe 2024-03-26
- Selective Search for Object Recognition 論文筆記【圖片目標(biāo)分割】 2017-07-26
- 詞向量-LRWE模型-更好地識別反義詞同義詞 2017-07-26
- 從棧不平衡問題 理解 calling convention 2017-07-26
- php imagemagick 處理 圖片剪切、壓縮、合并、插入文本、背景色透明 2017-07-26
- Swift實現(xiàn)JSON轉(zhuǎn)Model - HandyJSON使用講解 2017-07-26
- 阿里移動安全 Android端惡意鎖屏勒索應(yīng)用分析 2017-07-26
- 集合結(jié)合數(shù)據(jù)結(jié)構(gòu)來看看(二) 2017-07-26