0
同步均勻緩衝器更新假設我有以下代碼(簡化):在金屬
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