gpt4 book ai didi

Android glShaderBinary

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:38:30 40 4
gpt4 key购买 nike

类似于this question但对于 Android:

Android GLES20 支持一个方法glShaderBinary,它基于this gles documentation。将加载预编译的着色器二进制文件。但是,我无法找到任何方法来实际预编译 任何二进制文件。但是,当我使用参数名称 GLES20.GL_NUM_SHADER_BINARY_FORMATS 调用 GLES20.glGetIntegerv 时,它确实表明(至少在我正在测试的设备上)有一个可用的着色器二进制格式。我只是不知道如何实际使用它。

最佳答案

二进制着色器格式是特定于供应商的。对于每个不同的供应商,有不同的机制将着色器编译为二进制文件。因此,为了支持大多数 Android 设备,您需要为特定供应商离线编译着色器,或者在线编译(使用 GL_OES_get_program 二进制扩展),当然还需要提供 glsl 源作为后备。

以下是一些流行 GPU 供应商的 OpenGL ES 2.0 SDK 列表。它包括离线 GLSL 着色器编译器,或有关二进制 GLSL 着色器的文档:

ARM Mali 提供了 malisc 可执行文件,可以在主机上的命令行中编译着色器。

Qualcomm Adreno 实际上允许在运行时使用 glGetProgramBinaryOES 获取 GLSL 着色器的二进制文件,但不能离线使用。至少 Adreno SDK 中的文档是这样说的。

PowerVR SDK 还声明其 GPU 允许在运行时使用 glGetProgramBinaryOES 获取 GLSL 着色器的二进制文件。

glGetProgramBinaryOES 函数来自 GL_OES_get_program_binary扩展名。

关于Android glShaderBinary,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11007707/

40 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com