[轉(zhuǎn)載]VKD3D 開(kāi)發(fā)者指出導(dǎo)致《星空》游戲性能問(wèn)題的原因
《星空》游戲自上線以來(lái),部分玩家不斷反饋游戲存在性能問(wèn)題。VKD3D 開(kāi)發(fā)者 HansKristian-Work 近日上線 GitHub 頁(yè)面,詳細(xì)羅列了導(dǎo)致《星空》游戲性能問(wèn)題的原因。

內(nèi)存分配不當(dāng)
《星空》沒(méi)有根據(jù) CPU 頁(yè)面大小正確分配其內(nèi)存需求,導(dǎo)致訪問(wèn)內(nèi)存效率低下,性能下降或者意外崩潰。
計(jì)算機(jī)系統(tǒng)為了優(yōu)化訪問(wèn),通常會(huì)進(jìn)行分頁(yè),而游戲需要根據(jù)分頁(yè)大小優(yōu)化代碼,對(duì)于提高性能是非常關(guān)鍵的一環(huán)。
《星空》游戲無(wú)法正確分配內(nèi)存,在 GPU 驅(qū)動(dòng)無(wú)法緩解的情況下,就會(huì)導(dǎo)致游戲崩潰。
ExecuteIndirect 引發(fā)的 GPU Bubble
DirectX12 API 包含一個(gè)名為“ExecuteIndirect”的簡(jiǎn)潔功能,可以不需要 CPU 的干預(yù)情況下,直接交由 GPU 執(zhí)行間接渲染操作,GPU 可以通過(guò)使用現(xiàn)有計(jì)算來(lái)執(zhí)行必要的工作負(fù)載。
《星空》無(wú)法妥善掌控這一特性,導(dǎo)致了圖形驅(qū)動(dòng)程序的混亂?!缎强铡酚螒蛳驁D形驅(qū)動(dòng)發(fā)送了誤導(dǎo)性提示,從而導(dǎo)致 GPU 反饋了錯(cuò)誤內(nèi)容,整個(gè)過(guò)程中 GPU 沒(méi)有做任何實(shí)際的工作。
IT之家在此附上?GitHub 鏈接(https://github.com/HansKristian-Work),感興趣的用戶可以深入閱讀。
本文轉(zhuǎn)載自:IT之家
文章作者:故淵
文章原鏈接:
https://www.ithome.com/0/718/541.htm

