問題タブ [compute-shader]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - 「GL_INVALID_VALUE エラーが発生しました。」ユニフォームブロックを1つだけバインドすることで
ユニフォーム バッファ オブジェクトを複数のシェーダにバインドする際に問題があります。
次のコードの実行:
エラーメッセージが発生します
シェーダー プログラムのタイプは QOpenGLShaderProgram です。これらのシェーダー プログラムでは、頂点シェーダー、ジオメトリ シェーダー、フラグメント シェーダー、計算シェーダーを使用します。
の値GL_MAX_{VERTEX, FRAGMENT, GEOMETRY}_UNIFORM_BLOCKS
は 14 です。 の出力はindex
、4294967295 のプログラムを除いて、各プログラム 0 です。
opengl - CPU の SIMD でコンピュート シェーダーを実行する
opencl ライブラリと intel または amd opencl cpu ドライバーを使用すると、cpu と gpu の simd でコードを実行でき、非常に優れたパフォーマンスが得られます。CPU の simd で Compute Shader (GL または DX) を実行する方法はありますか?
c++ - 計算シェーダーの時間パフォーマンスを測定する方法は?
計算シェーダーの時間を測定する必要があります。しかしもちろん、これは些細なことではありません。OpenGL Wiki - Performance I gotから、シェーダー呼び出しの前後に glFinish() を使用すると便利です。しかし、彼らはそれを使うのはあまり良くないとも言います. シェーダーの時間を測定する良い可能性はありますか? いずれにせよ、計算シェーダーの時間を測定する可能性はありますか?
私のコードは次のようになります。
glFinish()
位置に挿入し、(1)
でタイマーを開始し、 で(2)
停止する必要があると思い(3)
ます。しかし、それが本当に機能し、正しいタイミング結果が生成されるかどうかはわかりません。参照ではレンダリングについて話していて、計算シェーダーはレンダリングではないからです。
OpenGL Timer_Queryも存在しますが、それがどのように機能するかはわかりませんし、それを使用するのが役立つかどうかもわかりません。これは私にとって初めてのことであり、現時点で完全に理解しているかどうかはわかりません。
ここからの回答によると、コードの一部を正確に測定することはほとんど不可能です。最良の方法は、フレームのレンダリング時間を測定することですが、私の目的には、フレームのレンダリング時間の計算シェーダー部分だけが必要です。
それを行うための最良の代替手段は何だと思いますか? フレーム全体のレンダリング時間を測定して使用するだけですか? それとも、他の測定方法でより良い体験をしましたか?
opengl - 計算シェーダーでの画像のアトミック加算
次の計算シェーダーがあります。
それは私にこのエラーを与えます:
0(12) : error C1317: qualified actual parameter #1 cannot be converted to less qualified parameter ("im")
OpenGL wikiによると、私が間違っていることを見つけることができません
opengl - 計算シェーダーでの image2DArray への書き込み
GL_TEXTURE_2D_ARRAY
withのさまざまなレイヤーに書き込みたいコンピューティング シェーダーがありますimageStore
が、機能しません。
テクスチャを初期化するために使用するコードは次のとおりです。
シェーダー呼び出しを計算します (各フレームで呼び出されます):
計算シェーダー:
計算シェーダーは何もしていないようです。ただし、フラグメント シェーダーでテクスチャのすべてのレイヤーにアクセスできます。
unity3d - 重い計算にシェーダーを使用する
ネット上のほぼすべてのチュートリアルで、さまざまなテクスチャや歪んだビューのシェーダーを教えています。でも他の用途に使いたい。各フレームには、約 1000 個のオブジェクトがあり、それぞれについて以下の計算を行います。
しかし問題は、それをシェーダーとして実装する方法がわからないことです! 計算シェーダーにある必要があることはわかっていますが、非常に単純な例が見つかりませんでした。与えられた入力配列に対してこの単純な計算を行う方法を教えていただければ幸いです。
ありがとうございました。