gallivm: special case TGSI_OPCODE_STORE
authorNicolai Hähnle <nicolai.haehnle@amd.com>
Tue, 9 Feb 2016 18:02:34 +0000 (13:02 -0500)
committerNicolai Hähnle <nicolai.haehnle@amd.com>
Wed, 9 Mar 2016 16:39:55 +0000 (11:39 -0500)
This instruction has the resource (buffer or image) as a destination to
represent the writemask for SSBO writes. However, this is obviously not
a "real" destination for the purpose of emitting LLVM IR.

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
src/gallium/auxiliary/gallivm/lp_bld_tgsi.c

index 1cbe47ca91ff383a8caa429117e791082cc386ee..614c6558ede13591412ce90f45e6590a411667e9 100644 (file)
@@ -315,7 +315,7 @@ lp_build_tgsi_inst_llvm(
       }
    }
 
-   if (info->num_dst > 0) {
+   if (info->num_dst > 0 && info->opcode != TGSI_OPCODE_STORE) {
       bld_base->emit_store(bld_base, inst, info, emit_data.output);
    }
    return TRUE;