diff options
author | Marek Olšák <[email protected]> | 2017-11-17 04:56:13 +0100 |
---|---|---|
committer | Marek Olšák <[email protected]> | 2017-11-25 17:16:56 +0100 |
commit | f783677a82e08a7510da22809548863e3620a103 (patch) | |
tree | 8632495142ff87d95fc3c2cd00a52cca26022f77 /src/gallium/drivers/radeonsi/si_shader.c | |
parent | b63e7d4c6f65622171e55f6e9da220d8c913bde6 (diff) |
radeonsi: don't write undefined output channels to LDS in LS
Reviewed-by: Nicolai Hähnle <[email protected]>
Diffstat (limited to 'src/gallium/drivers/radeonsi/si_shader.c')
-rw-r--r-- | src/gallium/drivers/radeonsi/si_shader.c | 3 |
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 bca0ca92248..16036e31637 100644 --- a/src/gallium/drivers/radeonsi/si_shader.c +++ b/src/gallium/drivers/radeonsi/si_shader.c @@ -3176,6 +3176,9 @@ static void si_llvm_emit_ls_epilogue(struct lp_build_tgsi_context *bld_base) LLVMConstInt(ctx->i32, param * 4, 0), ""); for (chan = 0; chan < 4; chan++) { + if (!(info->output_usagemask[i] & (1 << chan))) + continue; + lds_store(bld_base, chan, dw_addr, LLVMBuildLoad(ctx->ac.builder, out_ptr[chan], "")); } |