On Thu, Jun 18, 2015 at 05:51:37PM -0700, Jason Ekstrand wrote: > Previously, we were just depending on register widths to ensure that > various things were exec_size of 1 etc. Now, we do so explicitly using the > builder. > --- > src/mesa/drivers/dri/i965/brw_fs.cpp | 14 ++++++++------ > 1 file changed, 8 insertions(+), 6 deletions(-) > > diff --git a/src/mesa/drivers/dri/i965/brw_fs.cpp > b/src/mesa/drivers/dri/i965/brw_fs.cpp > index c13ac7d..740b51d 100644 > --- a/src/mesa/drivers/dri/i965/brw_fs.cpp > +++ b/src/mesa/drivers/dri/i965/brw_fs.cpp > @@ -557,7 +557,7 @@ fs_visitor::get_timestamp(const fs_builder &bld) > /* We want to read the 3 fields we care about even if it's not enabled in > * the dispatch. > */ > - bld.exec_all().MOV(dst, ts); > + bld.group(4, 0).exec_all().MOV(dst, ts);
Just to make sure I understand correctly, we want SIMD4 in order to read wide enough to get all the mentioned 3 fields? > > /* The caller wants the low 32 bits of the timestamp. Since it's running > * at the GPU clock rate of ~1.2ghz, it will roll over every ~3 seconds, > @@ -637,17 +637,19 @@ fs_visitor::emit_shader_time_end() > start.negate = true; > fs_reg diff = fs_reg(GRF, alloc.allocate(1), BRW_REGISTER_TYPE_UD, 1); > diff.set_smear(0); > - ibld.ADD(diff, start, shader_end_time); > + > + const fs_builder cbld = ibld.group(1, 0); > + cbld.group(1, 0).ADD(diff, start, shader_end_time); > > /* If there were no instructions between the two timestamp gets, the diff > * is 2 cycles. Remove that overhead, so I can forget about that when > * trying to determine the time taken for single instructions. > */ > - ibld.ADD(diff, diff, fs_reg(-2u)); > - SHADER_TIME_ADD(ibld, type, diff); > - SHADER_TIME_ADD(ibld, written_type, fs_reg(1u)); > + cbld.ADD(diff, diff, fs_reg(-2u)); > + SHADER_TIME_ADD(cbld, type, diff); > + SHADER_TIME_ADD(cbld, written_type, fs_reg(1u)); > ibld.emit(BRW_OPCODE_ELSE); > - SHADER_TIME_ADD(ibld, reset_type, fs_reg(1u)); > + SHADER_TIME_ADD(cbld, reset_type, fs_reg(1u)); > ibld.emit(BRW_OPCODE_ENDIF); > } > > -- > 2.4.3 > > _______________________________________________ > mesa-dev mailing list > mesa-dev@lists.freedesktop.org > http://lists.freedesktop.org/mailman/listinfo/mesa-dev _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev