Signed-off-by: Kenneth Graunke <kenn...@whitecape.org> --- src/mesa/drivers/dri/i965/brw_vec4.h | 1 + src/mesa/drivers/dri/i965/brw_vec4_nir.cpp | 13 +++++++++++++ 2 files changed, 14 insertions(+)
diff --git a/src/mesa/drivers/dri/i965/brw_vec4.h b/src/mesa/drivers/dri/i965/brw_vec4.h index e7293af..dfe9853 100644 --- a/src/mesa/drivers/dri/i965/brw_vec4.h +++ b/src/mesa/drivers/dri/i965/brw_vec4.h @@ -344,6 +344,7 @@ public: src_reg get_nir_src_imm(nir_src src, enum brw_reg_type type); src_reg get_nir_indirect_src(nir_intrinsic_instr *instr); + src_reg get_nir_vertex_index_src(nir_intrinsic_instr *instr); virtual dst_reg *make_reg_for_system_value(int location, const glsl_type *type) = 0; diff --git a/src/mesa/drivers/dri/i965/brw_vec4_nir.cpp b/src/mesa/drivers/dri/i965/brw_vec4_nir.cpp index beab9a8..890879c 100644 --- a/src/mesa/drivers/dri/i965/brw_vec4_nir.cpp +++ b/src/mesa/drivers/dri/i965/brw_vec4_nir.cpp @@ -403,6 +403,19 @@ vec4_visitor::get_nir_indirect_src(nir_intrinsic_instr *instr) return src ? get_nir_src(*src, BRW_REGISTER_TYPE_D, 1) : src_reg(); } +/** + * Return the vertex index source for a load/store per_vertex intrinsic. + * + * For other intrinsics, return a BAD_FILE register. + */ +src_reg +vec4_visitor::get_nir_vertex_index_src(nir_intrinsic_instr *instr) +{ + nir_src *src = nir_get_io_vertex_index_src(instr); + return src ? get_nir_src_imm(*src, BRW_REGISTER_TYPE_D) : src_reg(); +} + + void vec4_visitor::nir_emit_intrinsic(nir_intrinsic_instr *instr) { -- 2.6.2 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev