[Mesa-dev] [PATCH] nvc0: fix wrong max value for driver queries

Samuel Pitoiset samuel.pitoiset at gmail.com
Sun Mar 8 10:37:43 PDT 2015



On 03/08/2015 05:45 PM, Ilia Mirkin wrote:
> On Sun, Mar 8, 2015 at 12:18 PM, Samuel Pitoiset
> <samuel.pitoiset at gmail.com> wrote:
>> The maximum value of a Gallium HUD's panel is automatically adjusted
>> when the current value is greater than the max. If we set the
>> pipe_query_driver_info::max_value to UINT64_MAX, the maximum value is
>> never adjusted and this results in a right instead of a pretty curve
> I'm guessing "right" is translated from "droite"? In english, that's
> "straight line".

Yes, thanks.

>
> Can you confirm that this is what other drivers do? Another
> interpretation of max_value is "max possible value", and the HUD
> should keep track of its own "max seen" thing.

Yes, other drivers set max_value to 0 in order to keep track of this 
"max seen value" as you said.

>
>> which is correctly scaled.
>>
>> Signed-off-by: Samuel Pitoiset <samuel.pitoiset at gmail.com>
>> ---
>>   src/gallium/drivers/nouveau/nvc0/nvc0_query.c | 7 +++----
>>   1 file changed, 3 insertions(+), 4 deletions(-)
>>
>> diff --git a/src/gallium/drivers/nouveau/nvc0/nvc0_query.c b/src/gallium/drivers/nouveau/nvc0/nvc0_query.c
>> index ec464b5..f21deea 100644
>> --- a/src/gallium/drivers/nouveau/nvc0/nvc0_query.c
>> +++ b/src/gallium/drivers/nouveau/nvc0/nvc0_query.c
>> @@ -1418,7 +1418,7 @@ nvc0_screen_get_driver_query_info(struct pipe_screen *pscreen,
>>      if (id < NVC0_QUERY_DRV_STAT_COUNT) {
>>         info->name = nvc0_drv_stat_names[id];
>>         info->query_type = NVC0_QUERY_DRV_STAT(id);
>> -      info->max_value = ~0ULL;
>> +      info->max_value = 0;
>>         info->uses_byte_units = !!strstr(info->name, "bytes");
>>         return 1;
>>      } else
>> @@ -1427,15 +1427,14 @@ nvc0_screen_get_driver_query_info(struct pipe_screen *pscreen,
>>         if (screen->base.class_3d >= NVE4_3D_CLASS) {
>>            info->name = nve4_pm_query_names[id - NVC0_QUERY_DRV_STAT_COUNT];
>>            info->query_type = NVE4_PM_QUERY(id - NVC0_QUERY_DRV_STAT_COUNT);
>> -         info->max_value = (id < NVE4_PM_QUERY_METRIC_MP_OCCUPANCY) ?
>> -            ~0ULL : 100;
>> +         info->max_value = (id < NVE4_PM_QUERY_METRIC_MP_OCCUPANCY) ? 0 : 100;
>>            info->uses_byte_units = FALSE;
>>            return 1;
>>         } else
>>         if (screen->compute) {
>>            info->name = nvc0_pm_query_names[id - NVC0_QUERY_DRV_STAT_COUNT];
>>            info->query_type = NVC0_PM_QUERY(id - NVC0_QUERY_DRV_STAT_COUNT);
>> -         info->max_value = ~0ULL;
>> +         info->max_value = 0;
>>            info->uses_byte_units = FALSE;
>>            return 1;
>>         }
>> --
>> 2.3.1
>>



More information about the mesa-dev mailing list