2010-03-29 6 views
5

Ich versuche, einen trivialen Geometrieshader zu verwenden, aber wenn er im Shader Builder auf einem Laptop mit einer GMA X3100 ausgeführt wird, fällt er zurück und verwendet die Software rendern. Gemäß this document unterstützt die GMA X3100 EXT_geometry_shader4.Funktionieren GLSL-Geometrieshader auf der GMA X3100 unter OSX

Der Eingang ist POINTS und der Ausgang ist LINE_STRIP.

Was zu bekommen die erforderlich wäre, um es auf der GPU (wenn möglich)

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

Sind Sie sicher, dass OSX> = 10.5 ist? Sieht so aus, als ob EXT_geometry_shader4 in 1.4 und darunter nicht unterstützt wird. – genpfault

+0

Ja, ich bin am 10.6.2. – GameFreak

Antwort

1

Ich habe festgestellt, diese OpenGL Extensions Viewer Werkzeug wirklich hilfreich beim Aufspüren dieser Art von Fragen zu laufen. Es wird Ihnen sicherlich erlauben, die Behauptungen von Apple zu bestätigen. Das heißt, wikipedia states diese offizielle GLSL-Unterstützung für Geometrieshader ist technisch eine OpenGL 3.2-Funktion.

Weiß jemand, ob die EXT_geometry_shader4 Implementierung die GLSL-Syntax unterstützt, oder benötigt sie ein bestimmtes Hardware- oder treiberspezifisches Format?

0

Interessanterweise habe ich gehört, dass die Kompatibilitätsansprüche von Intel in Bezug auf diese integrierten GPUs manchmal übertrieben oder einfach falsch sind. Anscheinend unterstützt der X3100 nur OpenGL 1.4 und niedriger (oder so habe ich gehört, nehmen Sie das mit einem Körnchen Salz, wie ich das nicht bestätigen kann).

2

Aus den Dokumenten, die Sie verlinken, scheint sicherlich, dass es unterstützt werden sollte.

könnten Sie

int hasGEOM = isExtensionSupported("EXT_geometry_shader4");

versuchen Wenn es in den affirmativen gibt möglicherweise ein anderes Problem, das es von der Arbeit haben zu stoppen.

Auch nach dem GLSL Spec (1.20.8) „Jeder muss erweiterten Verhalten zunächst aktiviert werden. Richtlinien das Verhalten des Compilers in Bezug auf Erweiterungen mit der #extension Richtlinie erklärt werden steuern“

I sehen Sie diese Anweisung nicht in Ihrem Code verwenden, so kann ich

#extension GL_EXT_geometry_shader4 : enable

an der Spitze des Shader-Code-Block vor.

-2

Auf meinem HP Laptop, mit einem Intel x3100 mit Windows 7 x64 Treibern (v8.15.10.1930 (9-23-2009)) direkt von Intels Website, ist die Erweiterung "EXT_geometry_shader4" (oder eine Variation davon) Nicht unterstützt. Ich habe dies programmgesteuert bestätigt und verwende das Tool "GPU Caps Viewer" (welches aufgelistete unterstützte Erweiterungen neben anderen nützlichen Dingen auflistet). Da Windows in der Regel das Hauptthema der Treiberentwicklung von jedem Hersteller ist, ist es unwahrscheinlich, dass der OSX-Treiber besser ist und sogar noch weniger unterstützte Erweiterungen hat.