Module: Mesa
Branch: master
Commit: 06ec216d191e160494dd0a922ab0395418a78402
URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=06ec216d191e160494dd0a922ab0395418a78402

Author: Corbin Simpson <[email protected]>
Date:   Fri Nov 20 14:10:59 2009 -0800

r300g: Clean up bitcounting function.

I didn't see this in u_math; surely somebody else has this wheel
reinvented elsewhere.

---

 src/gallium/drivers/r300/r300_emit.c |   15 ++++++++++-----
 1 files changed, 10 insertions(+), 5 deletions(-)

diff --git a/src/gallium/drivers/r300/r300_emit.c 
b/src/gallium/drivers/r300/r300_emit.c
index 4cd5074..c50c989 100644
--- a/src/gallium/drivers/r300/r300_emit.c
+++ b/src/gallium/drivers/r300/r300_emit.c
@@ -690,14 +690,19 @@ void r300_emit_vertex_format_state(struct r300_context* 
r300)
     END_CS;
 }
 
-/* XXX This should probably go to util ... */
+/* XXX This should go to util ... */
 /* Return the number of bits set in the given number. */
 static unsigned bitcount(unsigned n)
 {
-    unsigned bits;
-    for (bits = 0; n > 0; n = n >> 1) {
-        bits += n & 1;
+    unsigned bits = 0;
+
+    while (n) {
+        if (n & 1) {
+            bits++;
+        }
+        n >>= 1;
     }
+
     return bits;
 }
 
@@ -714,7 +719,7 @@ void r300_emit_vertex_program_code(struct r300_context* 
r300,
     int temp_count = MAX2(code->num_temporaries, 1);
     int pvs_num_slots = MIN3(vtx_mem_size / input_count,
                              vtx_mem_size / output_count, 10);
-    int pvs_num_controllers = MIN2(6, vtx_mem_size / temp_count);
+    int pvs_num_controllers = MIN2(vtx_mem_size / temp_count, 6);
 
     CS_LOCALS(r300);
 

_______________________________________________
mesa-commit mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/mesa-commit

Reply via email to