projects
/
mesa.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
683cf11
)
radeonsi/gfx10: fix a possible hang with exp pos0 with done=0 and exec=0
author
Marek Olšák
<marek.olsak@amd.com>
Tue, 28 May 2019 23:52:53 +0000
(19:52 -0400)
committer
Marek Olšák
<marek.olsak@amd.com>
Wed, 3 Jul 2019 19:51:13 +0000
(15:51 -0400)
Acked-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
src/gallium/drivers/radeonsi/si_shader.c
patch
|
blob
|
history
diff --git
a/src/gallium/drivers/radeonsi/si_shader.c
b/src/gallium/drivers/radeonsi/si_shader.c
index 2d022438841a81f1bf8ef7209446bb0bb94c0284..7bc22fcfa4f717f1ec60b5ed7eaec8b208366004 100644
(file)
--- a/
src/gallium/drivers/radeonsi/si_shader.c
+++ b/
src/gallium/drivers/radeonsi/si_shader.c
@@
-3021,6
+3021,14
@@
void si_llvm_export_vs(struct si_shader_context *ctx,
if (pos_args[i].out[0])
shader->info.nr_pos_exports++;
+ /* Navi10-14 skip POS0 exports if EXEC=0 and DONE=0, causing a hang.
+ * Setting valid_mask=1 prevents it and has no other effect.
+ */
+ if (ctx->screen->info.family == CHIP_NAVI10 ||
+ ctx->screen->info.family == CHIP_NAVI12 ||
+ ctx->screen->info.family == CHIP_NAVI14)
+ pos_args[0].valid_mask = 1;
+
pos_idx = 0;
for (i = 0; i < 4; i++) {
if (!pos_args[i].out[0])