From: Kenneth Graunke Date: Tue, 4 Oct 2016 08:59:33 +0000 (-0700) Subject: i965/fs: Handle compact outputs. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=b63f7671a3eafa4ab293a13f45f58837bd840a46;p=mesa.git i965/fs: Handle compact outputs. We need to calculate the number of vec4 slots correctly. Signed-off-by: Kenneth Graunke Reviewed-by: Jason Ekstrand --- diff --git a/src/mesa/drivers/dri/i965/brw_fs_nir.cpp b/src/mesa/drivers/dri/i965/brw_fs_nir.cpp index e770502b723..82e22c27310 100644 --- a/src/mesa/drivers/dri/i965/brw_fs_nir.cpp +++ b/src/mesa/drivers/dri/i965/brw_fs_nir.cpp @@ -55,7 +55,9 @@ fs_visitor::nir_setup_outputs() return; nir_foreach_variable(var, &nir->outputs) { - const unsigned vec4s = type_size_vec4(var->type); + const unsigned vec4s = + var->data.compact ? DIV_ROUND_UP(glsl_get_length(var->type), 4) + : type_size_vec4(var->type); fs_reg reg = bld.vgrf(BRW_REGISTER_TYPE_F, 4 * vec4s); for (unsigned i = 0; i < vec4s; i++) { if (outputs[var->data.driver_location + i].file == BAD_FILE)