Mobile 不同芯片组的GLSL指令限制

Mobile 不同芯片组的GLSL指令限制,mobile,opengl-es-2.0,glsl,shader,Mobile,Opengl Es 2.0,Glsl,Shader,我正在将一个工程应用程序移植到所有主要的移动平台上 确认我将要编写的许多着色器的VS/FS指令限制非常重要 我正在寻找以下芯片组的VS/FS指令限制。 Nvidia Tegra 2- 肾上腺素205/220- PowerVR SGX系列-以下是按着色器版本比较的功能: 这适用于HLSL,但相同的数字应适用于GLSL等效版本。我知道这并不能回答您提到的特定芯片组,但您应该能够对照这些功能交叉引用其支持的着色器版本。您所说的“指令限制”是什么意思?着色器可以任意复杂,但显然,在着色器中执行的计算越重

我正在将一个工程应用程序移植到所有主要的移动平台上

确认我将要编写的许多着色器的VS/FS指令限制非常重要

我正在寻找以下芯片组的VS/FS指令限制。 Nvidia Tegra 2- 肾上腺素205/220-
PowerVR SGX系列-

以下是按着色器版本比较的功能:


这适用于HLSL,但相同的数字应适用于GLSL等效版本。我知道这并不能回答您提到的特定芯片组,但您应该能够对照这些功能交叉引用其支持的着色器版本。

您所说的“指令限制”是什么意思?着色器可以任意复杂,但显然,在着色器中执行的计算越重,其运行速度就越慢。制造商所能提供的只是最佳实践建议,可能还有着色器分析工具,因为在桌面或移动平台上,着色器指令和性能之间的交互非常复杂。@Brad Larson:不正确,单个指令槽的数量和执行指令的数量(带循环)对OpenGL的每一种风格都有限制,这取决于底层硬件的生成。不幸的是,ES着色语言只说“通过一致性测试”,不管这意味着什么。由于ES 2.0是按照GL 2.0建模的,您应该可以安全地假设至少有256个指令槽和65536条指令(可能更多)。@Damon-对不起,我可能夸大了一些事情,因为我知道的唯一限制是制服、属性、,等等。我想说的是,至少根据我的经验,在使用任何硬件着色器之前,着色器的复杂性会遇到实际的性能限制。移动着色器硬件的功能还不如我们在桌面上使用的那样强大,我已经看到片段着色器的帧渲染时间超过1秒,在PowerVR系列上仅消耗20-50个GPU周期。将桌面着色器移植到移动设备可能需要一些工作。我想知道如何确定计数着色器程序指令。您可以使用诸如Adreno profiler之类的探查器来分析正在使用的着色器,并输出指令计数等元信息。