其他分享
首页 > 其他分享> > GPU分析工具RenderDoc使用

GPU分析工具RenderDoc使用

作者:互联网

目的

准备工作

连接应用

成功连接后会是如图显示

Launch成功后显示如图

截帧

成功之后双击截出的帧,等待加载完数据,就可以开始分析了。当然你也可以右键保存到本地,这样方便下次分析。

分析帧

窗口简介

RenderDoc中全部窗口如下:

Launch Application上面说过是用来连接应用和抓帧的 Python Shell,Errors And Warnings 我基本不用,无视。 其他窗口下面我会按照我常用频率来介绍。

Event Browaser

主要用来查看以及选择DrawCall调用,我们分析的单位也是从DrawCall分析。选中单一的DrawCall,其他窗口也会有对应的改变显示,因此在glDrawElements之间跳动,可以很方便的查看到这次Drawcall具体作用。同时点击1处的时钟图标,会在2处显示调用的消耗时间。

Texture Viewer

主要用来查看纹理显示,我们可以用它来查看在Event Browaser中选中的DrawCall或者Pass的输入和输出纹理。 2中是输入纹理,3中是输出纹理,在其中选中一个纹理,可以在4中放大显示。点击1按钮可以保存纹理。

在纹理小窗口中右键弹出一些选项,可以看到这个纹理在哪些DrawCall中使用,点击可以Event Browaser中选中对应的DrawCall。 例如我在一次截帧中顺序选中两个DrawCall。

对比发现第二个DrawCall画的是人物的脸部。

窗口还有两个比较有用的小功能,一个是查看所有纹理,一个是在Resource Inspector中查看当前选中纹理,这里就不多做介绍。

Pipeline State

主要用来查看渲染管线过程,是一个使用很频繁的窗口。(下面介绍以我们绘制脸部的DrawCall为例。)

VTX窗口主要用来查看输入的顶点(包括格式,大小等等),粗略看看就行,后面有更适合看的地方。

因为基本的上不在顶点着色器中做采样操作,所以这里的纹理和采样器是空的,但是因为后面的PS(像素着色器)和这里基本上是一样的显示和操作,我就点击Show Disabled Items(下图中1处按钮)强行显示出来这个ShaderProgram使用到的纹理和采样器(一般情况下不需要开这个),PS处就不再细介绍了。

分别是VShader的代码和VS的输入和输出。在Mesh View 能看到更详细的Mesh数据,这个后面再介绍。

4处是采样器,可以看到采样纹理的环绕方式(Addressing),过滤方式(filter)等。

这个窗口我基本只关注一个 CullMode(裁剪模式),其他变量有兴趣的自己去了解哈。

操作显示和VS差不多,稍微注意下我没开Show Disabled Items,因此我们在上面看到的纹理和采样器就是在PS中真正用到的。

这个窗口主要关注Alpha混合(是否开启,以及混合模式等),Z-Test(深度测试是否开启,测试函数等等),Stencil Test(模板测试)

Mesh Viewer

这个窗口主要是用来查看VertexShader中输入输出的顶点数据,一般关注输出的就行。

API Inspector

主要用来查看一些切换渲染状态的API调用。

上图可以看到有一些激活绑定纹理,使用ShaderProgram,设置Shader的Uniform变量。

展开后,能看到具体的资源,点击可以跳转到Resource Inspector查看。

Timeline

查看这一帧的时间轴

小旗子表示当前选中的DrawCall。 当我们在TextureViewer中选中一张纹理,时间轴下面会有一些不同颜色的小三角形。

表示这张纹理在这一次DrawCall被读,写,读写,或者清除。

在最左侧可以看到当前查找引用的纹理。 我们选中一张纹理举例。

可以看到这张纹理在6个DrawCall中被读取使用。

Resource Inspector

查看这一帧中所有的资源。

 

调试的话可以参考这篇文章Renderdoc调试

标签:RenderDoc,窗口,查看,DrawCall,纹理,点击,选中,GPU,工具
来源: https://blog.csdn.net/chqj_163/article/details/114361661