我相信openGL ES 3.2
(以及3.1
+ Android扩展程序包AEP
)支持它,但我听说过某些GPU以前的版本(特别是3.1
没有AEP
)也有此特定扩展名。
我的问题是:如何判断哪些GPU具有该特定扩展,使其能够呈现浮动纹理?
我搜索过制造商网站,但是找不到这些信息(也许我找错了地方?)
我也有点警惕,我听说有一家制造商在他们的驱动程序中添加了这种能力......但我想知道这是否是一种软件解决方案(因此速度慢得多,无法达到目的)。
除此之外,当然可以在您自己的着色器中进行编码解码 - 但是这不会产生很大的开销吗?或者,也许没关系?
[顺便说一句:我问的原因是我想购买一部手机来玩移动GPU上的通用计算,而且最新的手机要贵得多]
非常感谢您的帮助!几个月来我一直试图找到这个......
答案 0 :(得分:1)
OpenGL ES 3.2中必须支持浮点渲染。 OpenGL ES 3.0 / 3.1 / 3.1 + AEP需要不。
对于早期的实施,您希望使用展示EXT_color_buffer_half_float
和/或EXT_color_buffer_float
扩展名的平台。
请注意,由于额外的带宽,即使在硬件本身支持时,浮点渲染也相对昂贵。对于更高的动态范围,如果可以,请考虑使用类似RGB10_A2
的内容,它更小更快(并且支持3.0内核)。