tgsi: fix-up KILP comments
authorBrian Paul <brianp@vmware.com>
Thu, 11 Jul 2013 22:00:45 +0000 (16:00 -0600)
committerBrian Paul <brianp@vmware.com>
Fri, 12 Jul 2013 14:32:51 +0000 (08:32 -0600)
KILP is really unconditional fragment kill.

We've had KIL and KILP transposed forever.  I'll fix that next.

Reviewed-by: Jose Fonseca <jfonseca@vmware.com>
src/gallium/auxiliary/gallivm/lp_bld_tgsi_soa.c
src/gallium/auxiliary/tgsi/tgsi_exec.c
src/gallium/docs/source/tgsi.rst
src/mesa/state_tracker/st_glsl_to_tgsi.cpp

index 43724e77a13e485440ac02975200b6d9a3450666..43182eef350182593ec11b39ac0229e42edcc586 100644 (file)
@@ -2096,8 +2096,7 @@ emit_kil(
 
 
 /**
- * Predicated fragment kill.
- * XXX Actually, we do an unconditional kill (as in tgsi_exec.c).
+ * Unconditional fragment kill.
  * The only predication is the execution mask which will apply if
  * we're inside a loop or conditional.
  */
index e0000aff8228262626c3fe5585bb43381b6d82b0..035b1059b8367043a670141535f2f6921c617fb9 100644 (file)
@@ -1614,8 +1614,7 @@ exec_kil(struct tgsi_exec_machine *mach,
 }
 
 /**
- * Execute NVIDIA-style KIL which is predicated by a condition code.
- * Kill fragment if the condition code is TRUE.
+ * Unconditional fragment kill/discard.
  */
 static void
 exec_kilp(struct tgsi_exec_machine *mach,
@@ -1623,7 +1622,7 @@ exec_kilp(struct tgsi_exec_machine *mach,
 {
    uint kilmask; /* bit 0 = pixel 0, bit 1 = pixel 1, etc */
 
-   /* "unconditional" kil */
+   /* kill fragment for all fragments currently executing */
    kilmask = mach->ExecMask;
    mach->Temps[TEMP_KILMASK_I].xyzw[TEMP_KILMASK_C].u[0] |= kilmask;
 }
index 3f48b511ee6e9fa798deafb8d9dc6144ffc0f28b..8c6fec9851c8990774f7724a03c2307dc0392097 100644 (file)
@@ -471,11 +471,6 @@ This instruction replicates its result.
   dst.w = partialy(src.w)
 
 
-.. opcode:: KILP - Predicated Discard
-
-  Not really predicated, just unconditional discard
-
-
 .. opcode:: PK2H - Pack Two 16-bit Floats
 
   TBD
@@ -755,6 +750,11 @@ This instruction replicates its result.
   endif
 
 
+.. opcode:: KILP - Discard
+
+  Unconditional discard.  Allowed in fragment shaders only.
+
+
 .. opcode:: SCS - Sine Cosine
 
 .. math::
index 64e0a8a46ebc5c93a1784217c6ae0329f8359090..9e0a648bcf10ae4e11a74eb441c63c6d1fafdef9 100644 (file)
@@ -2978,6 +2978,7 @@ glsl_to_tgsi_visitor::visit(ir_discard *ir)
       this->result.negate = ~this->result.negate;
       emit(ir, TGSI_OPCODE_KIL, undef_dst, this->result);
    } else {
+      /* unconditional kil */
       emit(ir, TGSI_OPCODE_KILP);
    }
 }