aboutsummaryrefslogtreecommitdiffstats
path: root/src/gallium
diff options
context:
space:
mode:
authorMarek Olšák <[email protected]>2018-05-16 23:47:15 -0400
committerMarek Olšák <[email protected]>2018-05-18 13:38:07 -0400
commit3d64ed57853d59d602789c45b041af0f9e272a75 (patch)
treea0a15175ccd774817c8573e3232e62c76133449f /src/gallium
parent0ab25f05ab046532f57d683d460de5c35b74a78a (diff)
radeonsi: skip ES output stores for undefined output components
Tested-by: Dieter Nützel <[email protected]> Reviewed-by: Samuel Pitoiset <[email protected]>
Diffstat (limited to 'src/gallium')
-rw-r--r--src/gallium/drivers/radeonsi/si_shader.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/gallium/drivers/radeonsi/si_shader.c b/src/gallium/drivers/radeonsi/si_shader.c
index e8d08cd8e7f..0d24c3af10a 100644
--- a/src/gallium/drivers/radeonsi/si_shader.c
+++ b/src/gallium/drivers/radeonsi/si_shader.c
@@ -3598,6 +3598,9 @@ static void si_llvm_emit_es_epilogue(struct ac_shader_abi *abi,
info->output_semantic_index[i]);
for (chan = 0; chan < 4; chan++) {
+ if (!(info->output_usagemask[i] & (1 << chan)))
+ continue;
+
LLVMValueRef out_val = LLVMBuildLoad(ctx->ac.builder, addrs[4 * i + chan], "");
out_val = ac_to_integer(&ctx->ac, out_val);