GLSL: о связном классификаторе - PullRequest
2 голосов
/ 28 мая 2019

Я не совсем понял, как классификатор coherent и атомарные операции работают вместе.

Я выполняю некоторую операцию накопления в том же месте SSBO с этим кодом:

uint prevValue, newValue;
uint readValue = ssbo[index];
do
{
    prevValue = readValue;
    newValue = F(readValue);
}
while((readValue = atomicCompSwap(ssbo[index], prevValue, newValue)) != prevValue);

Этот код прекрасно работает для меня, но все же, нужно ли мне в этом случае объявлять SSBO (или изображение) с квалификатором coherent?

И нужно ли мне использовать coherent в случае, когда я звоню только atomicAdd?

Когда именно мне нужно использовать квалификатор coherent? Нужно ли использовать его только в случае прямой записи : ssbo[index] = value;?

...