티스토리 뷰

Game/Graphics

Compute Shader memory sync

newpolaris 2018. 2. 12. 13:18

Specular IBL 최적화 도중 mipLevel을 cache 하도록 만들었는데

위와 같은 직각 박스가 나타 났다.

이상한 것이 0 mip level 0을 생성하게 하면 나타나지 않고,

항상 mip level 1에서만 발생했다.

위치는 항상 달랐다.

문제는, memoryBarrierShared 를 하나만 써서 그럼.

OpenGL은 2개가 필요하다

https://armkeil.blob.core.windows.net/developer/Files/pdf/graphics-and-multimedia/4-compute_shaders.pdf

// Ensure shared memory writes are visible to work group
memoryBarrierShared();

// Ensure all threads in work group   
// have executed statements above
barrier();

ES와 OPENGL 이랑 다르다?

https://stackoverflow.com/questions/39393560/glsl-memorybarriershared-usefulness

유사 현상

https://stackoverflow.com/questions/17430443/why-does-barrier-synchronize-shared-memory-when-memorybarrier-doesnt

'Game > Graphics' 카테고리의 다른 글

IBL (5) specular optimize 2  (0) 2018.02.12
Light Probe Interpolation  (0) 2018.02.12
IBL (4) specular optimization  (0) 2018.02.10
D,G,F  (0) 2018.01.29
Roughness and metalic  (0) 2018.01.25
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크