mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-05 11:48:06 +02:00
nir/glsl_to_nir: use _mesa_fls() to compute num_textures
Replace the current loop by a direct call to _mesa_fls() function. It also fixes an implicit bug in the current code where num_textures seems to be one value less than it should be when sh->Program->SamplersUsed > 0. For instance, num_textures is 0 instead of 1 when sh->Program->SamplersUsed is 1. Signed-off-by: Juan A. Suarez Romero <jasuarez@igalia.com> Reviewed-by: Matt Turner <mattst88@gmail.com>
This commit is contained in:
parent
3f34afa0aa
commit
40c2acef5c
1 changed files with 2 additions and 7 deletions
|
|
@ -31,6 +31,7 @@
|
|||
#include "ir_visitor.h"
|
||||
#include "ir_hierarchical_visitor.h"
|
||||
#include "ir.h"
|
||||
#include "main/imports.h"
|
||||
|
||||
/*
|
||||
* pass to lower GLSL IR to NIR
|
||||
|
|
@ -145,16 +146,10 @@ glsl_to_nir(const struct gl_shader_program *shader_prog,
|
|||
|
||||
nir_lower_outputs_to_temporaries(shader);
|
||||
|
||||
/* TODO: Use _mesa_fls instead */
|
||||
unsigned num_textures = 0;
|
||||
for (unsigned i = 0; i < 8 * sizeof(sh->Program->SamplersUsed); i++)
|
||||
if (sh->Program->SamplersUsed & (1 << i))
|
||||
num_textures = i;
|
||||
|
||||
shader->info.name = ralloc_asprintf(shader, "GLSL%d", shader_prog->Name);
|
||||
if (shader_prog->Label)
|
||||
shader->info.label = ralloc_strdup(shader, shader_prog->Label);
|
||||
shader->info.num_textures = num_textures;
|
||||
shader->info.num_textures = _mesa_fls(sh->Program->SamplersUsed);
|
||||
shader->info.num_ubos = sh->NumUniformBlocks;
|
||||
shader->info.num_abos = shader_prog->NumAtomicBuffers;
|
||||
shader->info.num_ssbos = sh->NumShaderStorageBlocks;
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue