From f6bba7760f7985e08dccde3472e53d62fa2240d0 Mon Sep 17 00:00:00 2001 From: Lionel Landwerlin Date: Thu, 7 Jun 2018 18:18:43 +0100 Subject: i965: move mdapi data structure to intel/perf We'll want to reuse those structures later on. Signed-off-by: Lionel Landwerlin Reviewed-by: Mark Janes --- src/intel/perf/gen_perf_mdapi.h | 119 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 119 insertions(+) create mode 100644 src/intel/perf/gen_perf_mdapi.h (limited to 'src/intel/perf/gen_perf_mdapi.h') diff --git a/src/intel/perf/gen_perf_mdapi.h b/src/intel/perf/gen_perf_mdapi.h new file mode 100644 index 00000000000..dcaa8c3ebeb --- /dev/null +++ b/src/intel/perf/gen_perf_mdapi.h @@ -0,0 +1,119 @@ +/* + * Copyright © 2018 Intel Corporation + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice (including the next + * paragraph) shall be included in all copies or substantial portions of the + * Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS + * IN THE SOFTWARE. + */ + +#ifndef GEN_PERF_MDAPI_H +#define GEN_PERF_MDAPI_H + +#include + +/* + * Data format expected by MDAPI. + */ + +struct gen7_mdapi_metrics { + uint64_t TotalTime; + + uint64_t ACounters[45]; + uint64_t NOACounters[16]; + + uint64_t PerfCounter1; + uint64_t PerfCounter2; + uint32_t SplitOccured; + uint32_t CoreFrequencyChanged; + uint64_t CoreFrequency; + uint32_t ReportId; + uint32_t ReportsCount; +}; + +#define GTDI_QUERY_BDW_METRICS_OA_COUNT 36 +#define GTDI_QUERY_BDW_METRICS_OA_40b_COUNT 32 +#define GTDI_QUERY_BDW_METRICS_NOA_COUNT 16 +struct gen8_mdapi_metrics { + uint64_t TotalTime; + uint64_t GPUTicks; + uint64_t OaCntr[GTDI_QUERY_BDW_METRICS_OA_COUNT]; + uint64_t NoaCntr[GTDI_QUERY_BDW_METRICS_NOA_COUNT]; + uint64_t BeginTimestamp; + uint64_t Reserved1; + uint64_t Reserved2; + uint32_t Reserved3; + uint32_t OverrunOccured; + uint64_t MarkerUser; + uint64_t MarkerDriver; + + uint64_t SliceFrequency; + uint64_t UnsliceFrequency; + uint64_t PerfCounter1; + uint64_t PerfCounter2; + uint32_t SplitOccured; + uint32_t CoreFrequencyChanged; + uint64_t CoreFrequency; + uint32_t ReportId; + uint32_t ReportsCount; +}; + +#define GTDI_MAX_READ_REGS 16 + +struct gen9_mdapi_metrics { + uint64_t TotalTime; + uint64_t GPUTicks; + uint64_t OaCntr[GTDI_QUERY_BDW_METRICS_OA_COUNT]; + uint64_t NoaCntr[GTDI_QUERY_BDW_METRICS_NOA_COUNT]; + uint64_t BeginTimestamp; + uint64_t Reserved1; + uint64_t Reserved2; + uint32_t Reserved3; + uint32_t OverrunOccured; + uint64_t MarkerUser; + uint64_t MarkerDriver; + + uint64_t SliceFrequency; + uint64_t UnsliceFrequency; + uint64_t PerfCounter1; + uint64_t PerfCounter2; + uint32_t SplitOccured; + uint32_t CoreFrequencyChanged; + uint64_t CoreFrequency; + uint32_t ReportId; + uint32_t ReportsCount; + + uint64_t UserCntr[GTDI_MAX_READ_REGS]; + uint32_t UserCntrCfgId; + uint32_t Reserved4; +}; + +struct mdapi_pipeline_metrics { + uint64_t IAVertices; + uint64_t IAPrimitives; + uint64_t VSInvocations; + uint64_t GSInvocations; + uint64_t GSPrimitives; + uint64_t CInvocations; + uint64_t CPrimitives; + uint64_t PSInvocations; + uint64_t HSInvocations; + uint64_t DSInvocations; + uint64_t CSInvocations; +}; + +#endif /* GEN_PERF_MDAPI_H */ -- cgit v1.2.3