r300g: Clean up bitcounting function.
I didn't see this in u_math; surely somebody else has this wheel reinvented elsewhere.
This commit is contained in:
parent
6a3eb1f91b
commit
06ec216d19
|
@ -690,14 +690,19 @@ void r300_emit_vertex_format_state(struct r300_context* r300)
|
||||||
END_CS;
|
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. */
|
/* Return the number of bits set in the given number. */
|
||||||
static unsigned bitcount(unsigned n)
|
static unsigned bitcount(unsigned n)
|
||||||
{
|
{
|
||||||
unsigned bits;
|
unsigned bits = 0;
|
||||||
for (bits = 0; n > 0; n = n >> 1) {
|
|
||||||
bits += n & 1;
|
while (n) {
|
||||||
|
if (n & 1) {
|
||||||
|
bits++;
|
||||||
|
}
|
||||||
|
n >>= 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
return bits;
|
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 temp_count = MAX2(code->num_temporaries, 1);
|
||||||
int pvs_num_slots = MIN3(vtx_mem_size / input_count,
|
int pvs_num_slots = MIN3(vtx_mem_size / input_count,
|
||||||
vtx_mem_size / output_count, 10);
|
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);
|
CS_LOCALS(r300);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue