[Mesa-dev] [PATCH 5/7] i965/fs: move the fs_reg::smear() from get_timestamp() to the callers

Connor Abbott cwabbott0 at gmail.com
Mon Oct 19 11:55:38 PDT 2015


On Mon, Oct 19, 2015 at 2:29 PM, Matt Turner <mattst88 at gmail.com> wrote:
> On Mon, Oct 19, 2015 at 7:45 AM, Emil Velikov <emil.l.velikov at gmail.com> wrote:
>> We're about to reuse get_timestamp() for the nir_intrinsic_shader_clock.
>> The in the latter the generalisation does not apply, so move the smear()
>> where needed. This also makes the function analogous to the vec4 one.
>>
>> Signed-off-by: Emil Velikov <emil.l.velikov at gmail.com>
>> ---
>>  src/mesa/drivers/dri/i965/brw_fs.cpp | 30 +++++++++++++++++++++---------
>>  1 file changed, 21 insertions(+), 9 deletions(-)
>>
>> diff --git a/src/mesa/drivers/dri/i965/brw_fs.cpp b/src/mesa/drivers/dri/i965/brw_fs.cpp
>> index a2fd441..81a6a29 100644
>> --- a/src/mesa/drivers/dri/i965/brw_fs.cpp
>> +++ b/src/mesa/drivers/dri/i965/brw_fs.cpp
>> @@ -521,6 +521,14 @@ fs_visitor::get_timestamp(const fs_builder &bld)
>>      */
>>     bld.group(4, 0).exec_all().MOV(dst, ts);
>>
>> +   return dst;
>> +}
>> +
>> +void
>> +fs_visitor::emit_shader_time_begin()
>> +{
>> +   shader_start_time = get_timestamp(bld.annotate("shader time start"));
>> +
>>     /* 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,
>>      * which is plenty of time for our purposes.  It is identical across the
>> @@ -531,15 +539,7 @@ fs_visitor::get_timestamp(const fs_builder &bld)
>>      * else that might disrupt timing) by setting smear to 2 and checking if
>>      * that field is != 0.
>>      */
>> -   dst.set_smear(0);
>> -
>> -   return dst;
>> -}
>> -
>> -void
>> -fs_visitor::emit_shader_time_begin()
>> -{
>> -   shader_start_time = get_timestamp(bld.annotate("shader time start"));
>> +   shader_start_time.set_smear(0);
>>  }
>>
>>  void
>> @@ -553,6 +553,18 @@ fs_visitor::emit_shader_time_end()
>>
>>     fs_reg shader_end_time = get_timestamp(ibld);
>>
>> +   /* 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,
>> +    * which is plenty of time for our purposes.  It is identical across the
>> +    * EUs, but since it's tracking GPU core speed it will increment at a
>> +    * varying rate as render P-states change.
>> +    *
>> +    * The caller could also check if render P-states have changed (or anything
>> +    * else that might disrupt timing) by setting smear to 2 and checking if
>> +    * that field is != 0.
>> +    */
>
> I wouldn't bother copying the comment. It's immediately above this
> function and very visible if reading this code.

Wouldn't it be better to leave the comment here, replacing "The
caller" with "we" and delete it from get_timestamp though? Especially
since get_timestamp() is going to be used from the shader_clock
implementation which actually wants the high 32 bits too.

> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/mesa-dev


More information about the mesa-dev mailing list