に均一なバッファの更新を同期させます。このためのメカニズムがあるバルカンでのは、私は、次のコード(簡体字)を持っていると仮定しましょうメタル
id<MTLBuffer> uniforms = ...;
MTLRenderCommandEncoder encoder = ...;
[uniforms contents] = some_data;
[encoder setVertexbuffer: uniforms ...];
DrawSomethingWithShader("myshader");
[uniforms contents] = some_other_data; // WRONG! overwrites previous draw call's uniforms
[encoder setVertexbuffer: uniforms ...];
DrawSomethingElseWithShader("myshader");
はvkCmdPipelineBarrier()と呼ばれます。しかし、私は金属の中で何か類似したものを見つけることができませんでした(MTLFenceが候補ですが、他の種類のものに使用されているようです)。
私の質問は、どのようにこのバッファの更新を同期するのですか?
(PS私の現在の考えは、バッファへの変更を追跡し、別の場所に「第二の均一なデータを」コピーすることであるが、堅牢な方法で実装するのではなく、複雑になり.:)
これは私が恐れていたことです...とにかくありがとう。 (ps:質問を数日間開いたままにしておきます) – Asylum