官网链接:https://software.intel.com/en-us/gpa
官方介绍视频教程:https://www.youtube.com/watch?v=zLEUC3C9SKQ
概念:Erg---Anything contributing to the duration of the frame
GPA是一套工具,可以分析游戏的CPU/GPU性能,主要用于帮助开发者优化性能,不仅能针对Intel显卡也可以分析Nvidia等。因为主要查看绘制过程所以我主要使用了前两个工具,Monitor用于连接应用,Frame Analyzer用于查看捕获的Frame,包括绘制调用、Shader、资源文件等等。(视频里介绍说一般GPU limited使用Frame Analyzer分析,CPU limited使用Platform Analyzer分析)
因为unity写完shader后可以compile and show code,所以我尝试了一下发现这样其实可以看到自己编辑的shader的汇编码,有些游戏抓取的dxbc语言和unity的是对应的,包括constantBuffer等(猜测可能是unity开发),所以可以用类似的方法人肉翻译一下shader的算法。
关于具体的dxbc函数分析可以参考以下几个文档:
https://docs.microsoft.com/en-us/windows/win32/direct3dhlsl/dx9-graphics-reference-asm
https://docs.microsoft.com/en-us/windows/win32/direct3dhlsl/dp3--sm4---asm- 参考