diff options
author | Paul Berry <stereotype441@gmail.com> | 2011-09-28 13:18:09 -0700 |
---|---|---|
committer | Paul Berry <stereotype441@gmail.com> | 2011-10-06 19:27:33 -0700 |
commit | c163072197b56e76b656cc472bbe6df650cf11ba (patch) | |
tree | f3d0a9d3d19e716058f7944d0270ca687b68dc41 /src/mesa/drivers/dri/i965/gen6_sf_state.c | |
parent | 09fcd01301cd161e2a5d619933c14f79753108d6 (diff) | |
download | external_mesa3d-c163072197b56e76b656cc472bbe6df650cf11ba.zip external_mesa3d-c163072197b56e76b656cc472bbe6df650cf11ba.tar.gz external_mesa3d-c163072197b56e76b656cc472bbe6df650cf11ba.tar.bz2 |
mesa: Create _mesa_bitcount_64() to replace i965's brw_count_bits()
The i965 driver already had a function to count bits in a 64-bit uint
(brw_count_bits()), but it was buggy (it only counted the bottom 32
bits) and it was clumsy (it had a strange and broken fallback for
non-GCC-like compilers, which fortunately was never used). Since Mesa
already has a _mesa_bitcount() function, it seems better to just
create a _mesa_bitcount_64() function rather than special-case this in
the i965 driver.
This patch creates the new _mesa_bitcount_64() function and rewrites
all of the old brw_count_bits() calls to refer to it.
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Eric Anholt <eric@anholt.net>
Diffstat (limited to 'src/mesa/drivers/dri/i965/gen6_sf_state.c')
-rw-r--r-- | src/mesa/drivers/dri/i965/gen6_sf_state.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/src/mesa/drivers/dri/i965/gen6_sf_state.c b/src/mesa/drivers/dri/i965/gen6_sf_state.c index 3eca786..306a6c6 100644 --- a/src/mesa/drivers/dri/i965/gen6_sf_state.c +++ b/src/mesa/drivers/dri/i965/gen6_sf_state.c @@ -117,7 +117,7 @@ upload_sf_state(struct brw_context *brw) /* CACHE_NEW_VS_PROG */ GLbitfield64 vs_outputs_written = brw->vs.prog_data->outputs_written; /* BRW_NEW_FRAGMENT_PROGRAM */ - uint32_t num_outputs = brw_count_bits(brw->fragment_program->Base.InputsRead); + uint32_t num_outputs = _mesa_bitcount_64(brw->fragment_program->Base.InputsRead); uint32_t dw1, dw2, dw3, dw4, dw16, dw17; int i; /* _NEW_BUFFER */ @@ -129,7 +129,7 @@ upload_sf_state(struct brw_context *brw) int nr_userclip; /* _NEW_TRANSFORM */ - nr_userclip = brw_count_bits(ctx->Transform.ClipPlanesEnabled); + nr_userclip = _mesa_bitcount_64(ctx->Transform.ClipPlanesEnabled); brw_compute_vue_map(&vue_map, intel, nr_userclip, vs_outputs_written); urb_entry_read_length = (vue_map.num_slots + 1)/2 - urb_entry_read_offset; |