https://www.imgtec.com/blog/vulkan-high-efficiency-on-mobile/
vulkan性能上的优势
降低CPU开销
drawcall上限数量增加
However, that’s a performance problem, and this post is supposed to be about efficiency! However this illustrates an important point, even when an application doesn’t hit this bottleneck, each draw call is still doing unnecessary work – it certainly isn’t free. The Gnome Horde demo is just an attempt to visualize this in an obvious way, but the problem is pervasive in all OpenGL ES applications.
这段对我。。。。很有启发 我之前只做bottleneck, of course 任何地方的下降都能省些电, 这就意味着不在bottle上的 低优先级也要开task
system on chip
die 是芯片的意思。。。。
去掉了 run time error detecting 来节省开销 这样程序直接挂。。
额外加vkayer catch error 调试的时候
explicit management用 fence sync objects, queries and memory barriers
PSO的出现原因
之前看metal文档 编shader和渲染状态互相耦合
这里给了一个例子
programable blending 会把render state patch到ps里
和苹果那里讲的一样 换了renderstate ps就要对应重新编
PSOs are responsible for possibly the most dramatic saving of CPU work during draw command generation, as they handle all the validation, compilation and translation of this API state to GPU code.
用pso把这部分完全剥离 降低cpu开销
像引擎一般会做pso的cache
切cache就行了
cmd buffers 复用
多线程:多核低功率跑
这篇总结起来 就是vulkan 给了你很多 在cpu这边省很多电 的机会 需要用对
GPU efficiency之后谈
- High efficiency on mobile
- Scaling to multiple threads
- Explicit operation and consistent frame times
- Architecture positive: how the Vulkan API works for PowerVR GPUs
https://www.imgtec.com/blog/5-new-webinars-on-the-vulkan-api/