2

我使用 OpenGL ES 3.0 制作了一个图像处理应用程序。图像尺寸为 830X640。所以我使用 glViewport 仅在 830X640 区域执行 GPU 处理。休闲是我的代码的一部分。

glViewport(0, 0, 830, 640);
glUseProgram(mProgram);
glBindVertexArray(mVBState);

glActiveTexture(GL_TEXTURE0);
glBindTexture(GL_TEXTURE_2D, Texture_EE_output);
glUniform1i(h_sampler5, 0);

GLsync syncFence5 = glFenceSync(GL_SYNC_GPU_COMMANDS_COMPLETE, 0);
glDrawArraysInstanced(GL_TRIANGLE_STRIP, 0, 4, 1);
glDeleteSync(syncFence5);

我在 Galaxy S5 (Adreno 420, QHD )、Nexus 7 (Adreno 320, FHD) 和 Nexus 5 (Adreno 330, FHD) 上测量了我的应用程序的 FPS。

结果是 Adreno 330 (59 Hz) > Adreno 320 (45Hz) > Adreno 420 (35 HZ)。正如我预期的那样,Adreno 330 的性能优于 Adreno 320。但 Adreno 420 的性能低于 Adreno 330 和 andreno 420。

所以我怀疑显示器的分辨率会影响FPS。另一方面,我已经使用 glViewport 来避免这种情况发生。

使用 glViewport 部分渲染我错了吗?或者还有其他我从未注意到的问题?

感谢您的阅读。

4

0 回答 0