我正在尝试使用简单的几何着色器,但是当在带有 GMA X3100 的笔记本电脑上的 Shader Builder 中运行时,它会退回并使用软件渲染。根据this document 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();
}
最佳答案
从您链接到它的文档看来,它肯定应该受到支持。
你可以试试int hasGEOM = isExtensionSupported("EXT_geometry_shader4");
如果它以肯定的方式返回,您可能会遇到另一个问题来阻止它工作。
同样根据 GLSL Spec (1.20.8) “必须首先启用任何扩展行为。
使用 #extension 指令声明用于控制编译器扩展行为的指令”
我没有看到您在代码中使用此指令,所以我可以建议#extension GL_EXT_geometry_shader4 : enable
在着色器代码块的顶部。
关于macos - GLSL几何着色器是否在OSX下的GMA X3100上工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2535617/