summaryrefslogtreecommitdiff
path: root/src/gallium
diff options
context:
space:
mode:
authorJosé Fonseca <jfonseca@vmware.com>2009-09-10 13:35:39 +0100
committerJosé Fonseca <jfonseca@vmware.com>2009-09-10 13:35:39 +0100
commit6a405b4a21ac1fa45a93da37ce6b95d98d17f0e2 (patch)
treecdc16975ad37595c7d233d6a24c721711433a298 /src/gallium
parent4c3a48ad0cb36e6d8601535b91f83caed0d07570 (diff)
llvmpipe: Fix alpha test.
Diffstat (limited to 'src/gallium')
-rw-r--r--src/gallium/drivers/llvmpipe/lp_state_fs.c39
1 files changed, 13 insertions, 26 deletions
diff --git a/src/gallium/drivers/llvmpipe/lp_state_fs.c b/src/gallium/drivers/llvmpipe/lp_state_fs.c
index ccbccc813f..618cf1ffb8 100644
--- a/src/gallium/drivers/llvmpipe/lp_state_fs.c
+++ b/src/gallium/drivers/llvmpipe/lp_state_fs.c
@@ -216,24 +216,11 @@ generate_fs(struct llvmpipe_context *lp,
lp_build_flow_scope_begin(flow);
/* Declare the color and z variables */
- for (attrib = 0; attrib < shader->info.num_outputs; ++attrib) {
- for(chan = 0; chan < NUM_CHANNELS; ++chan) {
- boolean declare = FALSE;
- switch (shader->info.output_semantic_name[attrib]) {
- case TGSI_SEMANTIC_COLOR:
- declare = TRUE;
- break;
- case TGSI_SEMANTIC_POSITION:
- if(chan == 2)
- declare = TRUE;
- break;
- }
- if(declare) {
- outputs[attrib][chan] = LLVMGetUndef(vec_type);
- lp_build_flow_scope_declare(flow, &outputs[attrib][chan]);
- }
- }
+ for(chan = 0; chan < NUM_CHANNELS; ++chan) {
+ color[chan] = LLVMGetUndef(vec_type);
+ lp_build_flow_scope_declare(flow, &color[chan]);
}
+ lp_build_flow_scope_declare(flow, &z);
lp_build_mask_begin(&mask, flow, type, *pmask);
@@ -252,15 +239,6 @@ generate_fs(struct llvmpipe_context *lp,
consts_ptr, interp->pos, interp->inputs,
outputs, sampler);
- if(!early_depth_test)
- generate_depth(builder, key,
- type, &mask,
- z, depth_ptr);
-
- lp_build_mask_end(&mask);
-
- lp_build_flow_scope_end(flow);
-
for (attrib = 0; attrib < shader->info.num_outputs; ++attrib) {
for(chan = 0; chan < NUM_CHANNELS; ++chan) {
if(outputs[attrib][chan]) {
@@ -299,6 +277,15 @@ generate_fs(struct llvmpipe_context *lp,
}
}
+ if(!early_depth_test)
+ generate_depth(builder, key,
+ type, &mask,
+ z, depth_ptr);
+
+ lp_build_mask_end(&mask);
+
+ lp_build_flow_scope_end(flow);
+
lp_build_flow_destroy(flow);
*pmask = mask.value;