On Thu, Jun 4, 2015 at 9:05 AM, Francisco Jerez <curroje...@riseup.net> wrote: > --- > src/mesa/drivers/dri/i965/brw_fs.h | 3 ++- > src/mesa/drivers/dri/i965/brw_fs_nir.cpp | 23 ++++++++++++----------- > 2 files changed, 14 insertions(+), 12 deletions(-) > > diff --git a/src/mesa/drivers/dri/i965/brw_fs.h > b/src/mesa/drivers/dri/i965/brw_fs.h > index 3f775d3..8803d5a 100644 > --- a/src/mesa/drivers/dri/i965/brw_fs.h > +++ b/src/mesa/drivers/dri/i965/brw_fs.h > @@ -319,7 +319,8 @@ public: > void nir_emit_alu(nir_alu_instr *instr); > void nir_emit_intrinsic(nir_intrinsic_instr *instr); > void nir_emit_texture(nir_tex_instr *instr); > - void nir_emit_jump(nir_jump_instr *instr); > + void nir_emit_jump(const brw::fs_builder &bld, > + nir_jump_instr *instr); > fs_reg get_nir_src(nir_src src); > fs_reg get_nir_dest(nir_dest dest); > void emit_percomp(const brw::fs_builder &bld, const fs_inst &inst, > diff --git a/src/mesa/drivers/dri/i965/brw_fs_nir.cpp > b/src/mesa/drivers/dri/i965/brw_fs_nir.cpp > index 3f84830..f31829f 100644 > --- a/src/mesa/drivers/dri/i965/brw_fs_nir.cpp > +++ b/src/mesa/drivers/dri/i965/brw_fs_nir.cpp > @@ -397,21 +397,21 @@ void > fs_visitor::nir_emit_if(nir_if *if_stmt) > { > /* first, put the condition into f0 */ > - fs_inst *inst = emit(MOV(reg_null_d, > + fs_inst *inst = bld.MOV(bld.null_reg_d(), > retype(get_nir_src(if_stmt->condition), > - BRW_REGISTER_TYPE_D))); > + BRW_REGISTER_TYPE_D)); > inst->conditional_mod = BRW_CONDITIONAL_NZ; > > - emit(IF(BRW_PREDICATE_NORMAL)); > + bld.IF(BRW_PREDICATE_NORMAL); > > nir_emit_cf_list(&if_stmt->then_list); > > /* note: if the else is empty, dead CF elimination will remove it */ > - emit(BRW_OPCODE_ELSE); > + bld.emit(BRW_OPCODE_ELSE); > > nir_emit_cf_list(&if_stmt->else_list); > > - emit(BRW_OPCODE_ENDIF); > + bld.emit(BRW_OPCODE_ENDIF); > > if (!try_replace_with_sel() && devinfo->gen < 6) { > no16("Can't support (non-uniform) control flow on SIMD16\n"); > @@ -425,11 +425,11 @@ fs_visitor::nir_emit_loop(nir_loop *loop) > no16("Can't support (non-uniform) control flow on SIMD16\n"); > } > > - emit(BRW_OPCODE_DO); > + bld.emit(BRW_OPCODE_DO); > > nir_emit_cf_list(&loop->body); > > - emit(BRW_OPCODE_WHILE); > + bld.emit(BRW_OPCODE_WHILE); > } > > void > @@ -443,6 +443,7 @@ fs_visitor::nir_emit_block(nir_block *block) > void > fs_visitor::nir_emit_instr(nir_instr *instr) > { > + const fs_builder abld = bld.annotate(NULL, instr); > this->base_ir = instr; > > switch (instr->type) { > @@ -465,7 +466,7 @@ fs_visitor::nir_emit_instr(nir_instr *instr) > break; > > case nir_instr_type_jump: > - nir_emit_jump(nir_instr_as_jump(instr)); > + nir_emit_jump(abld, nir_instr_as_jump(instr));
Why do we need to change the annotation to NULL? _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev