From 2163e0fd5a6bf2ac95aef331c30f010cb6e39cab Mon Sep 17 00:00:00 2001 From: Kenneth Graunke Date: Fri, 7 Mar 2014 15:45:13 -0800 Subject: [PATCH] i965/fs: Record pull constant locations for all array elements. When demoting a variably indexed uniform array to pull constants, we only recorded the location for the base of the array (element 0). Recording locations for all array elements is a trivial amount of code and will make subsequent refactoring easier. Signed-off-by: Kenneth Graunke Reviewed-by: Ian Romanick Reviewed-by: Eric Anholt --- src/mesa/drivers/dri/i965/brw_fs.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/mesa/drivers/dri/i965/brw_fs.cpp b/src/mesa/drivers/dri/i965/brw_fs.cpp index 8faf401..d1bd697 100644 --- a/src/mesa/drivers/dri/i965/brw_fs.cpp +++ b/src/mesa/drivers/dri/i965/brw_fs.cpp @@ -1854,11 +1854,11 @@ fs_visitor::move_uniform_array_access_to_pull_constants() if (pull_constant_loc[uniform] == -1) { const float **values = &stage_prog_data->param[uniform]; - pull_constant_loc[uniform] = stage_prog_data->nr_pull_params; - assert(param_size[uniform]); for (int j = 0; j < param_size[uniform]; j++) { + pull_constant_loc[uniform + j] = stage_prog_data->nr_pull_params; + stage_prog_data->pull_param[stage_prog_data->nr_pull_params++] = values[j]; } -- 2.7.4