glsl: Count function call outvals as writing to variables for linker checks.
Fixes: glsl-vs-position-outval. Bug #28138 (regnum online)
This commit is contained in:
@@ -106,6 +106,27 @@ public:
|
|||||||
return visit_continue_with_parent;
|
return visit_continue_with_parent;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
virtual ir_visitor_status visit_enter(ir_call *ir)
|
||||||
|
{
|
||||||
|
exec_list_iterator sig_iter = ir->get_callee()->parameters.iterator();
|
||||||
|
foreach_iter(exec_list_iterator, iter, *ir) {
|
||||||
|
ir_rvalue *param_rval = (ir_rvalue *)iter.get();
|
||||||
|
ir_variable *sig_param = (ir_variable *)sig_iter.get();
|
||||||
|
|
||||||
|
if (sig_param->mode == ir_var_out ||
|
||||||
|
sig_param->mode == ir_var_inout) {
|
||||||
|
ir_variable *var = param_rval->variable_referenced();
|
||||||
|
if (var && strcmp(name, var->name) == 0) {
|
||||||
|
found = true;
|
||||||
|
return visit_stop;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
sig_iter.next();
|
||||||
|
}
|
||||||
|
|
||||||
|
return visit_continue_with_parent;
|
||||||
|
}
|
||||||
|
|
||||||
bool variable_found()
|
bool variable_found()
|
||||||
{
|
{
|
||||||
return found;
|
return found;
|
||||||
|
Reference in New Issue
Block a user