Mesa (master): vc4: Make sure we don't overflow texture input/ output FIFOs when threaded.
Eric Anholt
anholt at kemper.freedesktop.org
Wed Nov 23 00:47:32 UTC 2016
Module: Mesa
Branch: master
Commit: ff018e0979458636a1e3ad555a39ec4393206343
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=ff018e0979458636a1e3ad555a39ec4393206343
Author: Eric Anholt <eric at anholt.net>
Date: Tue Nov 22 13:31:46 2016 -0800
vc4: Make sure we don't overflow texture input/output FIFOs when threaded.
I dropped the first hunk of this change last minute when I decided it
wasn't actually needed, and apparently failed to piglit it in simulation.
The simulator threw an an assertion in gl-1.0-drawpixels-color-index,
which queued up 5 coordinates (3 before a switch, two after) before
loading the result.
---
src/gallium/drivers/vc4/vc4_qir_schedule.c | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/src/gallium/drivers/vc4/vc4_qir_schedule.c b/src/gallium/drivers/vc4/vc4_qir_schedule.c
index 4f17733..6eaa2e0 100644
--- a/src/gallium/drivers/vc4/vc4_qir_schedule.c
+++ b/src/gallium/drivers/vc4/vc4_qir_schedule.c
@@ -344,7 +344,7 @@ calculate_forward_deps(struct vc4_compile *c, void *mem_ctx,
* If the texture coordinate fifo is full, block this
* on the last QOP_TEX_RESULT.
*/
- if (state.tfreq_count == 8) {
+ if (state.tfreq_count == (c->fs_threaded ? 4 : 8)) {
block_until_tex_result(&state, n);
}
@@ -366,7 +366,8 @@ calculate_forward_deps(struct vc4_compile *c, void *mem_ctx,
*/
if (inst->op == QOP_TEX_S ||
inst->op == QOP_TEX_DIRECT) {
- if (state.tfrcv_count == 4)
+ if (state.tfrcv_count ==
+ (c->fs_threaded ? 2 : 4))
block_until_tex_result(&state, n);
state.tfrcv_count++;
}
More information about the mesa-commit
mailing list