mesa: use u_bit_scan() in update_program_texture_state()

The check in update_single_program_texture() can also be
removed.

v2: - remove unused 's' variable

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
This commit is contained in:
Samuel Pitoiset 2017-05-09 23:33:27 +02:00
parent 6a1f324e4a
commit 820966f9bc
1 changed files with 5 additions and 9 deletions

View File

@ -620,9 +620,6 @@ update_single_program_texture(struct gl_context *ctx, struct gl_program *prog,
struct gl_sampler_object *sampler;
int unit;
if (!(prog->SamplersUsed & (1 << s)))
return NULL;
unit = prog->SamplerUnits[s];
texUnit = &ctx->Texture.Unit[unit];
@ -676,16 +673,15 @@ update_program_texture_state(struct gl_context *ctx, struct gl_program **prog,
int i;
for (i = 0; i < MESA_SHADER_STAGES; i++) {
int s;
GLbitfield mask;
if (!prog[i])
continue;
/* We can't only do the shifting trick as the loop condition because if
* sampler 31 is active, the next iteration tries to shift by 32, which is
* undefined.
*/
for (s = 0; s < MAX_SAMPLERS && (1 << s) <= prog[i]->SamplersUsed; s++) {
mask = prog[i]->SamplersUsed;
while (mask) {
const int s = u_bit_scan(&mask);
struct gl_texture_object *texObj;
texObj = update_single_program_texture(ctx, prog[i], s);