У меня есть вычислительный шейдер, который имитирует некоторую жидкость как частицу. Частицы считываются из буфера. Каждая частица обрабатывается в одном потоке. Во время выполнения потока одна частица перемещает свою УФ-позицию и добавляется к пикселю БПЛА с именем Water. Поэтому каждая нить оставляет след своего движения на текстуре Water.
_watTx[texID] += watAddition * cellArea.x;
Проблема в том, что существует множество движущихся частиц, и чаще всего их несколько в одном и том же texID
. Кажется, есть состояние гонки, так как каждый раз, когда я запускаю симуляцию, результаты немного отличаются. Есть ли способ обеспечить взаимное исключение, чтобы записи не происходили одновременно, а результаты становились предсказуемыми?