radv: Use for_each_bit in the descriptor set flush.
authorBas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Sun, 17 Sep 2017 10:03:03 +0000 (12:03 +0200)
committerBas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Wed, 20 Sep 2017 20:04:25 +0000 (22:04 +0200)
Since most games use only a few, iterating through all of them is
a waste. Simplifies the code too.

Reviewed-by: Dave Airlie <airlied@redhat.com>
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
src/amd/vulkan/radv_cmd_buffer.c

index 0c3a5c6ffc2ab272af9a72cf0b9ebf79cbdca5d5..e6ed637e4facd317d1e6d648d1c02c038a40001e 100644 (file)
@@ -1598,9 +1598,7 @@ radv_flush_descriptors(struct radv_cmd_buffer *cmd_buffer,
                                                           cmd_buffer->cs,
                                                           MAX_SETS * MESA_SHADER_STAGES * 4);
 
-       for (i = 0; i < MAX_SETS; i++) {
-               if (!(cmd_buffer->state.descriptors_dirty & (1u << i)))
-                       continue;
+       for_each_bit(i, cmd_buffer->state.descriptors_dirty) {
                struct radv_descriptor_set *set = cmd_buffer->state.descriptors[i];
                if (!set)
                        continue;