diff options
author | Keith Whitwell <[email protected]> | 2010-10-14 13:15:28 +0100 |
---|---|---|
committer | Keith Whitwell <[email protected]> | 2010-10-14 14:08:20 +0100 |
commit | f0bd76f28d17da6eabf977a7e619e4ff943a70c7 (patch) | |
tree | 204be642268c899063fda6e79f613796ece463d9 | |
parent | 81ccb3e2ce708619f4c23537a237d61bdffdd35f (diff) |
llvmpipe: don't try to emit non-existent color outputs
-rw-r--r-- | src/gallium/drivers/llvmpipe/lp_state_fs.c | 17 |
1 files changed, 9 insertions, 8 deletions
diff --git a/src/gallium/drivers/llvmpipe/lp_state_fs.c b/src/gallium/drivers/llvmpipe/lp_state_fs.c index c09835635dd..6e3c27e78e9 100644 --- a/src/gallium/drivers/llvmpipe/lp_state_fs.c +++ b/src/gallium/drivers/llvmpipe/lp_state_fs.c @@ -406,14 +406,15 @@ generate_fs(struct llvmpipe_context *lp, if (shader->info.base.output_semantic_name[attrib] == TGSI_SEMANTIC_COLOR) { unsigned cbuf = shader->info.base.output_semantic_index[attrib]; - for(chan = 0; chan < NUM_CHANNELS; ++chan) - { - /* XXX: just initialize outputs to point at colors[] and - * skip this. - */ - LLVMValueRef out = LLVMBuildLoad(builder, outputs[attrib][chan], ""); - lp_build_name(out, "color%u.%u.%c", i, attrib, "rgba"[chan]); - LLVMBuildStore(builder, out, color[cbuf][chan]); + for(chan = 0; chan < NUM_CHANNELS; ++chan) { + if(outputs[attrib][chan]) { + /* XXX: just initialize outputs to point at colors[] and + * skip this. + */ + LLVMValueRef out = LLVMBuildLoad(builder, outputs[attrib][chan], ""); + lp_build_name(out, "color%u.%u.%c", i, attrib, "rgba"[chan]); + LLVMBuildStore(builder, out, color[cbuf][chan]); + } } } } |