From 2581fe931a48478123d8054ce7a291cffa851de9 Mon Sep 17 00:00:00 2001 From: Marta Lofstedt Date: Fri, 28 Aug 2015 10:22:41 +0200 Subject: [PATCH] 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: 781dc7c0e1f41502f18e07c0940af949a78d2792. However, commit: 259f7291de2387aa3ac5f856b39b7b934a1d8e7d removed the fix. Signed-off-by: Marta Lofstedt Reviewed-by: Francisco Jerez Reviewed-by: Jason Ekstrand --- src/mesa/drivers/dri/i965/brw_fs_nir.cpp | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/mesa/drivers/dri/i965/brw_fs_nir.cpp b/src/mesa/drivers/dri/i965/brw_fs_nir.cpp index 430efb3..9d14d1f 100644 --- a/src/mesa/drivers/dri/i965/brw_fs_nir.cpp +++ b/src/mesa/drivers/dri/i965/brw_fs_nir.cpp @@ -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; } } -- 2.7.4