Mesa (nv50-compiler): nv50: permit usage of undefined TGSI TEMPs

Christoph Bumiller chrisbmr at kemper.freedesktop.org
Mon Jul 26 09:21:43 UTC 2010


Module: Mesa
Branch: nv50-compiler
Commit: e1ad3bd2f25832147814fcfe72166898bc07f11a
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=e1ad3bd2f25832147814fcfe72166898bc07f11a

Author: Christoph Bumiller <e0425955 at student.tuwien.ac.at>
Date:   Mon Jul 26 00:56:12 2010 +0200

nv50: permit usage of undefined TGSI TEMPs

---

 src/gallium/drivers/nv50/nv50_tgsi_to_nc.c |    8 +++++++-
 1 files changed, 7 insertions(+), 1 deletions(-)

diff --git a/src/gallium/drivers/nv50/nv50_tgsi_to_nc.c b/src/gallium/drivers/nv50/nv50_tgsi_to_nc.c
index 5b69d52..3d5843e 100644
--- a/src/gallium/drivers/nv50/nv50_tgsi_to_nc.c
+++ b/src/gallium/drivers/nv50/nv50_tgsi_to_nc.c
@@ -174,7 +174,8 @@ bld_fetch_global(struct bld_context *bld, struct bld_value_stack *stack)
 
    fetch_by_bb(stack, vals, &n, bld->pc->current_block);
 
-   assert(n);
+   if (n == 0)
+      return NULL;
    if (n == 1)
       return vals[0];
 
@@ -606,6 +607,7 @@ bld_export_outputs(struct bld_context *bld)
          if (!bld_is_output_written(bld, i, c))
             continue;
          vals[n] = bld_fetch_global(bld, &bld->ovs[i][c]);
+         assert(vals[n]);
          vals[n] = bld_insn_1(bld, NV_OP_MOV, vals[n]);
          vals[n++]->reg.id = bld->ti->output_map[i][c];
       }
@@ -734,6 +736,10 @@ emit_fetch(struct bld_context *bld, const struct tgsi_full_instruction *insn,
       abort();
       break;	   
    }
+   if (!res) {
+      debug_printf("WARNING: undefined source value in TGSI instruction\n");
+      return bld_load_imm_u32(bld, 0);
+   }
 
    switch (tgsi_util_get_full_src_register_sign_mode(src, chan)) {
    case TGSI_UTIL_SIGN_KEEP:




More information about the mesa-commit mailing list