mesa: keep track of the current variable in add_uniform_to_shader

Bindless samplers are considered PROGRAM_UNIFORM but
add_uniform_to_shader::visit_field() is based on glsl_type.

Because only ir_variable knows if the uniform variable is
bindless via ir_variable::bindless, store it instead of
adding a new parameter to visit_field().

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-04-19 15:37:49 +02:00
parent 41257fddc8
commit 156bcbaca6

View file

@ -2420,6 +2420,7 @@ public:
void process(ir_variable *var)
{
this->idx = -1;
this->var = var;
this->program_resource_visitor::process(var);
var->data.param_index = this->idx;
}
@ -2433,6 +2434,7 @@ private:
struct gl_shader_program *shader_program;
struct gl_program_parameter_list *params;
int idx;
ir_variable *var;
gl_shader_stage shader_type;
};