2010-03-29 13 views
5

? Estoy tratando de usar un sombreador de geometría trivial pero cuando se ejecuta en Shader Builder en un equipo portátil con un GMA X3100 retrocede y usa el software renderizado. Según this document, el GMA X3100 es compatible con EXT_geometry_shader4.¿Funcionan los sombreadores de geometría GLSL en el GMA X3100 bajo OSX

La entrada es POINTS y la salida es LINE_STRIP.

¿Qué sería necesario para conseguir que se ejecute en la GPU (si es posible )

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(); 
} 
+0

¿Seguro que estás en OSX> = 10.5? Parece que EXT_geometry_shader4 no es compatible con la versión 1.4 y siguientes. – genpfault

+0

Sí, estoy en 10.6.2. – GameFreak

Respuesta

1

he encontrado este OpenGL Extensions Viewer herramienta realmente útil en la búsqueda de este tipo de cuestiones. Sin duda le permitirá confirmar los reclamos de Apple. Dicho esto, wikipedia states que el soporte oficial de GLSL para sombreadores de geometría es técnicamente una característica de OpenGL 3.2.

¿Alguien sabe si la implementación EXT_geometry_shader4 admite la sintaxis GLSL o requiere algún tipo de hardware o formato específico del controlador?

0

Curiosamente, he oído que las afirmaciones de compatibilidad de Intel con respecto a estas GPU integradas a veces son exageradas o simplemente falsas. Aparentemente, el X3100 solo es compatible con OpenGL 1.4 y versiones anteriores (o eso he escuchado, tómenlo con un grano de sal, ya que no puedo confirmarlo).

2

De los documentos que enlazas parece que debería ser compatible.

Usted podría intentar

int hasGEOM = isExtensionSupported("EXT_geometry_shader4");

Si devuelve en forma afirmativa que pueda tener otro problema evitando que se trabaja.

También de acuerdo con la GLSL Spec (1.20.8) "Cualquier comportamiento extendida primero debe estar habilitado. directivas para controlar el comportamiento del compilador con respecto a las extensiones se declaran con la directiva #extension"

I no vi utiliza esta directiva en su código para que pueda sugerir

#extension GL_EXT_geometry_shader4 : enable

en la parte superior de su bloque de código de sombreado.

-2

En mi computadora portátil HP, con un Intel x3100 con Windows 7 controladores x64 (v8.15.10.1930 (9-23-2009)) directamente desde el sitio web de Intel, la extensión "EXT_geometry_shader4" (o cualquier variación de la misma) es No soportado. Lo he confirmado mediante programación y utilizando la herramienta "GPU Caps Viewer" (que enumera las extensiones admitidas detectadas, entre otras cosas útiles). Dado que Windows tiende a ser el tema principal del desarrollo de controladores de cualquier proveedor, es poco probable que el controlador OSX sea mejor, y de hecho puede tener incluso menos extensiones compatibles.

Cuestiones relacionadas