2010-03-29 9 views
5

Próbuję użyć shaderów z trywialną geometrią, ale po uruchomieniu w Shader Builder na laptopie z GMA X3100 to się cofa i używa renderowania programowego. Zgodnie z this document GMA X3100 obsługuje EXT_geometry_shader4.Czy moduły cieniujące geometrii GLSL działają na GMA X3100 pod OSX

Dane wejściowe to POINTS, a dane wyjściowe to LINE_STRIP.

Co będzie wymagane, aby ją uruchomić na GPU (jeśli to możliwe)

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

Jesteś pewien, że jesteś na OSX> = 10,5? Wygląda na to, że EXT_geometry_shader4 nie jest obsługiwane w wersji 1.4 i starszych. – genpfault

+0

Tak, jestem na 10.6.2. – GameFreak

Odpowiedz

1

Znalazłem ten OpenGL Extensions Viewer narzędzie naprawdę pomocny w tropieniu tego rodzaju problemów. Z pewnością pozwoli ci to potwierdzić roszczenia Apple. To powiedziawszy, wikipedia states, że oficjalna obsługa GLSL dla shaderów geometrii jest technicznie opcją OpenGL 3.2.

Czy ktoś wie, czy implementacja EXT_geometry_shader4 obsługuje składnię GLSL, czy też wymaga określonego sprzętu lub konkretnego sterownika?

0

Co ciekawe, słyszałem, że twierdzenia firmy Intel dotyczące zgodności z tymi zintegrowanymi układami GPU są czasami zawyżone lub po prostu nieprawdziwe. Wygląda na to, że X3100 obsługuje tylko OpenGL 1.4 i poniżej (a przynajmniej słyszałem, weź to z przymrużeniem oka, ponieważ nie mogę tego potwierdzić).

2

Z dokumentów, do których link jest dołączony, z pewnością wydaje się, że powinien być obsługiwany.

można spróbować

int hasGEOM = isExtensionSupported("EXT_geometry_shader4");

Jeśli zwróci twierdząca może masz inny problem, zatrzymując go z pracy.

Również zgodnie z GLSL Spec (1.20.8) „dłuższy zachowanie musi najpierw zostać włączona. dyrektyw kontrolować zachowanie kompilatora względem rozszerzeń są zadeklarowane z dyrektywą #extension”

I nie widzi użyć tej dyrektywy w kodzie więc mogę zaproponować

#extension GL_EXT_geometry_shader4 : enable

na górnej części bloku kodu shader.

-2

Na moim laptopie HP, z procesorem Intel x3100 przy użyciu sterowników Windows 7 x64 (w wersji 8.15.10.1930 (9-23-2009)) bezpośrednio ze strony internetowej firmy Intel, rozszerzenie "EXT_geometry_shader4" (lub dowolna jego odmiana) jest Nieobsługiwany. Potwierdziłem to programowo i używając narzędzia "GPU Caps Viewer" (które zawiera listę wykrytych obsługiwanych rozszerzeń, wśród innych przydatnych rzeczy). Ponieważ system Windows zazwyczaj jest głównym przedmiotem rozwoju sterowników od dowolnego dostawcy, jest mało prawdopodobne, że sterownik OSX jest lepszy i może w rzeczywistości mieć jeszcze mniej obsługiwanych rozszerzeń.

Powiązane problemy