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 <kenn...@whitecape.org> --- 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 0b62496..34907e3 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 c1c24ac..ffd97f1 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++) { -- 2.1.3 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev