不支持 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。
我做错了什么?
【问题讨论】:
TheARB_sparse_texture
spec 看起来不像是扩展 GLSL。
【参考方案1】:
正如 genpfault 在评论中所说,只有为 GLSL 语言添加功能的扩展才需要在着色器中使用 #extension
指令手动启用。由于 GL_ARB_sparse_texture
没有添加 GLSL 功能,因此您无需在着色器中显式启用它 - 使用 glGetIntegerv
检查支持就足够了。
如果扩展修改了 GLSL 规范(如ARB_shader_subroutine),则在扩展规范中提及。
【讨论】:
以上是关于不支持 GL_ARB_sparse_texture的主要内容,如果未能解决你的问题,请参考以下文章