i965/fs: Do not set the size for zero-size uniforms

Zero sized uniforms can exist in the list, but they don't get get any space
allocated in prog_data->params or in the param_size array, so the size
should not be set for them.  This was previously fixed in:

commit: 781dc7c0e1.

However,

commit: 259f7291de

removed the fix.

Signed-off-by: Marta Lofstedt <marta.lofstedt@intel.com>
Reviewed-by: Francisco Jerez <currojerez@riseup.net>
Reviewed-by: Jason Ekstrand <jason.ekstrand@intel.com>
This commit is contained in:
Marta Lofstedt 2015-08-28 10:22:41 +02:00 committed by Jason Ekstrand
parent 0516159613
commit 2581fe931a
1 changed files with 4 additions and 3 deletions

View File

@ -190,8 +190,8 @@ fs_visitor::nir_setup_uniforms(nir_shader *shader)
nir_setup_builtin_uniform(var);
else
nir_setup_uniform(var);
param_size[var->data.driver_location] = type_size_scalar(var->type);
if(type_size_scalar(var->type) > 0)
param_size[var->data.driver_location] = type_size_scalar(var->type);
}
} else {
/* prog_to_nir only creates a single giant uniform variable so we can
@ -202,7 +202,8 @@ fs_visitor::nir_setup_uniforms(nir_shader *shader)
&prog->Parameters->ParameterValues[p][i];
}
}
param_size[0] = prog->Parameters->NumParameters * 4;
if(prog->Parameters->NumParameters > 0)
param_size[0] = prog->Parameters->NumParameters * 4;
}
}