[Mesa-dev] [PATCH 1/3] radv: Use for_each_bit in the descriptor set flush.

Bas Nieuwenhuizen bas at basnieuwenhuizen.nl
Sun Sep 17 10:59:23 UTC 2017


Since most games use only a few, iterating through all of them is
a waste. Simplifies the code too.
---
 src/amd/vulkan/radv_cmd_buffer.c | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)

diff --git a/src/amd/vulkan/radv_cmd_buffer.c b/src/amd/vulkan/radv_cmd_buffer.c
index 4ba552ebcbc..e0a6724c20a 100644
--- a/src/amd/vulkan/radv_cmd_buffer.c
+++ b/src/amd/vulkan/radv_cmd_buffer.c
@@ -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;
-- 
2.14.1



More information about the mesa-dev mailing list