GLSL几何着色器是否适用于OSX下的GMA X3100

时间:2010-03-29 03:16:46

标签: macos opengl glsl geometry-shader

我正在尝试使用一个简单的几何着色器,但是当在带有GMA X3100的笔记本电脑上的Shader Builder中运行时,它会退回并使用软件渲染。根据{{​​3}},GMA X3100支持EXT_geometry_shader4

输入为POINTS,输出为LINE_STRIP

让它在GPU上运行需要什么(,如果可能的话

uniform vec2 offset;

void main()
{
    gl_Position = gl_PositionIn[0];
    EmitVertex();
    gl_Position = gl_PositionIn[0] + vec4(offset.x,offset.y,0,0);
    EmitVertex();
    EndPrimitive();
}

4 个答案:

答案 0 :(得分:2)

从你链接到它的文档肯定会出现它应该得到支持。

你可以尝试

int hasGEOM = isExtensionSupported("EXT_geometry_shader4");

如果返回是肯定的,则可能还有另一个问题,即停止工作。

另外根据GLSL规范(1.20.8)“必须首先启用任何扩展行为。 使用#extension指令“

声明控制编译器关于扩展的行为的指令

我没有看到你在代码中使用此指令,所以我可以建议

#extension GL_EXT_geometry_shader4 : enable

在着色器代码块的顶部。

答案 1 :(得分:1)

我发现这个OpenGL Extensions Viewer工具确实有助于追踪这些问题。它肯定会让你确认Apple的说法。也就是说,wikipedia states官方GLSL对几何着色器的支持在技术上是一个OpenGL 3.2功能。

有人知道EXT_geometry_shader4实现是否支持GLSL语法,还是需要某些硬件或驱动程序特定格式?

答案 2 :(得分:0)

有趣的是,我听说英特尔对这些集成GPU的兼容性声明有时被夸大或只是错误。显然X3100只支持OpenGL 1.4及以下版本(或者我已经听过了,因此我无法确认这一点)。

答案 3 :(得分:-2)

在我的惠普笔记本电脑上,英特尔x3100使用Windows 7 x64驱动程序(v8.15.10.1930(9-23-2009))直接从英特尔网站上,扩展名“EXT_geometry_shader4”(或其任何变体)不是支持的。我已经以编程方式确认了这一点并使用工具"GPU Caps Viewer"(其中列出了检测到的受支持扩展,以及其他有用的内容)。由于Windows往往是来自任何供应商的驱动程序开发的主要主题,因此OSX驱动程序不太可能更好,实际上可能更少支持扩展。