[Mesa-dev] [PATCH 27/29] mesa: Use bitmask/ffs to iterate the active_samplers bitmask.
Mathias.Froehlich at gmx.net
Mathias.Froehlich at gmx.net
Tue May 24 06:49:10 UTC 2016
From: Mathias Fröhlich <mathias.froehlich at web.de>
Replaces an iterate and test bit in a bitmask loop by a
loop only iterating over the bits set in the bitmask.
Signed-off-by: Mathias Fröhlich <Mathias.Froehlich at web.de>
---
src/mesa/main/uniform_query.cpp | 8 +++++---
1 file changed, 5 insertions(+), 3 deletions(-)
diff --git a/src/mesa/main/uniform_query.cpp b/src/mesa/main/uniform_query.cpp
index 997b0cb..7a09950 100644
--- a/src/mesa/main/uniform_query.cpp
+++ b/src/mesa/main/uniform_query.cpp
@@ -843,9 +843,11 @@ _mesa_uniform(struct gl_context *ctx, struct gl_shader_program *shProg,
* been modified.
*/
bool changed = false;
- for (unsigned j = 0; j < ARRAY_SIZE(prog->SamplerUnits); j++) {
- if ((sh->active_samplers & (1U << j)) != 0
- && (prog->SamplerUnits[j] != sh->SamplerUnits[j])) {
+ GLbitfield mask = sh->active_samplers;
+ while (mask) {
+ int j = ffs(mask) - 1;
+ mask ^= (1u << j);
+ if (prog->SamplerUnits[j] != sh->SamplerUnits[j]) {
changed = true;
break;
}
--
2.5.5
More information about the mesa-dev
mailing list