不支持 GL_ARB_sparse_texture

Posted

技术标签:

【中文标题】不支持 GL_ARB_sparse_texture【英文标题】:GL_ARB_sparse_texture not supported 【发布时间】:2015-05-07 20:13:24 【问题描述】:

我有这段代码可以检查是否支持GL_ARB_sparse_texture

GLint ExtensionCount = 0;
    glGetIntegerv(GL_NUM_EXTENSIONS, &ExtensionCount);
    for (GLint i = 0; i < ExtensionCount; ++i)
        if (std::string((char const*)glGetStringi(GL_EXTENSIONS, i)) == std::string("GL_ARB_sparse_texture"))
            std::cout << "supported" << std::endl;
        

它打印出它是受支持的。问题是我的着色器说它不是:

#version 450 core
#extension GL_ARB_sparse_texture : require

输出:

我在 Windows 8.1 上安装了带有 350.12 驱动程序的 GTX 660Ti。

我做错了什么?

【问题讨论】:

The ARB_sparse_texture spec 看起来不像是扩展 GLSL。 【参考方案1】:

正如 genpfault 在评论中所说,只有为 GLSL 语言添加功能的扩展才需要在着色器中使用 #extension 指令手动启用。由于 GL_ARB_sparse_texture 没有添加 GLSL 功能,因此您无需在着色器中显式启用它 - 使用 glGetIntegerv 检查支持就足够了。

如果扩展修改了 GLSL 规范(如ARB_shader_subroutine),则在扩展规范中提及。

【讨论】:

以上是关于不支持 GL_ARB_sparse_texture的主要内容,如果未能解决你的问题,请参考以下文章

为啥我配置的PHP5不支持MySQL

为啥我配置的PHP5不支持MySQL

为啥chrome还不支持断点续传

不支持的硬件是啥情况

不支持的 NSSortDescriptor(不支持比较器块)

javascript对象不支持的属性或方法