llvmpipe: Fix alpha test.
authorJosé Fonseca <jfonseca@vmware.com>
Thu, 10 Sep 2009 12:35:39 +0000 (13:35 +0100)
committerJosé Fonseca <jfonseca@vmware.com>
Thu, 10 Sep 2009 12:35:39 +0000 (13:35 +0100)
src/gallium/drivers/llvmpipe/lp_state_fs.c

index ccbccc813f6ef62d1de0adcb109b7e63e0f29b92..618cf1ffb8db668ab656905f06b6e418993b8db5 100644 (file)
@@ -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;