Source

Thread

1/ @KostasAAA

When using arrays of resources/bindless, it’s worth paying attention to index divergence. Even if using thread divergent indices, the compiler will use the index from the first active thread to access a resource, for all threads in the wave, which can cause hard to find bugs 1/3

2/ @KostasAAA

This happens even when compiler knows that the index varies per thread. To fix this you need to use the NonUniformResourceIndex qualifier. The compiler will then add a waterfall loop to batch wave threads by resource index and ensure that each thread accesses the correct one. 2/3

3/ @KostasAAA

This can have a performance impact though, with the worst case being each thread indexing a different resource, both in terms of thread coherence (looping over each thread individually) and texture cache. For more info https://www.asawicki.info/news_1734_which_values_are_scalar_in_a_shader 3/3

Branches: 2024-04-24-jaap_null-its-a-silly-thing-on-many-levels-the-entire-arch, 2024-04-24-matiasgoldberg-whats-the-value-of

0 items under this folder.