问题标签 [powervr-sgx]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
ios - 我可以在组合器中引用除先前和当前之外的纹理单元吗?
例如,PowerVR SGX 平台支持 8 个纹理单元(TEXTURE0...TEXTURE7),无需着色器即可直接访问。
使用纹理组合器,我可以访问前一个纹理阶段(GL_PREVIOUS)或当前绑定的纹理(GL_TEXTURE)等的值。有没有办法从前一个阶段之前的任何阶段访问任何内容?
例如,如果我想设置多个独立的处理线程,然后将最终结果组合起来输出,这可能吗?还是我仅限于将数据n
流向n+1
?
android - 如何确定 OpenGL ES 2 中的纹理上传是否成功?
在过去的常规 OpenGL 中,确定纹理上传是否成功是相当容易的——在调用 glTexImage2D 之后,您可以使用带有 GL_TEXTURE_WIDTH 和 GL_TEXTURE_HEIGHT 作为参数的 glGetTexLevelParameteriv。然而,GLES 似乎不允许这样做,据我所知,它没有机制来确定纹理是否实际上已成功提供给卡(例如,glGetError 仅针对不会成功的事情设置,与没有成功的事情相反)。
我正在处理的应用程序总是跨越是否有足够的 VRAM 可用(并且经常有很多动态分配的 FBO 等飞来飞去,使事情进一步复杂化),如果重要的纹理上传失败,我需要知道我是否需要清除不重要的纹理并重试。
android - FBO 上的最大基元数
每帧在 FBO 上渲染的图元的最大数量是否有限制?如果是这样,是否有任何 glGet 或任何其他 API 来找出每帧允许的最大原语数?
我使用 FBO 将一组三角形绘制到纹理中。当三角形的数量超过某个限制时,该帧的渲染将失败。由于我的代码对不同的卡表现不同,我相信它依赖于显卡。
它适用于 PowerVR SGX 540 的 Galaxy 选项卡,而不适用于 PowerVR SGX 530 的 Milestone。
编辑:我发现在这个线程中讨论了同样的问题 http://www.khronos.org/message_boards/viewtopic.php?f=4&t=1276 只是不是时间滞后,应用程序继续进行而不在我的案子。请查看线程以获取更多详细信息。谁能让我知道这个问题的答案?
java - PowerVR 的优缺点是什么?
我的游戏引擎最近增加了对PowerVR(PVR)的支持,在谷歌和维基百科上搜索了一下,我只知道PVR的定义,但我不知道它是干什么用的,它的优缺点是什么。我正在为 Android 开发游戏,我应该使用什么,PNG 还是 PVR?
ios - 使用 PVRTexTool 在 PC 上构建纹理数据以在 iOS OpenGL ES 上使用
Apple 提供了 texturetool 工具来将纹理烹饪成 PowerVR 压缩纹理格式。我的工具链在 Windows 上运行,所以我想在 Windows PC 上创建这个纹理数据。看起来这很简单,因为 Imagination 提供了一个在 Windows 上运行的工具和 SDK。所以我已经下载了 PVRTexTool,并将在我现有的内部纹理烹饪工具中使用它。有没有人试过这个?我想知道这与 iOS OpenGL ES 实现之间是否存在任何已知的不兼容性。
glsl - 什么是 OpenGL ES 2.0 中的 swizzling?(特别是 PowerVR SGX。)
PowerVR 说
Swizzling lowp 向量的组件是昂贵的,应该避免。
究竟什么是调酒?
但是vec3(color.b, color.r, color.g)
,或者vec3(color)
,当颜色是 vec4 时呢?
访问或修改单个组件是否构成混搭?我真的不这么认为,但如果不是,那么您可以通过手动执行更多的分配操作来解决 swizzling。我这样做没有问题,但对我来说这似乎很神奇,如果你可以通过编写没有 swizzle 符号的代码以更快的速度获得相同的效果。
android - PowerVR SGX GPU 的 OpenGL ES 问题
我有一个 OpenGL 动态壁纸,可以在除 PowerVR SGX 系列之外的所有手机上正常工作。这包括几乎所有三星手机和摩托罗拉 Droid 系列。壁纸不过是 PowerVR GPU 手机上的黑屏。我已经绞尽脑汁想解决这个问题一个星期了,但没有运气。
不同 GPU 之间的一个区别是它们的纹理压缩。我在这方面所做的一些事情是将纹理图像更改为 256x256 的正方形。将其从 8 位更改为 16 位 rgba,甚至尝试索引。
我列出了 PowerVR 可用的所有扩展以及 Adreno 可用的扩展。可用扩展似乎有很多差异,但我不知道哪些功能与哪些扩展一起使用(尽管我可以猜测)。以下是我使用的函数列表:
- glLightfv
- glMaterilfv
- glDepthFunc
- glEnableClientState
- glViewport
- glMatrixMode
- glLoadIdentity
- 胶透视
- glclearcolor
- 清晰的
- glTranslatef
- glRotatef
- gl顶点指针
- glTexCoordPointer
- glColor4f
- glNormal3f
- glDrawArrays
- glTex 参数
我正在使用 Robert Green 的 GlWallPaperService 并在尝试在设备上绘制带纹理的三角形失败时尝试了此解决方案,但模拟器可以工作。为什么?. 有谁知道为什么 PowerVR 芯片让我如此艰难,我能做些什么?
qt - Qt PowerVR 驱动鼠标指针不可用
我不是想在这里发送垃圾邮件,只是想更具体地说明 Qt 鼠标指针不适用于 PowerVR 的问题。所以我希望有人能回答我的问题。
Qt PowerVR 驱动程序需要使用 QT_NO_QWS_CURSOR 编译,这会停止使用鼠标但仍为触摸屏留出空间。
我只是想知道为什么需要这样做是因为硬件限制还是只是一个不完整的驱动程序。
非常感谢您提前提供的协助。
opengl-es - OpenGL ES 渲染到用户空间内存
我需要在带有 PowerVR SGX 硬件的 ARM 设备上实现离屏渲染到纹理。
一切都完成了(使用了像素缓冲区和 OpenGL ES 2.0 API)。唯一未解决的问题是 glReadPixels
功能非常缓慢。
我不是 OpenGL ES 方面的专家,所以我问社区:是否可以将纹理直接渲染到用户空间内存中?或者可能有一些方法可以获得纹理内存区域的硬件地址?其他一些技术(EGL 扩展)?
我不需要一个通用的解决方案,只需要一个适用于 PowerVR 硬件的解决方案。
更新:有关“慢功能”的更多信息glReadPixels
。将 512x512 RGB 纹理数据复制到 CPU 的内存:
glReadPixels(0, 0, WIDTH, HEIGHT, GL_RGBA, GL_UNSIGNED_BYTE, &arr)
需要 210 毫秒,glReadPixels(0, 0, WIDTH, HEIGHT, GL_BGRA, GL_UNSIGNED_BYTE, &arr)
需要 24 毫秒(GL_BGRA
不是 glReadPixels 的标准,它是 PoverVR 扩展),memcpy(&arr, &arr2, WIDTH * HEIGHT * 4)
需要 5 毫秒
在纹理更大的情况下,差异也更大。
ios - pvrtextool cl 不生成标准头文件
我正在使用我今天下载的最新的 pvrtextoolCL。
问题是它产生的标题与苹果的 texturetool 或它的在线文档中的标题不同。如果我在 gui 工具中使用旧版保存,它可以工作,但我需要命令行工具的选项。
还有其他人有这个问题吗?我能做些什么来解决它?