Opengl es GLSL着色器分析工具包

Opengl es GLSL着色器分析工具包,opengl-es,benchmarking,analysis,Opengl Es,Benchmarking,Analysis,我想在我不太了解的移动设备上实现一个GLSL着色器分析工具包。 GLSL着色器分析工具包的理念是在不同的移动设备上运行该程序,然后给艺术家一个直观的印象,哪种操作最昂贵:FShader、VShader、光栅化或带宽。但是我不知道如何测量VShader(VShader部分的思想是测量移动设备在给定着色器的情况下可以支持的最大顶点数) 简而言之,我正在寻找有关移动设备上Opengl基准测试的帮助 PS,我已经通过使用给定着色器绘制多个屏幕四边形来实现了对FShader的分析,减去使用空FShader

我想在我不太了解的移动设备上实现一个GLSL着色器分析工具包。 GLSL着色器分析工具包的理念是在不同的移动设备上运行该程序,然后给艺术家一个直观的印象,哪种操作最昂贵:FShader、VShader、光栅化或带宽。但是我不知道如何测量VShader(VShader部分的思想是测量移动设备在给定着色器的情况下可以支持的最大顶点数)

简而言之,我正在寻找有关移动设备上Opengl基准测试的帮助

PS,我已经通过使用给定着色器绘制多个屏幕四边形来实现了对FShader的分析,减去使用空FShader绘制多个屏幕四边形的性能。测试期间,深度写入和深度测试关闭。我只想大致了解一下成本,不想涉及编译器和硬件的事情

最好的

我知道用这种幼稚的方式测量着色器可能没有什么意义

没有。完全可以在软件中调节静态模型,因此,在某些供应商上,如果驱动程序可以确定整个绘图操作是冗余的,则完全脱离屏幕的几何图形可能根本无法进入GPU

基准测试应该始终测量实际应用程序的实际功能,否则您不知道实际测量的功能是否代表实际情况。

真正的应用程序不会在平截头体之外渲染其所有几何体,因此很可能您遇到的是一条优化的快速路径,该路径将至少跳过一些几何体相关管道(例如,仅计算位置,而不是顶点着色器的其余部分,或提前放弃整个绘制调用)


同样适用于渲染大量层的基准测试-对于移动GPU(其中大多数在某种程度上是基于平铺的),在您开始看到至少一些性能下降之前,往往对并发层的数量有一些限制。(因为真正的应用程序不渲染很多很多层,所以为什么要浪费支持它的硬件呢)。如果需要较慢的工作负载,则可以渲染到较大的屏幕外渲染目标,也可以渲染多个较小的目标(但不能太小)

如果作业不清楚,请询问你的导师。这是你的实习,不是我们的。