균일 버퍼 업데이트를 동기화 :이()vkCmdPipelineBarrier라고위한 VULKAN에서의 난 (간체) 다음과 같은 코드를 가정 해 봅시다 금속
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");
이 메커니즘이 있습니다. 그러나, 나는 금속에서 비슷한 것을 발견 할 수 없었다. (MTLFence이 후보자이지만 다른 종류의 것들에도 사용된다.)
제 질문은이 버퍼 업데이트를 동기화하는 방법입니다.
(PS 현재의 내 생각은 버퍼에 대한 수정을 추적하고 다른 위치로 "초 균일 한 데이터"를 복사하는 것입니다 .:하지만 강력한 방법으로 구현하기가 다소 복잡 할 것이다)
그게 내가 두려웠 던 이유입니다 ... 어쨌든 고마워요. (ps : 며칠 동안 질문을 공개합니다.) – Asylum