gl_PointSize 在 Nvidia Shield 上无法正常工作

gl_PointSize not working properly on Nvidia Shield

我注意到我无法在我的 OpenGL ES 3.0 android 应用程序中使用 gl_PointSize 更改顶点着色器中点的大小。最终我发现我必须启用 GL_PROGRAM_POINT_SIZE 即使这个枚举值没有在 gl 头文件中定义。所以我最终添加了 glEnable(0x8642);

现在一切正常,但这是一个错误吗?或者是否有我需要启用它的原因。我知道我需要在 Windows 中的兼容性上下文中执行此操作,但我认为在 Android 中我将使用纯 ES 3.0 上下文。也许我的 GL 上下文设置不正确?

这看起来像是一个错误。在完整 OpenGL 中使用 GL_PROGRAM_POINT_SIZE 启用的模式(默认情况下禁用)在 OpenGL ES 中始终处于活动状态,无法关闭。

我相信一些较新的 Shield 设备也支持完整的 OpenGL。我怀疑它们的底层驱动程序是共享的,并且在 运行 ES API.

时未调整此状态的设置