You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Hi, this was a good read and interesting to see. One thing that might be interesting reading about is https://www.khronos.org/blog/vulkan-subgroup-tutorial, it basically allows to get rid of the atomicOr and barrier. Since you're executing 1 warp (32 threads), you can exchange it using subgroupOr (GL_KHR_shader_subgroup_arithmetic). Basically uint x = subgroupOr(result << gl_LocalInvocationIndex) in https://github.com/diharaw/HybridRendering/blob/master/src/shaders/ao/ao_ray_trace.comp#L120 and also the shadow pass from what I've read. I'm not sure if this is already done by the driver or compiler, but it might be interesting to check out anyways (if this wasn't done for reducing the extensions required to run the sample).
The text was updated successfully, but these errors were encountered:
Hi, this was a good read and interesting to see. One thing that might be interesting reading about is https://www.khronos.org/blog/vulkan-subgroup-tutorial, it basically allows to get rid of the atomicOr and barrier. Since you're executing 1 warp (32 threads), you can exchange it using subgroupOr (GL_KHR_shader_subgroup_arithmetic). Basically uint x = subgroupOr(result << gl_LocalInvocationIndex) in https://github.com/diharaw/HybridRendering/blob/master/src/shaders/ao/ao_ray_trace.comp#L120 and also the shadow pass from what I've read. I'm not sure if this is already done by the driver or compiler, but it might be interesting to check out anyways (if this wasn't done for reducing the extensions required to run the sample).
The text was updated successfully, but these errors were encountered: