GLSLジオメトリシェーダーは、OSXのGMA X3100で動作しますか

geometry-shader glsl macos opengl
GLSLジオメトリシェーダーは、OSXのGMA X3100で動作しますか

単純なジオメトリシェーダーを使用しようとしていますが、GMA X3100を搭載したラップトップのShader Builderで実行すると、フォールバックしてソフトウェアレンダーが使用されます。 http://developer.apple.com/graphicsimaging/opengl/capabilities/index.html [このドキュメント]によれば、GMA X3100は `EXT_geometry_shader4`をサポートしています。

入力は「POINTS」で、出力は「LINE_STRIP」です。

GPUで実行するために必要なもの(if可能

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

  5  0


ベストアンサー

あなたがそれにリンクしているドキュメントから確かにそれはサポートされるべきであるように見えます。

あなたは試すことができます

int hasGEOM = isExtensionSupported(" EXT_geometry_shader4 ");

肯定で戻った場合、別の問題が発生して動作を停止している可能性があります。

また、GLSL仕様(1.20.8)によれば、「拡張動作は最初に有効にする必要があります。 拡張機能に関するコンパイラの動作を制御するディレクティブは、#extensionディレクティブで宣言されます。

あなたがあなたのコードでこのディレクティブを使用するのを見なかったので、私は提案することができます

#extension GL_EXT_geometry_shader4:有効化

シェーダーコードブロックの上部。

2


この種の問題を追跡する上で、このhttp://www.realtech-vr.com/glview/index.html[OpenGL Extensions Viewer]ツールが本当に役立つことがわかりました。 確かに、Appleの主張を確認することができます。 とは言っても、http://en.wikipedia.org/wiki/Geometry_shader [wikipedia]によれば、ジオメトリシェーダーの公式GLSLサポートは技術的にはOpenGL 3.2の機能です。

EXT_geometry_shader4実装がGLSL構文をサポートしているか、それともハードウェアまたはドライバー固有の形式が必要かどうかを知っていますか?

1


興味深いことに、これらの統合されたGPUに関するIntelの互換性の主張は、誇張されているか、単に虚偽であると聞きました。 どうやらX3100はOpenGL 1.4以下のみをサポートしているようです(または、聞いたことがあるのですが、これを確認することはできません。

0


HPラップトップでは、IntelのWebサイトから直接Windows 7 x64ドライバー(v8.15.10.1930(9-23-2009))を使用するIntel x3100で、拡張子「EXT_geometry_shader4」(またはそのバリエーション)はサポートされていません。 これをプログラムで確認し、ツールhttp://www.ozone3d.net/gpu_caps_viewer/[“GPU Caps Viewer “](検出されたサポートされている拡張機能などの有用なものをリストしています)を使用しました。 Windowsは、あらゆるベンダーのドライバー開発の主要な主題である傾向があるため、OSXドライバーの方が優れている可能性は低く、実際、サポートされていない拡張機能がある可能性があります。

-2


タイトルとURLをコピーしました