r600_shader.c: check returned value of eg_get_interpolator_index
authorJulien Isorce <julien.isorce@gmail.com>
Thu, 16 Mar 2017 14:25:24 +0000 (14:25 +0000)
committerJulien Isorce <jisorce@oblong.com>
Tue, 21 Mar 2017 18:14:26 +0000 (18:14 +0000)
Like done in another place in that same file.

CID 1250588

Signed-off-by: Julien Isorce <jisorce@oblong.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
src/gallium/drivers/r600/r600_shader.c

index e97aa65..8446502 100644 (file)
@@ -1113,7 +1113,8 @@ static int allocate_system_value_inputs(struct r600_shader_ctx *ctx, int gpr_off
 
                                interpolate = ctx->info.input_interpolate[inst->Src[0].Register.Index];
                                k = eg_get_interpolator_index(interpolate, location);
-                               ctx->eg_interpolators[k].enabled = true;
+                                if (k >= 0)
+                                        ctx->eg_interpolators[k].enabled = true;
                        }
                } else if (parse.FullToken.Token.Type == TGSI_TOKEN_TYPE_DECLARATION) {
                        struct tgsi_full_declaration *d = &parse.FullToken.FullDeclaration;
@@ -1209,7 +1210,8 @@ static int evergreen_gpr_count(struct r600_shader_ctx *ctx)
 
                                interpolate = ctx->info.input_interpolate[inst->Src[0].Register.Index];
                                k = eg_get_interpolator_index(interpolate, location);
-                               ctx->eg_interpolators[k].enabled = true;
+                                if (k >= 0)
+                                        ctx->eg_interpolators[k].enabled = true;
                        }
                }
        }