Re: [心得] 星空優化情況的確影響到遊戲體驗
https://www.reddit.com/r/pcmasterrace/comments/16eq1rp/in_case_you_wanted_to_
know_a_few_reasons_on_why/
https://i.imgur.com/Bu0IOX7.png
![](https://i.imgur.com/Bu0IOX7.jpg)
將windows上的DX12轉譯成Linux可以用的Vulkan開發者發現星空最適化差的原因
(Steam deck也是用Vulkan?)
1. 遊戲分配記憶體沒有跟CPU的記憶體分配大小對齊(通常4kB),如果顯卡的驅動設計
不能處理這種錯位,就會造成遊戲崩潰。
2. 濫用DX12的ExecuteIndirect功能。這個功能可以讓顯卡直接從記憶體讀到的內容去
直接執行指令,而不用再等待CPU的指示再行動。但是要讓這個功能有效率的執行需要
遊戲預先給一些"提示",這樣顯卡會根據題示去看他要對這些資料做那些處理。
但是Starfield會給一連串錯誤的提示,造成顯卡運算不出提示要得東西而暫停。
顯卡暫停後就要花時間重新評估狀況,然後重頭開始。
3. 遊戲使用ExecuteIndirect是多次重覆下指令,而不是一批批給。
如果遊戲要重複使用相似的ExecuteIndirect指令,比較好方法是打包起來一次送給顯卡
但是starfield是用連續發送指令的方式,這點再配上第二點的錯誤提示,就直接放大
整個程式缺點。第一個錯誤提示造成的暫停跟重新處理還沒跑完,第二個提示馬上來
然後又是錯誤提示,只好又暫停流程後重新處理。造成顯卡效能都浪費在處理這些
錯誤上。
用煮東西來形容 (感謝chatgpt)
服務生不是一次遞整桌的單給廚師說要做哪些菜,而是一道菜遞一次單給廚師。
如果一桌一次遞單,廚師就可以一次從冰箱拿出需要的東西
而不用開開關關冰箱來回跑浪費時間
廚師拿到食材開始根據食譜料理,但是發現跟外場註記的東西不一樣
例如點番茄湯,根據食譜是把番茄丟下去煮湯,但是點菜單上卻註記要綠色的番茄湯
這時候廚師只好暫停手邊工作,仔細核對食譜,確認番茄湯這道菜的食譜沒有錯
從冰箱拿到的也是紅色番茄。重新切一切後再煮一次還是紅色的湯,這時候就不管
那個外場註記的東西直接送出去
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 163.15.167.219 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/Steam/M.1694421256.A.10D.html
推
09/11 16:40,
9月前
, 1F
09/11 16:40, 1F
推
09/11 16:55,
9月前
, 2F
09/11 16:55, 2F
推
09/11 17:12,
9月前
, 3F
09/11 17:12, 3F
→
09/11 17:12,
9月前
, 4F
09/11 17:12, 4F
※ 編輯: tsubasawolfy (163.15.167.219 臺灣), 09/11/2023 17:13:25
推
09/11 17:17,
9月前
, 5F
09/11 17:17, 5F
推
09/11 17:21,
9月前
, 6F
09/11 17:21, 6F
→
09/11 17:21,
9月前
, 7F
09/11 17:21, 7F
推
09/11 17:27,
9月前
, 8F
09/11 17:27, 8F
推
09/11 17:27,
9月前
, 9F
09/11 17:27, 9F
推
09/11 17:35,
9月前
, 10F
09/11 17:35, 10F
推
09/11 17:41,
9月前
, 11F
09/11 17:41, 11F
→
09/11 17:41,
9月前
, 12F
09/11 17:41, 12F
→
09/11 17:51,
9月前
, 13F
09/11 17:51, 13F
推
09/11 17:55,
9月前
, 14F
09/11 17:55, 14F
推
09/11 18:00,
9月前
, 15F
09/11 18:00, 15F
→
09/11 18:02,
9月前
, 16F
09/11 18:02, 16F
推
09/11 18:07,
9月前
, 17F
09/11 18:07, 17F
推
09/11 18:16,
9月前
, 18F
09/11 18:16, 18F
→
09/11 18:18,
9月前
, 19F
09/11 18:18, 19F
→
09/11 18:18,
9月前
, 20F
09/11 18:18, 20F
→
09/11 18:37,
9月前
, 21F
09/11 18:37, 21F
→
09/11 18:37,
9月前
, 22F
09/11 18:37, 22F
→
09/11 18:55,
9月前
, 23F
09/11 18:55, 23F
→
09/11 18:56,
9月前
, 24F
09/11 18:56, 24F
推
09/11 19:42,
9月前
, 25F
09/11 19:42, 25F
→
09/11 20:14,
9月前
, 26F
09/11 20:14, 26F
推
09/12 09:30,
9月前
, 27F
09/12 09:30, 27F
→
09/12 12:53,
9月前
, 28F
09/12 12:53, 28F
→
09/12 15:04,
9月前
, 29F
09/12 15:04, 29F
→
09/12 15:04,
9月前
, 30F
09/12 15:04, 30F
推
09/13 11:15,
9月前
, 31F
09/13 11:15, 31F
→
09/13 11:16,
9月前
, 32F
09/13 11:16, 32F
→
09/14 16:05,
9月前
, 33F
09/14 16:05, 33F
討論串 (同標題文章)
完整討論串 (本文為第 2 之 3 篇):
心得
63
129