summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIlia Mirkin <imirkin@alum.mit.edu>2021-11-22 17:54:50 -0500
committerMarge Bot <emma+marge@anholt.net>2021-11-28 04:44:56 +0000
commit7efb1c4b2940bba97624e9c92c47121c3f1ab19e (patch)
tree671c2526b0ca09bee81ff2f6512e5b14018c6990
parent3bf47700e2ad504bd6ee493f93c7dd1e0a7b7dbd (diff)
nir/lower_clip: increment num_inputs/outputs by appropriate amount
The inputs/outputs are meant to be in vec4 units. Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu> Reviewed-by: Emma Anholt <emma@anholt.net> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13917>
-rw-r--r--src/compiler/nir/nir_lower_clip.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/src/compiler/nir/nir_lower_clip.c b/src/compiler/nir/nir_lower_clip.c
index e7220127dc4..3513834c17d 100644
--- a/src/compiler/nir/nir_lower_clip.c
+++ b/src/compiler/nir/nir_lower_clip.c
@@ -46,13 +46,14 @@ create_clipdist_var(nir_shader *shader,
{
nir_variable *var = rzalloc(shader, nir_variable);
- /* TODO use type_size() for num_inputs/outputs */
if (output) {
- var->data.driver_location = shader->num_outputs++;
+ var->data.driver_location = shader->num_outputs;
var->data.mode = nir_var_shader_out;
+ shader->num_outputs += MAX2(1, DIV_ROUND_UP(array_size, 4));
} else {
- var->data.driver_location = shader->num_inputs++;
+ var->data.driver_location = shader->num_inputs;
var->data.mode = nir_var_shader_in;
+ shader->num_inputs += MAX2(1, DIV_ROUND_UP(array_size, 4));
}
var->name = ralloc_asprintf(var, "clipdist_%d", var->data.driver_location);
var->data.index = 0;