瀏覽單個文章
walkingdog
Golden Member
 

加入日期: Dec 2002
文章: 3,258
引用:
作者copernicus
終於看懂了.

DX12 可以讓多核心CPU有更平均的發揮, 就這樣, 沒
每個CPU 核心的效率就在那邊
我們可以把他簡化成這樣:
多核CPU效能 = 單核效能 x k, (1<k<核心數)
簡單的說, AMD目前每個核心比較弱, 所以如果能夠更好的利用每個核心
那AMD的CPU在遊戲效能上就可以獲得更大的提升, 讓k更接近核心數
這個表格就只能解讀到這裡

後面slide寫的1000/29=34FPS, 1000/15=66FPS那根本就是胡說八道!

因為真正的問題在於 DX12 這個API到底如何去協調GPU和CPU
這個Chart完全沒有出現GPU的工作流程, 也就是說
這個Chart把GPU當成是一個超效GPU, 所有的Texturing, Rendering, Shading的動作都是瞬時完成, 永遠不會有bottleneck, 所以才能出現這種情況

但是回到現實世界, 卻遠不是如此, 尤其在高畫質高解析度的世界
Shading, Rendering, Texturing 的時間遠比CPU的loading多的多

必須加上後面...


+1,有說到重點~~
小弟剛才看了一些有關Draw Calls的文章,節錄一些有趣的地方給大家參考~~


DX12 Is Able to Handle 600K Draw Calls, 600% Performance Increase Achieved on AMD GPUs
http://www.dsogaming.com/news/dx12-...ed-on-amd-gpus/

DX12能處理600K左右的Draw Calls,DX9約6K,DX11沒有確切資料,有部
份是說10K左右,因此"理論上"來說,DX12在Draw Calls效率上是DX11的60
倍上下。FUTUREMARK那個測試軟體最主要就是測試Draw Calls效率,因此
在數據圖表上有很大明顯的差距。這個網頁引用Anandtech的benchmarks,但是
有誤用的情況,而且下了一個離譜的標題。DX12利用多核CPU放寬Draw Calls的
限制,但是影響最後FPS產值仍舊有諸多瓶頸存在。


The DirectX 12 Performance Preview: AMD, NVIDIA, & Star Swarm
http://www.anandtech.com/show/8962/...ia-star-swarm/3

上面這個就是Anandech-Star Swarm的測試,建議把全文看完,圖表當輔助。AMD
的卡因為Draw Calls的解禁在DX12的FPS衝了好幾倍,NV也獲得可觀的成長。
Star Swarm是測試DX11和DX12效能差異最好的遊戲或DEMO之一,因為它
的"初始瓶頸"確實卡在Draw Calls上,但Draw Calls的問題解決後,瓶頸遷移現
象又會導入其他限制因子,並非所有的遊戲執行不順暢源於Draw Call限制,並
非所有遊戲的"初始瓶頸"之因子為Draw Calls之不足。在瓶頸遷移影響下,各因
子成為"絕對影響因子"有其時間百分比,並動態交替,依程式設計優劣、硬體優
劣、玩家畫質調整而牽動。


What is a reasonable number of draw calls relative to one hardware configuration ?
http://answers.unity3d.com/question...s-relative.html

因為是2010的文章,小弟覺得以下可參考
To determine if you are fill rate limited or draw call limited is simple. Run an
FPS (Frames Per Second) monitoring program in the background like FRAPS to monitor your performance, and play through a sample of game at your highest available resolution, then again at a much lower resolution. If you game performance changes dramatically, then your game performance is fill rate limited, and you should look at the shaders you are using for better performance, along with the GPU. If the performance change is minimal, you are draw call limited, and should look at reducing the number of draw calls through batching or lower the number of objects visible at any one time.

有人說Assassin's Creed Unity執行效率不佳,是因為Draw Calls不足,當Draw Calls
不足時,畫質調高調低影響不大,因為瓶頸不是在GPU這邊。Anandtech的測試
或許可看出端倪,到底是Draw Call的問題還是Ubi的問題,但無法絕對判斷。
http://www.anandtech.com/show/8738/...s-creed-unity/2




常看Benchmark的人應該知道目前的3D大作遊戲,泰半在1080P高畫質的設定
下,CPU影響不大,除非是即時策略或戰略型的遊戲,因為瓶頸都跑到GPU去
了,更不用提爾後的4K。有些遊戲在SLI或CF後效能更是直衝近兩倍,代表
GPU比CPU更容易形成瓶頸。要讓CPU成為瓶頸也很簡單,把畫質解析度調
到最低,CPU就稍有機會成為瓶頸,但是應該沒人會用中高階電腦幹這種事吧。
如果DX12能讓閒置的多核CPU去做GPU才能做的事,而且不是幫倒忙,那
DX12就有膜拜的價值,如果只是利用多核CPU的效能放寬Draw Calls限制,
也樂觀其成,畢竟這樣才不會綁手綁腳,但個人猜想DX12應該不是只有放寬
限制那麼單純吧...
 
__________________
2013 UPCOMING PC-GAME
舊 2015-03-29, 11:38 PM #42
回應時引用此文章
walkingdog離線中