summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGert Wollny <gw.fossdev@gmail.com>2018-01-14 18:13:31 +0100
committerDave Airlie <airlied@redhat.com>2018-01-15 09:14:22 +1000
commit5d6470d26b267d522dd343740878bde46f21c446 (patch)
tree6377eed9c637ab6a1e37d108326efed7da6ea674
parentf10bd0a0e1f7cba65a4b462016d3869351b20106 (diff)
r600/shader: Initialize max_driver_temp_used correctly for the first time
Without this initialization the temp registers used in tgsi_declaration may used random indices, and this may result in failing translation from TGSI with an error message "GPR limit exceeded", because the random index is greater then the allowed limit implying that the shader uses more temporary registers then available. Signed-off-by: Gert Wollny <gw.fossdev@gmail.com> Cc: <mesa-stable@lists.freedesktop.org> Signed-off-by: Dave Airlie <airlied@redhat.com>
-rw-r--r--src/gallium/drivers/r600/r600_shader.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/src/gallium/drivers/r600/r600_shader.c b/src/gallium/drivers/r600/r600_shader.c
index f2bc34660f..ab18a6e08e 100644
--- a/src/gallium/drivers/r600/r600_shader.c
+++ b/src/gallium/drivers/r600/r600_shader.c
@@ -3336,6 +3336,7 @@ static int r600_shader_from_tgsi(struct r600_context *rctx,
ctx.nliterals = 0;
ctx.literals = NULL;
+ ctx.max_driver_temp_used = 0;
shader->fs_write_all = ctx.info.properties[TGSI_PROPERTY_FS_COLOR0_WRITES_ALL_CBUFS] &&
ctx.info.colors_written == 1;