計算シェーダでいくつかの作業を行っていますが、2つの呼び出しがimageStore
を使用してテクスチャ上の同じ場所に書き込むと、アクセス後にテクスチャがレンダリングされたときにちらつき現象が発生する速度は保証されていないので、ある呼び出しが最後に到着し、時にはもう一方の呼び出しが最後に到着することもあります。私は最終的な色の値が、例えば赤の値が最も高い値になるようにしたいと思います。シェイダー内でそれを判断する方法はありますか?計算シャドウ呼び出しが競合する
私はいくつかの混乱があったと思いますので、私はちょっとした情報を提供します。私はGL_UNSIGNED_BYTE
としてCPUにバインドされてきたデータで働いている、と私はそれがこの段階で
layout (r8, binding = 0) uniform image3D visualTexture;
を使用してアクセスし、私は単純にちらつきを停止する、すなわち、いくつかのシェーダ呼び出しがかかります他のものより優先されます。最高の価値は理想的ですが、私はこれを速くしたいと思います。
アトミック操作を使用できますか? またはおそらく障壁も役に立ちます –
私はそれについて考えましたが、私の問題は書き込み操作が1つしかないということです。書き込みは原子的に行うことはできないと思います。 – irishMTS
私は部分的に正しいと思いました。アトミック操作は32ビットイメージでのみ機能しますが、使用しているイメージは8ビットです。これは問題になりますか? – irishMTS