首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >三星Galaxy SII上的glGenerateMipmap()非常慢(Mali 400MP)

三星Galaxy SII上的glGenerateMipmap()非常慢(Mali 400MP)
EN

Stack Overflow用户
提问于 2012-02-15 23:54:18
回答 1查看 1.4K关注 0票数 1

我目前正在做一些GPGPU的三星Galaxy SII (ARM马里-400MP)与Android NDK和OpenGL ES 2.0。为此,我需要从通过FBO渲染到的纹理生成mipmap。不幸的是,glGenerateMipmap()在设备上似乎非常慢。为512x512 RGBA8888纹理生成mipmap大约需要90毫秒。由于我也在其他Android设备上尝试了相同的代码,这个功能的运行速度要快得多(大约2毫秒),这种速度的减慢真的让我感到困惑。我是不是做错了什么或者遗漏了什么?有没有人能提供这种情况下的示例代码,可以在带有ARM马里GPU的设备上工作?

以下是我的代码的相关部分:

代码语言:javascript
复制
glGenTextures(1, &texId); 
glActiveTexture(GL_TEXTURE0); 
glBindTexture(GL_TEXTURE_2D, texId); 

// Allocate graphics memory.
glTexImage2D(GL_TEXTURE_2D, 0, format, cols, rows, 0, format, type, NULL); 
// Allocate memory for mipmap. 
glGenerateMipmap(GL_TEXTURE_2D); 

glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST); 
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR_MIPMAP_LINEAR);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE); 
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE); 

// Create off-screen framebuffer object and attach the texture to it. 
glGenFramebuffers(1, &fboId); 
glBindFramebuffer(GL_FRAMEBUFFER, fboId); 
glFramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D, texId, 0);

// Now render to that texture
...

// Generate MIP map.
glBindTexture(GL_TEXTURE_2D, texId);
glGenerateMipmap(GL_TEXTURE_2D);
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-11-26 21:56:11

此问题已由ARM在驱动程序中修复:http://forums.arm.com/index.php?/topic/15727-glgeneratemipmap-very-slow-on-samsung-galaxy-sii

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9296619

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档