st/mesa: fix reporting of float perf counters max value
Some Piglit tests (rightfully) fail because of min >= max when exposed
to perf counters that do not explicitly define their max value.
Failing tests:
spec/amd_performance_monitor/api/test_counter_info
spec/amd_performance_monitor/vc4/test_counter_info
u32/u64 changes are no-ops.
Fixes: 4cd1cfb983
("st/mesa: implement GL_AMD_performance_monitor")
Signed-off-by: Marcin Ślusarz <marcin.slusarz@intel.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5473>
This commit is contained in:
parent
2550531dd6
commit
2f4a112ec4
|
@ -404,17 +404,17 @@ st_InitPerfMonitorGroups(struct gl_context *ctx)
|
|||
case PIPE_DRIVER_QUERY_TYPE_MICROSECONDS:
|
||||
case PIPE_DRIVER_QUERY_TYPE_HZ:
|
||||
c->Minimum.u64 = 0;
|
||||
c->Maximum.u64 = info.max_value.u64 ? info.max_value.u64 : -1;
|
||||
c->Maximum.u64 = info.max_value.u64 ? info.max_value.u64 : UINT64_MAX;
|
||||
c->Type = GL_UNSIGNED_INT64_AMD;
|
||||
break;
|
||||
case PIPE_DRIVER_QUERY_TYPE_UINT:
|
||||
c->Minimum.u32 = 0;
|
||||
c->Maximum.u32 = info.max_value.u32 ? info.max_value.u32 : -1;
|
||||
c->Maximum.u32 = info.max_value.u32 ? info.max_value.u32 : UINT32_MAX;
|
||||
c->Type = GL_UNSIGNED_INT;
|
||||
break;
|
||||
case PIPE_DRIVER_QUERY_TYPE_FLOAT:
|
||||
c->Minimum.f = 0.0;
|
||||
c->Maximum.f = info.max_value.f ? info.max_value.f : -1;
|
||||
c->Maximum.f = info.max_value.f ? info.max_value.f : FLT_MAX;
|
||||
c->Type = GL_FLOAT;
|
||||
break;
|
||||
case PIPE_DRIVER_QUERY_TYPE_PERCENTAGE:
|
||||
|
|
Loading…
Reference in New Issue