5

些細なジオメトリシェーダーを使用しようとしていますが、GMAX3100を搭載したラップトップのShaderBuilderで実行すると、フォールバックしてソフトウェアレンダリングを使用します。このドキュメントによると、GMAX3100はをサポートしてい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();
}
4

4 に答える 4

2

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

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

int hasGEOM = isExtensionSupported("EXT_geometry_shader4");

それが肯定的に戻った場合、あなたはそれが機能するのを止める別の問題を抱えているかもしれません。

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

コードでこのディレクティブを使用しているのを見なかったので、提案できます

#extension GL_EXT_geometry_shader4 : enable

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

于 2010-10-22T01:32:03.963 に答える
1

このOpenGL Extensions Viewerツールは、この種の問題を追跡するのに非常に役立ちますそれは確かにあなたがAppleの主張を確認することを可能にします. そうは言っても、ウィキペディアは、ジオメトリ シェーダーの公式 GLSL サポートは技術的には OpenGL 3.2 の機能であると述べています。

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

于 2010-04-15T02:51:39.300 に答える
0

興味深いことに、これらの統合 GPU に関する Intel の互換性に関する主張は、誇張されているか、単に誤りであると聞いたことがあります。どうやら、X3100 は OpenGL 1.4 以下のみをサポートしているようです (または、私がこれを確認できないので、これを一粒の塩で受け取っていると聞いています)。

于 2010-06-15T22:42:37.353 に答える
-2

Intel の Web サイトから直接 Windows 7 x64 ドライバー (v8.15.10.1930 (9-23-2009)) を使用する Intel x3100 を搭載した HP ラップトップでは、拡張機能「EXT_geometry_shader4」(またはそのバリエーション) はサポートされていません。私はこれをプログラムで確認し、「GPU Caps Viewer」ツール(検出されたサポートされている拡張機能などの便利なものをリストします) を使用して確認しました。Windows は、どのベンダーからのドライバー開発の主要な対象でもある傾向があるため、OSX ドライバーが優れているとは考えにくく、実際には、サポートされている拡張機能がさらに少ない可能性があります。

于 2012-07-19T06:04:46.940 に答える