我想知道memoryBarrierShared的用處。glsl memoryBarrierShared用處
事實上,當我在尋找屏障功能的文檔:我讀:
對於計算着色器屏障的任何給定的靜態實例,一個工作組內的所有調用必須進入它之前的任何有允許繼續超越它。這可以確保在一個給定的屏障靜態實例之前,通過一次調用寫入的值可以在調用相同的靜態屏障實例後由其他調用安全地讀取。由於調用可能會在這些屏障調用之間以未定義的順序執行,因此在許多情況下,每個頂點或每個補丁輸出變量或任何共享變量的值都將不確定。
所以,如果我們可以安全地使用屏障後讀取值,爲什麼我們看到在一些代碼
memoryBarrierShared();
barrier();
或有毛病像
barrier();
memoryBarrierShared();
所以,我的問題是:什麼是memoryBarrier {Shared,...}的目的,如果使用障礙足夠了嗎?
對於memoryBarrierBuffer /圖片我可以理解,如果我們使用多級,但共享,我沒有任何想法...