Mesa (master): i965: Add var->location != -1 assertions.

Kenneth Graunke kwg at kemper.freedesktop.org
Thu Dec 4 01:46:17 UTC 2014


Module: Mesa
Branch: master
Commit: bcc7eb115ed6e74b87566bbc3a51c444814f1ebe
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=bcc7eb115ed6e74b87566bbc3a51c444814f1ebe

Author: Kenneth Graunke <kenneth at whitecape.org>
Date:   Mon Dec  1 13:44:04 2014 -0800

i965: Add var->location != -1 assertions.

We shouldn't receive variables with invalid locations set - adding these
assertions should help catch problems before they cause crashes later.

Inspired by similar code in st_glsl_to_tgsi.

Signed-off-by: Kenneth Graunke <kenneth at whitecape.org>
Reviewed-by: Ian Romanick <ian.d.romanick at intel.com>

---

 src/mesa/drivers/dri/i965/brw_fs_visitor.cpp   |    1 +
 src/mesa/drivers/dri/i965/brw_vec4_visitor.cpp |    2 ++
 2 files changed, 3 insertions(+)

diff --git a/src/mesa/drivers/dri/i965/brw_fs_visitor.cpp b/src/mesa/drivers/dri/i965/brw_fs_visitor.cpp
index cc12e48..62ef853 100644
--- a/src/mesa/drivers/dri/i965/brw_fs_visitor.cpp
+++ b/src/mesa/drivers/dri/i965/brw_fs_visitor.cpp
@@ -57,6 +57,7 @@ fs_visitor::visit(ir_variable *ir)
       return;
 
    if (ir->data.mode == ir_var_shader_in) {
+      assert(ir->data.location != -1);
       if (!strcmp(ir->name, "gl_FragCoord")) {
 	 reg = emit_fragcoord_interpolation(ir);
       } else if (!strcmp(ir->name, "gl_FrontFacing")) {
diff --git a/src/mesa/drivers/dri/i965/brw_vec4_visitor.cpp b/src/mesa/drivers/dri/i965/brw_vec4_visitor.cpp
index 61af325..ded7b8c 100644
--- a/src/mesa/drivers/dri/i965/brw_vec4_visitor.cpp
+++ b/src/mesa/drivers/dri/i965/brw_vec4_visitor.cpp
@@ -1020,10 +1020,12 @@ vec4_visitor::visit(ir_variable *ir)
 
    switch (ir->data.mode) {
    case ir_var_shader_in:
+      assert(ir->data.location != -1);
       reg = new(mem_ctx) dst_reg(ATTR, ir->data.location);
       break;
 
    case ir_var_shader_out:
+      assert(ir->data.location != -1);
       reg = new(mem_ctx) dst_reg(this, ir->type);
 
       for (int i = 0; i < type_size(ir->type); i++) {




More information about the mesa-commit mailing list