If a `buffer` is `coherent`, is there any difference between reading a field or doing `atomicAdd(field, 0)`?
问题 This is with Vulkan semantics, if it makes any difference. Assume the following: layout(...) coherent buffer B { uint field; } b; Say the field is being modified by other invocations of the same shader (or a derived shader) through atomic*() funcions. If a shader invocation wants to perform an atomic read from this field (with the same semantics as atomicCounter() in GLES, had this been an atomic_uint instead), is there any difference between the following two (other than obviously that one