From 530445330b403d835a4027b41388b5eea8c2e1ab Mon Sep 17 00:00:00 2001 From: Francisco Jerez Date: Tue, 3 Feb 2015 22:52:37 +0200 Subject: [PATCH] i965/vec4: Init mlen for several send from GRF instructions. Reviewed-by: Matt Turner --- src/mesa/drivers/dri/i965/brw_vec4.cpp | 4 +++- src/mesa/drivers/dri/i965/brw_vec4_visitor.cpp | 11 +++++++---- src/mesa/drivers/dri/i965/brw_vec4_vp.cpp | 1 + 3 files changed, 11 insertions(+), 5 deletions(-) diff --git a/src/mesa/drivers/dri/i965/brw_vec4.cpp b/src/mesa/drivers/dri/i965/brw_vec4.cpp index cdd8a446286..be5f8f4384c 100644 --- a/src/mesa/drivers/dri/i965/brw_vec4.cpp +++ b/src/mesa/drivers/dri/i965/brw_vec4.cpp @@ -1761,7 +1761,9 @@ vec4_visitor::emit_shader_time_write(enum shader_time_shader_type type, time.type = BRW_REGISTER_TYPE_UD; emit(MOV(time, src_reg(value))); - emit(SHADER_OPCODE_SHADER_TIME_ADD, dst_reg(), src_reg(dst)); + vec4_instruction *inst = + emit(SHADER_OPCODE_SHADER_TIME_ADD, dst_reg(), src_reg(dst)); + inst->mlen = 2; } bool diff --git a/src/mesa/drivers/dri/i965/brw_vec4_visitor.cpp b/src/mesa/drivers/dri/i965/brw_vec4_visitor.cpp index 307f81f601c..432c2182d3d 100644 --- a/src/mesa/drivers/dri/i965/brw_vec4_visitor.cpp +++ b/src/mesa/drivers/dri/i965/brw_vec4_visitor.cpp @@ -1751,10 +1751,12 @@ vec4_visitor::visit(ir_expression *ir) emit(MOV(grf_offset, offset)); - emit(new(mem_ctx) vec4_instruction(VS_OPCODE_PULL_CONSTANT_LOAD_GEN7, - dst_reg(packed_consts), - surf_index, - src_reg(grf_offset))); + vec4_instruction *pull = + emit(new(mem_ctx) vec4_instruction(VS_OPCODE_PULL_CONSTANT_LOAD_GEN7, + dst_reg(packed_consts), + surf_index, + src_reg(grf_offset))); + pull->mlen = 1; } else { vec4_instruction *pull = emit(new(mem_ctx) vec4_instruction(VS_OPCODE_PULL_CONSTANT_LOAD, @@ -3431,6 +3433,7 @@ vec4_visitor::emit_pull_constant_load(bblock_t *block, vec4_instruction *inst, load = new(mem_ctx) vec4_instruction(VS_OPCODE_PULL_CONSTANT_LOAD_GEN7, temp, index, src_reg(grf_offset)); + load->mlen = 1; } else { load = new(mem_ctx) vec4_instruction(VS_OPCODE_PULL_CONSTANT_LOAD, temp, index, offset); diff --git a/src/mesa/drivers/dri/i965/brw_vec4_vp.cpp b/src/mesa/drivers/dri/i965/brw_vec4_vp.cpp index 5d9027b2ea6..edd92ed3680 100644 --- a/src/mesa/drivers/dri/i965/brw_vec4_vp.cpp +++ b/src/mesa/drivers/dri/i965/brw_vec4_vp.cpp @@ -550,6 +550,7 @@ vec4_vs_visitor::get_vp_src_reg(const prog_src_register &src) load = new(mem_ctx) vec4_instruction(VS_OPCODE_PULL_CONSTANT_LOAD_GEN7, dst_reg(result), surf_index, reladdr); + load->mlen = 1; } else { load = new(mem_ctx) vec4_instruction(VS_OPCODE_PULL_CONSTANT_LOAD, -- 2.30.2