aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMarta Lofstedt <[email protected]>2015-08-28 10:22:41 +0200
committerJason Ekstrand <[email protected]>2015-08-28 09:52:59 -0700
commit2581fe931a48478123d8054ce7a291cffa851de9 (patch)
tree322ce98eb5e9373d5ff6f6a812bb7e7fc3f3ad36
parent05161596137994ab4b31e054d5afbff877c0a074 (diff)
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 <[email protected]> Reviewed-by: Francisco Jerez <[email protected]> Reviewed-by: Jason Ekstrand <[email protected]>
-rw-r--r--src/mesa/drivers/dri/i965/brw_fs_nir.cpp7
1 files 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 430efb3021d..9d14d1f2139 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;
}
}